Travaux pratiques IFT 1213, Automne 2000
Semaine 7.

Circuits séquentiels, bascules et registres.


1. Voici le diagramme de la bascule D activée sur front descendant tel que présenté en classe (H & J p 525). Le role de cet exercice est de vérifier que cette bascule mérite bien son nom.
  1. Montrez que tant que CLK conserve la valeur 1, on a R=S=0.
  2. Montrer que quand CLK passe de 1 a 0, si l'entrée D est bien stabilisée, alors S prend la valeur D alors que R prend la valeur NOT D., et ce en un temps delta t.
  3. Montrer que tant que CLK reste au niveau 0, si R=1 et S=0, alors R et S gardent leur valeur quels que soient les changements que l'on fasse subir à l'enté D.
  4. Montrer que tant que CLK reste au niveau 0, si R=0 et S=1, alors R et S gardent leur valeur quels que soient les changements que l'on fasse subir à l'entré D.
  5. Montrer que quand CLK passe de 0 a 1, la bascule de droite conserve sont état.
  6. En déduire que la sortie Q de cette bascule (à droite complètement) se stabilise en un temps 3 delta t apres le debut du front montant et conserve cette valeur durant tout le cycle peu importe l'entée D.
2. Implantez une bascule JK activée sur front montrant à partir d'une bascule D activée sur front montrant. Voici le comportement d'une bascule JK (on note ici Q et NewQ ce qui aurait aussi pu être noté Q(t) et Q(t+1) pour mieux faire ressortir l'aspect discret du temps):
JKHorlogeQNewQ
0 0 monte 0 0
0 0 monte 1 1
1 0 monte X 1
0 1 monte X 0
1 1 monte 0 1
1 1 monte 1 0
3. Implantez un device LW qui soit un registre avec les entrées suivantes: Hor (horloge); R (reset) qui initialise le registre à 0; D0, D1, D2 et D3 qui sont trois bits de data; S0 et S1 qui sont deux bits de contrôle. Les sorties (l'état ou le contenu du registre) sont Q0, Q1, Q2 et Q3. Le comportement désiré est le suivant: si R est mis à 1, les Qi sont mis à 0.
Si S1S0 = 00 le registre ne change pas de valeur.
Si S1S0 = 01 il y a rotation des bits sur la droite sur front montant.
Si S1S0 = 10 il y a rotation des bits sur la gauche sur front montant.
Si S1S0 = 11 Qi prend la valeur Di sur front montant.