Cours #12: Exercices de révision
(VHDL de base – chapitre 2) Facteur? Décrire un module en VHDL qui accepte en entrée un nombre de cinq bits et qui a deux sorties, une pour indiquer si le nombre est divisible par trois et l’autre s’il est divisible par cinq. Pour une des sorties, utilisez un énoncé concurrent, et pour l’autre sortie utilisez un processus.
Implémentation sur PLA (technologies, chap. 3) Implémentation sur PLA Donner l’implémentation des fonctions logiques suivantes sur le PLA:
La synthèse … Donnez deux exemples de code VHDL non synthétisable. (flot, chapitre 4) La synthèse … Donnez deux exemples de code VHDL non synthétisable. Expliquez les défis de concevoir un synthétiseur pour du code écrit en C par rapport à du code VHDL.
(chemin de données) Calcul de la médiane Faites la conception d’un circuit numérique combinatoire qui accepte en entrée trois nombres signés A, B, et C exprimés avec W bits et qui a pour sortie la médiane des trois nombres. Dans une liste de nombres, la médiane est au milieu de la liste classée par ordre de grandeur. Par exemple: la médiane de {10, -1, 7} est 7. la médiane de {15, 12, 12} est 12. Vous pouvez utiliser des opérations logiques et arithmétiques (dont la comparaison), des multiplexeurs, décodeurs et encodeurs, et toute porte logique. Votre circuit doit être purement combinatoire, il ne doit pas inclure d’éléments à mémoire. Donnez un diagramme de votre circuit identifiant clairement les entrées, les sorties, les blocs de traitement et leurs interconnexions.
(conception de processeur) Cadenas numérique Donnez la description en VHDL d’un cadenas numérique à cinq chiffres dont la combinaison est 9-5-0-1-3. Le cadenas est doté d’un bouton « entrer » qui fait office d’horloge, et de quatre bits permettant de spécifier le chiffre. Une sortie indique si le cadenas doit être verrouillé ou non. Ce processeur a-t-il un chemin des données? Donnez la machine à états pour ce processeur. Donnez un modèle VHDL pour ce circuit. Votre code devrait suffisamment général pour qu’on puisse facilement changer la combinaison en modifiant une seule ligne du code. library IEEE; use IEEE.std_logic_1164.all; use ieee.numeric_std.all; entity cadenas is port ( reset_n, entrer : in STD_LOGIC; nombre : in unsigned(3 downto 0); ouvrir : out STD_LOGIC ); end cadenas;
(conception de processeur) Feux de circulation Considérez le problème des feux de circulation à l’intersection d’une route secondaire et d’une route principale. Le feu doit débuter vert sur la route principale, sauf quand un senseur sous la chaussée de la route secondaire détecte la présence d’une voiture. Le feu de la route principale doit alors passer au jaune pour une seconde, puis au rouge pour 30 secondes. Le feu de la route secondaire doit être vert pendant ces trente secondes, puis passer au jaune pendant une seconde, puis passer au rouge. Le feu doit alors être vert sur la route principale jusqu’à ce que le senseur soit activé de nouveau. Ce système contient-il un chemin des données? Donnez un diagramme d’états pour ce système.
Ascenseur à deux étages (conception de processeur) Ascenseur à deux étages Faites la conception d’un processeur pour un ascenseur à deux étages. Les entrées du système sont l’étage courant de l’ascenseur, les boutons de contrôle à l’intérieur de l’ascenseur et les boutons d’appels aux différents étages. Les sorties du système sont les commandes au moteur de l’ascenseur et les indicateurs lumineux dans l’ascenseur et aux étages. Ce processeur ne devrait pas comporter de chemin de données. Donnez un diagramme de vue d’ensemble du système, avec la liste des ports d’entrée et de sortie. Donnez un diagramme d’états du système.
Machine distributrice (conception de processeur) Machine distributrice Faites la conception d’un processeur pour une machine distributrice. Supposez que vous avez un module qui accepte des pièces et qui donne, sur 8 bits, la valeur en sous de la dernière pièce reçue. Une constante doit permettre de fixer le prix de l’item à distribuer. L’item doit être distribué quand le total des pièces reçues est égal ou supérieur au prix de l’item. Supposez une version simple où la monnaie n’est pas rendue. Donnez un diagramme de vue d’ensemble du système, avec la liste des ports d’entrée et de sortie. Donnez un diagramme d’états du système. Donnez un diagramme du chemin des données.
(conception de processeur) Chronomètre Faites la conception d’un processeur pour un chronomètre d’une résolution de 0.1 s avec un bouton pour démarrer et arrêter et un bouton permettant de saisir un temps intermédiaire. Supposez que vous avez accès à une horloge de 10 Hz.
(conception de processeur) SDA Une opération communément utilisée en traitement d’image est le calcul de la somme des différences absolues (SDA) entre deux images A et B. Cette somme est une mesure de la similarité entre les deux images. Faites la conception d’un processeur qui calcule la SDA de deux images de 16 16 pixels entreposées dans deux mémoires séparées. Chaque octet de chaque mémoire contient l’intensité d’un seul pixel sous la forme d’un nombre non signé entre 0 et 255 inclusivement. Les mémoires sont chargées par un autre module. Les calculs doivent débuter quand le signal d’entrée ‘go’ est activé, et le signal de sortie ‘fini’ doit être activé quand les calculs sont terminés. Donnez un le chemin des données et la machine à états de l’unité de contrôle du processeur.
Chemin critique, pipeline, etc. … (synchronisation – chapitre 8) Chemin critique, pipeline, etc. … Les bascules ont un temps de préparation de 1 ns, un temps de maintien de 0.5 ns et un délai de propagation de 2 ns. Négligez les délais des interconnexions. Identifiez le chemin critique et déterminez la fréquence maximale d’horloge. Ajoutez un niveau de pipeline et donnez la fréquence maximale d’horloge résultante. Quel est l’effet d’avoir un déphasage d’horloge égal à 1 ns sur le circuit sans pipeline? Peut-on diminuer la période d’horloge? Si oui, à quelle valeur?
(conception de processeur) Température moyenne Faites la conception d’un processeur qui reçoit la lecture de température d’un moteur à chaque coup d’horloge. Le processeur doit calculer la moyenne des températures des 5 derniers échantillons et activer un ventilateur si la température moyenne est supérieure à un seuil S2 spécifié par l’utilisateur. Le ventilateur doit être désactivé quand la température baisse sous un niveau S1 aussi spécifié par l’utilisateur. Si la température dépasse un troisième seuil S3, une alarme doit être activée. On suppose que S1 < S2 < S3.
(conception de processeur) Télémètre laser Faites la conception d’un processeur pour un télémètre laser. Le télémètre a un bouton pour déclencher la prise de mesure. Quand le bouton est pressé, une impulsion lumineuse est générée et un chronomètre est activé. Quand l’écho de l’impulsion est perçu par un détecteur, le chronomètre est arrêté et la distance est mesurée en divisant le temps par la vitesse de propagation de la lumière dans l’air. Discutez de la précision de votre appareil en fonction des différents paramètres de design.