Chamando um Módulo em Verilog
Acabei de começar a aprender programação de hardware usando Verilog e me sinto perdido porque não consigo entender o que os erros significam. Aqui, estou chamando o móduloreg31
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
Mas, recebo este erro:
erro: erro de sintaxe próximo a "reg32"
É assim que o módulo se parece
module reg32(
input clk,
input [31:0] in,
input rst,
input L,
output [31:0] out
);
Alguém pode apontar o erro aqui?
Respostas
Porque você deseja "selecionar" e fazer o módulo reg32"funcionar" em uma iframificação.
Imagem de uma placa de PCB de telefone celular. A unidade de alto-falante está lá fora, mesmo se estiver no modo silencioso. Portanto, instancie reg32separadamente e use sua própria lógica para lidar com as redes conectadas 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
Se você está trabalhando principalmente com software, precisa estar familiarizado com o pensamento de uma forma de "hardware".