Je passais en revue un document du site Web de Microsemi (Actel HDL Code) et j'ai trouvé quelques implémentations de flip-flop (Synchrone, Asynchrone etc.) Dans tous les cas l'auteur a modélisé le flip-flop -flops avec des instructions de blocage.Façon correcte de modéliser un Flip Flop
Je veux savoir si ces implémentations sont correctes, parce que j'ai toujours utilisé le mode non-bloquant pour modéliser la logique séquentielle? Ai-je manqué quelque chose ou est-ce juste un moyen de modéliser seulement un flip flop et pas un circuit séquentiel en général?
// Rising Edge Flip-Flop with Asynchronous Reset
module dff_async_rst (data, clk, reset, q);
input data, clk, reset;
output q;
reg q;
always @(posedge clk or negedge reset)
if (~reset)
q = 1'b0;
else
q = data;
endmodule
//Rising Edge Flip-Flop with Synchronous Reset
module dff_sync_rst (data, clk, reset, q);
input data, clk, reset;
output q;
reg q;
always @ (posedge clk)
if (~reset)
q = 1'b0;
else
q = data;
endmodule
NOTE: Le blocage des affectations utilisées dans le bloc toujours pour obtenir une logique séquentielle
La plupart des outils de synthèse va générer une bascule pour ces exemples, bien que les affectations de blocage ne sont pas commun pour la logique séquentielle. Cette réponse vous donnera un aperçu plus détaillé: http://stackoverflow.com/a/4774450/1383356 – Ari