Aufrufen eines Moduls in Verilog

Sep 28 2020

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

1 Light Sep 28 2020 at 15:34

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.