Néanmoins l'implémentation des bascules m'étonne car on passe dans la même itération le signal dans deux valeurs. Il y a une notion basique que j'ignore.
Tu veux sans doute parler de ce code :
/* Synchronize btn_i to avoid metastability*/regbtn_old,btn_s;always@(posedgeclk_iorposedgerst)beginif(rst)beginbtn_old<=1'b0;btn_s<=1'b0;endelsebeginbtn_old<=btn_i;btn_s<=btn_old;endend
Toute l'explication se trouve dans l'opérateur d'affectation non bloquante<=. Cet opérateur signifie que l'affectation ne sera effective qu'à la sortie du processus (always@).
Donc si l'on regarde les deux lignes suivantes :
// La valeur btn_i n'est pas encore affecté à btn_oldbtn_old<=btn_i;// btn_old a ici la valeur de btn_i à l'instant t-1btn_s<=btn_old;
[^] # Re: j'ai quelques questions msieur !
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche TapTempo en Verilog. Évalué à 5. Dernière modification le 26 septembre 2020 à 07:48.
Tu veux sans doute parler de ce code :
Toute l'explication se trouve dans l'opérateur d'affectation non bloquante
<=. Cet opérateur signifie que l'affectation ne sera effective qu'à la sortie du processus (always@).Donc si l'on regarde les deux lignes suivantes :
J'ai plus qu'une balle