Appel d'un module dans Verilog
Je viens de commencer à apprendre la programmation matérielle avec Verilog, et je me sens perdu car je ne comprends pas ce que signifient les erreurs. Ici, j'appelle le modulereg31
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
Mais, j'obtiens cette erreur:
erreur: erreur de syntaxe près de "reg32"
Voici à quoi ressemble le module
module reg32(
input clk,
input [31:0] in,
input rst,
input L,
output [31:0] out
);
Quelqu'un peut-il signaler l'erreur ici?
Réponses
Parce que vous voulez "sélectionner" et faire reg32"fonctionner" le module dans une ifbranche.
Imagerie d'une carte PCB de téléphone portable. Le haut-parleur est juste là-bas, même s'il est en mode silencieux. Alors instanciez reg32séparément, puis utilisez votre propre logique pour gérer les réseaux connectés 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
Si vous travaillez principalement sur des logiciels, vous devez être familier avec la pensée "matérielle".