Ich hab grade keinen Zugriff zum Entwicklungssystem und knoble sozusagen
"mit Papier und Bleistift" an einem Problem.
Dabei bin ich auf das Problem gestoßen, wie ich Instanzen eines Moduls
flexibel parametrisieren kann. Hat sowas wie im Beispiel eine Chance zu
funktionieren?
busmux #(8) Mux8 (sel,D1,D2,D3);
busmux #(16) Mux16 (sel,A1,A2,A3);
module busmux #(parameter MUXwidth) (
input sel,
input [MUXwidth-1:0] InpA,
input [MUXwidth-1:0] InpB,
output reg [MUXwidth-1:0] Out
);
always @ (sel, InpA, InpB)
if (sel) Out = InpB;
else Out = InpA;
endmodule
_
Ist aber teilweise schon SystemVerilog, zumindest kein UR-Verilog, bin
nicht sicher.
Dogbert schrieb:>> Ist aber teilweise schon SystemVerilog, zumindest kein UR-Verilog, bin> nicht sicher.
Ist Verilog 2001, ich würde es aber so schreiben, funktioniert auch wenn
man den default nettype auf 'none' hat:
<code>
busmux #(8) Mux8 (sel,D1,D2,D3);
busmux #(16) Mux16 (sel,A1,A2,A3);
module busmux #(parameter MUXwidth) (
input wire sel,
input [MUXwidth-1:0] wire InpA,
input [MUXwidth-1:0] wire InpB,
output reg [MUXwidth-1:0] Out
);
always @ (sel, InpA, InpB)
if (sel) Out = InpB;
else Out = InpA;
endmodule
</code>
Danke!
Lattice User schrieb:> ich würde es aber so schreiben, funktioniert auch wenn> man den default nettype auf 'none' hat:
nur um es nicht misszuverstehen - bedeutet das, Du empfiehlst wire immer
explizit hinzuschreiben wenn etwas ein wire ist?