Aufrufen eines Moduls in Verilog
Ich habe gerade angefangen, Hardware-Programmierung mit Verilog zu lernen, und ich fühle mich verloren, weil ich nicht verstehen kann, was Fehler bedeuten. Hier rufe ich das Modul aufreg31
module nbit_register(input clk, input [31:0]in, input reset, input L,
input load, input shift, output reg[31:0] out);
always@(*)begin
if(load==1)
reg32 add(clk, in, reset,L, out);
else
out={ in[30:0],1'b0};
end
endmodule
Aber ich bekomme diesen Fehler:
Fehler: Syntaxfehler in der Nähe von "reg32"
So sieht das Modul aus
module reg32(
input clk,
input [31:0] in,
input rst,
input L,
output [31:0] out
);
Kann hier jemand auf den Fehler hinweisen?
Antworten
Weil Sie das Modul reg32in einem ifZweig "auswählen" und "funktionieren" lassen möchten .
Abbildung einer Handy-Leiterplatte. Die Lautsprechereinheit ist gerade da draußen, auch wenn sie sich im lautlosen Modus befindet. Instanziieren Sie also reg32separat und verwenden Sie dann Ihre eigene Logik, um mit den angeschlossenen Netzen umzugehen reg32.
wire [31:0] add_out;
reg32 add(clk, in, reset,L, add_out); // here the 4 inputs are connected to top inputs
// directly. but if you want, you can use 'load'
// to control them similar to the code below.
always@(*)begin
if(load==1)
out = add_out;
else
out = { in[30:0],1'b0};
end
Wenn Sie hauptsächlich an Software arbeiten, müssen Sie mit dem "Hardware" -Denken vertraut sein.