2017-10-20 6 views
0

J'essaie de créer un module modulo 3 d'entrée 4 bits. Je continue d'obtenir l'erreur "l'instanciation n'est pas autorisée dans la zone séquentielle sauf l'instanciation du vérificateur". Je ne suis pas sûr de ce que je fais mal.verilog: l'instanciation n'est pas autorisée dans la zone séquentielle sauf l'instanciation du vérificateur

module divisible_3(
    input [3:0] a, 
    output div3); 

wire xnor30; 
wire xnor21; 
wire and32; 
wire xnor10; 
wire xnor_and; 
wire andxnor_and; 

begin 
always @ (*) 

two_input_xnor xnor1 (a[3], a[0], xnor30); 
two_input_xnor xnor2 (a[2], a[1], xnor21); 

two_input_and and1 (a[3], a[2], and32); 
two_input_xnor xnor3 (a[1], a[0], xnor10); 

two_input_and and2 (xnor30, xnor21, xnor_and); 
two_input_and and3 (and32, xnor10, andxnor_and); 

two_input_or or1 (xnor_and, andxnor_and, div3); 

end 

endmodule 
+1

Possibilité de duplication de [Multiplicateur 4 bits avec verilog en utilisant seulement des additionneurs demi et complets] (https://stackoverflow.com/questions/20842388/multiplier-4-bit-with-verilog-using-just-half-and -full-adders) – Qiu

Répondre

1

Je ne sais pas ce que vous essayez de faire ici, mais vous ne pouvez pas instancier le module à l'intérieur d'un bloc toujours. Cela n'a tout simplement aucun sens. Aussi cette déclaration de début n'a aucune fonctionnalité sur l'endroit où vous l'avez mis. Il appartient au début d'un bloc toujours. Quoi que vous essayiez de faire, instanciez simplement tous vos modules en dehors du bloc toujours et ça ira.

+0

merci! J'ai compris ce que je faisais de mal. apparemment il y en avait plus d'un .. –

+0

Content d'entendre, vous l'avez compris :) – urban