{{{ #!html

TP1 VLSI : Ecriture du modèle VHDL de l'AMD2901

}}} [[PageOutline]] == Objectifs == * En partant d'une spécification "papier" décrire le modèle VHDL d'un circuit. Il est nécessaire que tous les groupes utilisent les mêmes noms de connecteurs et de signaux internes afin de pouvoir échanger les vecteurs de test. {{{ ENTITY amd IS PORT ( cke : IN BIT; i : IN BIT_VECTOR (8 DOWNTO 0); a : IN BIT_VECTOR (3 DOWNTO 0); b : IN BIT_VECTOR (3 DOWNTO 0); d : IN BIT_VECTOR (3 DOWNTO 0); noe : IN BIT; r0 : INOUT MUX_BIT BUS; r3 : INOUT MUX_BIT BUS; q0 : INOUT MUX_BIT BUS; q3 : INOUT MUX_BIT BUS; ovr : OUT BIT; zero : OUT BIT; signe : OUT BIT; np : OUT BIT; ng : OUT BIT; cin : IN BIT; cout : OUT BIT; y : OUT MUX_VECTOR (3 DOWNTO 0) BUS; vddi : IN BIT; vssi : IN BIT vdde : IN BIT; vsse : IN BIT ); END amd; }}} Tout d'abord vous recopierez dans votre répertoire le squelette du modèle de l`'''AMD2901''' qui se trouve dans le répertoire ~jeanlou/VLSI2006-2007/TD-TME/S4/ == Exercices == === Exercice 1-VHDL === ==== Question 1 ==== Quelle est la différence entre l'assignation simple et l'assignation avec condition ? ==== Question 2 ==== Dans l`''' AMD2901''' décrit en cours, quels sont les signaux qui ne sont pas affectés systématiquement lorsque les valeurs d'entrée sont modifiées? pourquoi? ==== Question 3 ==== Comment décrit on ces signaux en '''VHDL'''? quel est le type correspondant? === Exercice 2-AMD2901 === ==== Question 1 ==== Evaluer le nombre de bascules D que vous allez utiliser pour décrire votre '''AMD290'''. ==== Question 2 ==== Quelles sont les différentes opérations possibles avec l`'''AMD2901'''? ==== Question 3 ==== Le résultat de l'ALU peut être récupéré dans quelle partie de l'''AMD2901'''? Quelle est l'entrée qui permet de choisir la destination du résultat de l'ALU? ==== Question 4 ==== Ecrit-on dans tous les registres de l''''AMD2901''' à chaque cycle ? ==== Question 5 ==== Quelle est l'utilité des bits ''r0, r3, q0, q3 ''? quel est le mode de ces connecteurs ? ==== Question 6 ==== Déterminer les entrées qui peuvent modifier les différents drapeaux. ==== Question 7 ==== Quelle est l'utilité de l'entrée ''noe'' ? ==== Question 8 ==== Est il possible de venir lire une case mémoire et de la modifier au cours du même cycle ? donner un exemple . === Exercice 3-Vecteurs de test. === Dans le cas de '''votre AMD2901''' dont l'interface est donné plus haut, déterminer le (les) vecteur(s) de test permettant de : ==== Question 1 ==== Remplir les registresd'adresse '''0''' avec la valeur '''0''' et le registre '''1''' avec la valeur '''1'''. Combien de cycles sont nécessaires ? combien de vecteurs ? ==== Question 2 ==== On suppose que l'accumulateur contient la valeur '''8''' en début de cycle, donner le vecteur qui permet d'avoir '''16''' en fin de cycle dans l'accumulatur. Les sorties seront toutes prévues.