On commence par décomposer le
composant en 2. C'est une des questions à se
poser. Fait-on un vrai 7473A ? (2 bascules ou une bascule
du type 7473A).
Réponse : on réalise un composant à 2 bascules
sachant que l'on fait référence à composant qui en
possède 2.
La technologie LS étant
différente, il n'est pas du tout certain que ce soit
un vrai équivalent (courants et tensions des niveaux
logiques).
L'analyse du symbole nous informe que :
- c'est une bascule JK,
- les entrées J et K ont une dépendance conditionnelle au signal CLK (elles sont synchrones du signal
CLK),
- l'entrée R permet une remise à
0 de Q, active au niveau 0,
- l'entrée CLK est active sur front
descendant,
- L'entrée R ne présente
aucune dépendance (son fonctionnement est asynchrone
de CLK),
- Les sorties sont complémentaires.
Une solution est :
module Complet7473A (j1, k1, clk1, r1,
Q1, Qbar1, j2, k2, clk2, r2, Q2, Qbar2) ;
input j1, k1, clk1, r1, j2, k2, clk2, r2 ;
outputQ1, Qbar1, Q2, Qbar2 ;
Une7473A Bascule1 (j1, k1, clk1,
r1, Q1, Qbar1) ;
Une7473A Bascule2 ( j2, k2, clk2,
r2, Q2, Qbar2) ;
endmodule
module Une7473A(j, k, clk, r, Q, Qbar) ;
input j, k, clk, r ;
output Q, Qbar ;
reg Q ;
always @(negedge clk or negedge r)
begin
if (! r)
Q = 0 ;
else
case ({j, k})
2'b01 : Q = 0 ;
2'b10 : Q = 1;
2'b11 : Q = !Q;
endcase
end
assign Qbar = ! Q;
endmodule