LOGIQUE PROGRAMMABLE EN VERILOG
Chapitre 1. Introduction
Chapitre 2. Traitement combinatoire et syntaxe du langage
Chapitre 3. L'usage de l'outil QUARTUS II
Chapitre 4. Description comportementale
4.1. Le bloc always et le type reg
4.2. Les opérateurs conditionnels
4.3. La mémoire élémentaire
4.4. L'alternative multiple
4.5. Exemple de description par table de vérité
4.6. Traitement séquentiel par l'exemple
4.7. Exercices
4.8. Solutions des exercices
4.8.1. Bascule JK
4.8.2. Compteur-décompteur 4 bits BCD avec chargement synchrone
4.8.3. Bascule 74LS73A
4.8.4. Compteur BCD modulo 100
4.8.5. Le compteur 74LS168
4.8.6. Le registre universel 74LS194
Chapitre 5. Projets : énoncés
Chapitre 6. Projets : vers la solution
Page d'accueil Table des matières Niveau supérieur Page précédente Bas de la page Page suivante

4.8.3. Bascule 74LS73A

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

 

Page d'accueil Table des matières Niveau supérieur Page précédente Haut de la page Page suivante