Cet ouvrage et des milliers d'autres font partie de la bibliothèque YouScribe
Obtenez un accès à la bibliothèque pour les lire en ligne
En savoir plus

Partagez cette publication

MI41
A2004
MI41 – Partiel 2
Durée 2h
Documents autorisés : notes de cours
Le barème est donné à titre indicatif
1.
Implémentation d'un graphe à état (8pts)
On considère le graphe à état suivant
a, b et c sont des entrées et S est une sortie sur deux bits
1.
En expliquant clairement la démarche employée synthétiser une machine à états câblée dont le comportement est modélisé
par le graphe à état donné précédemment. La machine devra être réalisée à l'aide de portes logiques et de bascule D. Le
logigramme détaillé n'est pas demandé.
2.
Donnez la description VHDL de la machine à état correspondant au graphe précédent. Le code devra être clairement
commenté.
2.
ASM (6 pts)
1.
Donner le code assembleur ARM permettant de mettre à '1' les bits 10 et 11 d'un mot placé à l'adresse 0x1F00 C000 sans
modifier les autres.
2.
Donnez le code assembleur ARM d'une fonction permettant de comparer deux tableaux d'entiers. Les adresses des deux
tableaux sont fournies via les registre r0 et r1, la taille des tableaux est fournie via le registre r2. Le résultat renvoyée par la
fonction sera passé via le registre r0 : 1 si les deux tableaux sont identiques 0 sinon.
Le code donné devra être clairement commenté.
3.
Gestion de signaux d'un bus : réalisation d'un graphe à état (6pts)
Une interface de périphérique est connectée à un bus périphérique de type bus PCI. Cette interface est destinée à recueillir des
données en provenance d'un microprocesseur (initiateur de toutes les transaction bus).
On s'intéresse ici à une version simplifiée d'un module chargé de déterminer si l'adresse véhiculée sur le bus correspond à
l'adresse du tampon de donnée et le cas échéant à envoyer les commandes de chargement de donnée au tampon.
3.1.
Description des
transactions
bus (écriture)
Le bus décrit est un bus synchrone possédant 32 lignes appelées AD véhiculant les adresses et les données. Les transactions bus
(écriture ou lecture) peuvent être simples, cas où une seule donnée est véhiculée, ou "en rafale", cas où plusieurs données sont
véhiculées.
Le principe de la transaction consiste pour l'initiateur à envoyer une adresse avec une commande de lecture ou écriture puis à
envoyer ou recevoir 1, 2, 3 ou 4 données. L'adresse spécifiée est l'adresse correspondant à la première donnée, les données
suivante correspondant aux adresses suivantes. Ici on ne considèrera que des transactions en écriture puisque l'interface n'est
destinée qu'à recevoir des données en provenance d'un maître initiateur de toute transaction.
Chronogramme
1/2
Nicolas Lacaille
Adresse
Donnée 1
Donnée 2
Donnée 3
Donnée 4
CLK
AD[31..0]
nFRAME
BE
Lecture adresse lecture donnée 1
lecture donnée 2
lecture donnée 3
lecture donnée 4
Opération
X0
X1
X2
X3
a b
b
a
c
a b
a + b
S = 01
S = 10
S = 10
S = 00
Opération à réaliser pour
l'interface (écriture)