problème avec toujours bloquer et la liste de sensibilité

K

kuntul

Guest
J'ai un code Verilog ci-dessous.Code:

toujours @ (posedge CLK) commencentForwardA = 0;

ForwardB = 0;/ / EX danger

if (EXMEMRegWrite == 1) commencer

if (EXMEMrd! = 0)

if (EXMEMrd == IDEXrs)

ForwardA = 2'b10;

IDEXTest si (== EXMEMrd IDEXrt & & == 0)

ForwardB = 2'b10;

fin/ Risque MEM /if (MEMWBRegWrite == 1) commencer

if (MEMWBrd! = 0) commencent

if (! (EXMEMRegWrite == 1 & & EXMEMrd! = 0 & & (EXMEMrd == IDEXrs)))

if (MEMWBrd == IDEXrs)

ForwardA = 2'b01;

if (IDEXTest == 0) commencent

if (! (EXMEMRegWrite == 1 & & EXMEMrd! = 0 & & (EXMEMrd == IDEXrt)))

if (MEMWBrd == IDEXrt)

ForwardB = 2'b01;

fin

fin

finfin
 
Il semble qu'il ya problème avec la logique que vous avez écrit.

HTH

 
Je ne vois aucun problème logique là-dedans .....Que voyez-vous?

 
Pour mettre à jour sur le bord même horloge, ne pas utiliser l'horloge pour le second signal.

Il semble que tous les signaux dans les essais sont cadencés.Si c'est le cas, les sorties avant changera toujours un bord après que tous les signaux testés permettent un changement.

Une façon simple d'expliquer cela - les signaux sont vérifiés ou sont utilisées avec les valeurs qu'ils ont devant le front d'horloge, et les signaux de modifier les valeurs après le front d'horloge.

 
vous dire que je besoin de le modifier de sorte que la liste de sensibilité est EXMEMrd ... etc, etc ..

 

Welcome to EDABoard.com

Sponsor

Back
Top