Verilog'da bir Modül Çağırma

Sep 28 2020

Verilog kullanarak donanım programlamayı öğrenmeye yeni başladım ve kendimi kaybolmuş hissediyorum çünkü hataların ne anlama geldiğini anlayamıyorum. Burada modülü arıyorumreg31

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

Ama şu hatayı alıyorum:

hata: "reg32" yakınında sözdizimi hatası

Modül böyle görünüyor

module reg32(
    input clk,
    input [31:0] in,
    input rst,
    input  L,
    output  [31:0] out
    );

Birisi buradaki hatayı gösterebilir mi?

Yanıtlar

1 Light Sep 28 2020 at 15:34

Çünkü reg32bir ifşubede "seçmek" ve modülü "çalıştırmak " istiyorsunuz .

Bir cep telefonu PCB kartı görüntüleme. Sessiz modda olsa bile hoparlör ünitesi hemen oradadır. Bu nedenle reg32, ayrı olarak somutlaştırın , ardından bağlı ağlarla başa çıkmak için kendi mantığınızı kullanın 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

Temelde yazılım üzerinde çalışıyorsanız, "donanım" şeklinde düşünmeye aşina olmanız gerekir.