Forum: FPGA, VHDL & Co. Verilog "width mismatch" erlaubt, aber wie?


von Gustl B. (-gb-)


Lesenswert?

Hallo zusammen, in Verilog darf man einen n Bit breiten Eingang eines 
Moduls von außen, also im übergeordneten Modul, mit einer anderen Breite 
zuweisen in der Instanziierung.

Beispiel:

<verilog>module top;
wire [11:0] data;
wire par;

parity p1 (.d(data),.p(par));

endmodule </verilog>

<verilog> module parity(
input [7:0] d,
output p);

// Beschreibung
// p <= ...(d);

endmodule </verilog>

Welche Bits von data werden da mit d verbunden, sind es die 8 MSBs oder 
die 8 LSBs?

Vielen Dank!

von Gustl B. (-gb-)


Lesenswert?

Die MSBs werden abgeschnitten. Aber es ist kein Fehler, auch nicht wenn 
man sowas schreibt:

reg [7:0] data_in = 12'b110010100011;

Jetzt weiß ich wieso mir VHDL so gefällt ...

von Fpgakuechle K. (Gast)


Lesenswert?

Gustl B. schrieb:
> Die MSBs werden abgeschnitten. Aber es ist kein Fehler, auch nicht wenn

Man könnte versuchen, dem Compiler das meckern beizubringen, bspw. beim 
modelsim dem vlog mit den Optionen -error -lint -pedanticerrors

von Gustl B. (-gb-)


Lesenswert?

Das stimmt, für die Simulation ist das ein guter Hinweis. Hier ging es 
aber um die Übersetzung von Verilog nach VHDL, da ist Verilog an manchen 
Stellen leider dosch recht anders.

von Fpgakuechle K. (Gast)


Lesenswert?

Gustl B. schrieb:
> Das stimmt, für die Simulation ist das ein guter Hinweis. Hier
> ging es
> aber um die Übersetzung von Verilog nach VHDL, da ist Verilog an manchen
> Stellen leider dosch recht anders.

Für mich schaute das nach einem typisches Problem bei der gemischten 
Verwendung von Verilog und VHDL aus.

Kommt bei der Verwendung von Evalboards öfters vor, viele 
Beispiele/Top-entities in verilog und da hat man 'seine' VHDL-Module 
einzubauen.

Bei dem FPGA-Herstellern gibt es Hinweise dazu, die Verwendung von 
modelsim als allgemeiner 'MixedLanguage'-Checker scheint mir da
allgemeiner. Es braucht auch keine komplette Simulation, lediglich mal 
schnell vlog resp vcom drüberlaufen lassen und die Warnings/Error 
analysieren. Ist auch deutlich schneller mit dem Syntaxcheck fertig als 
Quartus/Vivado-GUI's.

https://www.xilinx.com/support/documentation/sw_manuals/xilinx11/ism_r_mixed_lang_boundary_mapping_rules.htm

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.