UTBM architecture des systemes informatiques 2004 gi mi41 genie informatique semestre 1 final

Publié par

MI41 A2004MI41 – Partiel 2Duré e 2hDo cuments autorisés : notes de coursLe barème est don né à titre indicatif1. Implémentation d'un graphe à état (8pts) a + b S = 1 0S = 00c S = 10X0aa bX2X3X1a bbS = 01On considère le graphe à état suivanta, b et c son t des entrées et S est une sortie sur deux bits1. 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. Lelogigramme détaillé n'est pas demandé. 2. Do nnez la description VHD L de la machine à état correspondant au graphe précédent. Le code devra être clairementcommenté.2. ASM (6 pts) 1. Do nner le code assembleur ARM permettant de mettre à '1' les bits 10 et 11 d'un mot placé à l'adresse 0x1F00 C000 sansmodifier le s autres.2. Do nnez le code assembleur ARM d'une fonction permettant de comparer deux tableaux d'entiers. Les adresses des deuxtableaux sont fournies via les re gistre r0 et r1, la taille des tableaux est fournie via le registre r2. Le rés ultat renvoyée par lafonction sera passé via le regist re r0 : 1 si les deux tableaux sont identiques 0 sinon.Le code donné de vra ê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 PC I. Cette interface est destinée à recueillir ...
Publié le : jeudi 21 juillet 2011
Lecture(s) : 329
Nombre de pages : 2
Voir plus Voir moins
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)
MI41
A2004
La transaction sur le bus est initiée par le maître qui spécifie une adresse dans l'espace d'adresse de l'interface et le type
d'opération (écriture ou lecture). Lorsque l'initiateur lance une transaction bus il effectue les opérations suivantes :
Mise à l'état bas du signal nFRAME, adresse positionnée sur les lignes AD et type d'opération (RD ou WR) positionné
sur les lignes BE
Donnée 1 positionnée sur les lignes AD, BE mis à l'état "haute impédance"
nFRAME reste à l'état bas tans que ce n'est par la dernière donnée qui est placée sur le bus
Deux signaux non représentés sur le chronogramme sont également présents : nIRDY et nTRDY. Ces deux signaux, actifs
niveau bas, indiquent respectivement que l'initiateur et l'interface sont prêt. Lors d'un cycle de transaction si l'un ou l'autre de
ces signaux est à l'état haut, un cycle d'attente est alors généré comme indiqué sur le chronogramme ci-dessous. Pour le module
de gestion, on ne considèrera que nIRDY.
Echange de 3 données avec état d'attente
3.2.
Description du module à réaliser
Le module d'interface qu'il s'agit de réaliser est chargé de
mémoriser l'adresse véhiculé sur le bus
vérifier si cette adresse correspond à l'adresse de l'interface et que l'interface est bien adressée en écriture par l'initiateur
le cas échéant le module doit activer la commande de mémorisation du tampon de données (du type pile FIFO)
Le module devra être capable de gérer les temps d'attente générés par l'initiateur (signal nIRDY)
Le registre d'adresse mémorise la valeur présente sur les lignes AD lorsque la commande LoadA est active (niveau haut) et
qu'un front montant d'horloge se produit.
Le tampon de donnée mémorise la valeur présente sur les lignes AD et la place dans la pile FIFO lorsque la commande LoadD
est active (niveau haut) et qu'un front montant d'horloge se produit.
Le décodeur d'adresse et une fonction combinatoire qui renvoie Adresse_valide au niveau haut si l'adresse correspond bien à
l'adresse de l'interface et que celle ci est adressée en écriture.
synoptique :
Donner le graphe à état permettant de réaliser le module de gestion en expliquant clairement le résultat obtenu.
Remarque : le graphe devra correspondre à une machine à état de Mealy (machine de Moore non appropriée).
2/2
Nicolas Lacaille
Adresse
Donnée 1
Donnée 2 + attente
Donnée 3
Opération
CLK
AD
nFRAME
nIRDY ou
nTRDY
BE
LoadA
clk
Tampon de donnée
LoadD
clk
Décodeur d'adresse
Adresse_valide
D
Q
AD
AD, BE
bus
MODULE DE GESTION
Adresse_valide
LoadA
LoadD
nIRDY
nFRAME
Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.