Home
Architecture Matérielle et Logicielle (LIF6)
Contents
1. tat de l horloge Clock du circuit c est dire lui faire passer un front montant ou un front descendant vous pouvez soir cliquer sur le bouton d horloge en haut gauche du circuit soit envoyer un tic manuel via Ctr1 T Si vous souhaitez relancer l ex cution du programme remettre PC 0 et vider le banc de registres mettez l horloge Clock son niveau bas puis faites passer l entr e Reset 1 puis de nouveau 0 Fichier m moire Un fichier m moire chargeable dans une RAM LOGISIM est un simple fichier texte dont la premi re ligne est v2 0 raw Viennent ensuite les diff rents octets de la m moire en hexad cimal Voir la section Memory Components de la documentation LOGISIM pour plus de d tails Voici par exemple le contenu du fichier AddSimple mem v2 0 raw 5020 1025 5260 1266 1440 Ce programme correspond au code assembleur contenu dans le fichier AddSimple asm Listing 7 1 AddSimple asn ORIG x0000 code hexa AND RO RO 9 5020 ADD RO RO 5 RO lt 5 1025 AND R1 R1 0 5260 ADD R1 R1 6 R1 lt 6 1266 ADD R2 R1 R0 R2 lt R1 RO 1440 END EXERCICE 1 Simulation d un programme Ouvrez le circuit LC3 etu circ puis r cup rez le programme AddSimple mem sur la page du cours Chargez le dans la RAM et lancez sa simulation Observez en particulier l volution des contenu des registres PC IR RO RT EXERCICE 2 Cycle d instruction Placez vous
2. adresse est donn e par le compteur On peut aussi utiliser un composant Probe et afficher en Hexa directement Nicolas Louvet et Laure Gonnord 7 Universit Lyon 1 FST D partement Informatique L2 TP 3 de LIF6 Printemps 2015 3 3 Banc de registre EXERCICE 5 Banc de registres Construire un banc de registres avec 4 registres 4 bits capable de lire deux registres et au besoin d crire un registre On commencera par se poser la question du nombre d entr es et de sorties d un tel circuit Nicolas Louvet et Laure Gonnord 8 TP 4 Test de circuit circuits d di s Objectifs Utiliser le simulateur de LOGIsIM pour tester ses circuits Concevoir un circuit d di 4 1 LOGISIM test de circuit EXERCICE 1 Simulation la ligne de commande R cup rez sur la page web du cours le compteur 4 bits du tp pr c dent Regardez la documentation Command Line Verification et lancez une simulation la ligne de com mande En rajoutant une sortie nomm e halt voir la doc faire en sorte que la simulation termine apr s un cycle du compteur Indication apr s quelle valeur du compteur la simulation doit elle s arr ter EXERCICE 2 Comparaison fonctionnelle de circuits On va maintenant comparer ce compteur avec le compteur de la biblioth que LOGISIM R cup rer le compteur 4 bits de la biblioth que et lire sa documentation En ajoutant un comparateur 4 bits con
3. crit 10 fois le caract re Z sur l cran On utilisera l ins truction TRAP avec le code x22 PUTS et on pourra se reporter la documentation table A2 p 543 dans la documentation de PISA du LC 3f pour l utiliser 2 Assembler ce programme la main puis sur le mod le du Listing 5 1 cr er un programme pr assembl 3 Utiliser le simulateur pour 1 On peut se reporter l antis che de l annexe B 2 2 Remarquez que malgr le fait que l on ait assembl la main il faut quand m me faire r aliser au logiciel as la transformation vers le fichier objet obj 3 Chercher ISA LC3 dans votre moteur de recherche pr f r Vous trouverez un pdf nomm PattPatelAppA pdf Nicolas Louvet et Laure Gonnord 11 Universit Lyon 1 FST D partement Informatique L2 TP 5 de LIF6 Printemps 2015 Adresse Contenu Contenu binaire D tails des instructions pseudo code AND mode cst x3000 x5020 0101 000 000 1 00000 DR SR RO Imm5 x00 Ro Ro amp 0 0 ADD mode cst DR R1 x3001 x1221 0001 001 000 1 00001 SR RO Imm5 x01 R Ro 1 1 x3002 xE404 1110 010 0 0000 0100 LEA DR R2 Offset9 x04 R 3007 fin x3003 x6681 010 011 010 00 0001 LDP DRAR R mem 3008 6 baseR R20ffset6 x01 ADD mode cst DR R1 loop x3004 x1262 0001 001 001 1 00010 Oo ay runs 99 R R 2 x3005 x16FF 0001 011 011 1 11111 a PERS R R3 1 x3006 x03FD
4. 0000 001 1 1111 1101 BRp offset 3 if R3 gt 0 goto loop fin x3007 xF025 1111 0000 0010 0101 TRAP trapvect x25 HALT x3008 x006 donn e FIGURE 5 1 Un programme en binaire hexa tp5b asm 5 2 criture et simulation de programmes en assembleur LC 3 Jusqu a pr sent nous avons crit des programmes en remplissant la m moire directement avec les codages des instructions Nous allons maintenant crire des programmes de mani re plus simple en crivant les ins tructions en assembleur LC 3 EXERCICE 4 Ex cution modification 1 Pr voir le comportement des fichiers tp5c asm et tp5dstud asm V rifier avec le simulateur Quelle est la diff rence entre les instructions PUTS et OUT 2 crire un programme assembleur LC 3 qui calcule le min et le max de deux entiers et stocke le r sultat un endroit pr cis en m moire de label min Tester avec diff rentes valeurs Nicolas Louvet et Laure Gonnord 12 23 Universit Lyon 1 FST D partement Informatique L2 TP 5 de LIF6 Printemps 2015 Codes fournis Listing 5 1 tp5b asm Author Bill Slough for MAT 3670 tp5b pour LIF6 Laure Gonnord Oct 2014 This program is intentionally lacking comments since part of the goal for this lab is to investigate the instruction set of the LC 3 computer ORIG X3000 specify the origin i e where to load in memory machine instructions data FILL x5020 FILL x1221
5. html Nous vous fournissons une archive tgz sur la page du cours Cette archive contient le logiciel sous la forme d un jar les fichiers 1c30s asm OS simple impl mentation des entr es sorties et lancement d autres pro grammes le fichier de test pO asm ainsi que les programmes du TP 5 1 Jouons avec le simulateur de LC 3 EXERCICE 1 Installation documentation Apr s avoir d sarchiv le tgz fourni 1 Lire attentivement la documentation du logiciel 2 Assembler et ex cuter l OS et le programme de test pO asm EXERCICE 2 Ex cution d un programme en langage machine Vous avez en exercice r alis le d codage d un programme LC 3 crit en langage machine Une correction se trouve Figure 5 1 Parcourir rapidement cette correction et r pondre aux questions suivantes l aide de quelles instructions r cup re t on une donn e en m moire dans ce programme Pouvait on faire autrement Comment est r alis le saut de compteur de programme pour r aliser la boucle Que devient le label dans le programme assembl Ensuite assembler et lancer la simulation pas pas sur le fichier tp5b asnf Bien comprendre toutes les tapes avant de passer l exercice suivant On remarquera que le simulateur LC 3 donne l quivalent en language d assemblage des instructions ma chine consid r es EXERCICE 3 1 0 Sur papier d abord 1 crire un programme en assembleur LC 3 qui
6. qu il n y a rien mettre jour l int rieur du composant Registres mais par contre des modifications sont faire dans le circuit principal pour bien amener la bonne donn e en entr e 7 Exp rimentez votre circuit en ex cutant les trois premi res instructions de votre programme de test EXERCICE 4 gt Implantation de ST On se concentre maintenant sur l implantation de l instruction ST 1 Quelle action doit tre effectu e dans le chemin de donn es du processeur lors de la phase d ex cution d une instruction ST SR label Comment la RAM est elle plac e en mode criture lors de l ex cution d un ST Comment est calcul e l adresse de destination dans la RAM Mettre jour votre circuit au voisinage du banc de registres si n cessaire oOo amp DR Exp rimentez votre cicuit en ex cutant l instruction ST de votre programme de test 8 3 Instructions de branchement et saut Dans cette section on cherche rajouter les composants du circuit pour l instruction BR EXERCICE 5 Programme de test crire en langage machine LC 3 un programme qui permettra de tester BR EXERCICE 6 Conditions d activation NZP On veut implanter le sous circuit NZP On rappelle que l architecture du LC 3 sp cifie trois drapeaux N Z et P qui indiquent respectivement si la derni re valeur charg e dans le banc de registres tait strictement n gative nulle ou strictement positive Le circuit NZP contient un registre 3 b
7. A 918171615 4 312 11 0 NOT DR SR DR not SR 1001 DR SR 111111 ADD DR SR1 SR2 DR SRI SR2 k 0001 DR SR1 0 00 SR2 ADD DR SR1 Imm5 DR SRI SEXT Imm5 i 0001 DR SRI 1 Imm5 AND DR SR1 SR2 DR SRI and SR2 gt 0101 DR SRI 0 00 SR2 AND DR SR1 Imm5 DR SRI and SEXT Imm5 0101 DR SRI 1 Imm5 LEA DR label DR PC SEXT PCoffset9 1110 DR PCoffset9 LD DR label DR mem PC SEXT PCoffset9 0010 DR PCoffset9 ST SR label mem PC SEXT PCoffset9 SR 0011 SR PCoffset9 LDR DR BaseR Offset6 DR mem BaseR SEXT Offset6 0110 DR BaseR Offset6 STR SR BaseR Offset6 mem BaseR SEXT Offset6 SR 0111 SR BaseR Offset6 BR n z p label Si cond PC PC SEXT PCoffset9 0000 n zj p PCoffset9 NOP No Operation 0000 0 0 0 000000000 RET JMP R7 PC R7 1100 000 111 000000 JSR label R7 PC PC PC SEXT PCoffset11 0100 1 PCoffset11 B 3 ISA LC 3 La documentation officielle est accessible via la page du cours ou encore l adresse http highered mheducation com sites d1 free 0072467509 104653 PattPatelAppA pdf Nicolas Louvet et Laure Gonnord 25
8. FILL xE404 FILL x6681 FILL x1262 FILL x16FF FILL x03FD FILL xF025 FILL x0006 data word END Listing 5 2 tp5cstud asm Author Bill Slough MAT 3670 A first assembly language LC 3 program This is a variation on the world famous Hello world program known to many programmers Adapted for LIF6 Univ Lyonl by Laure Gonnord oct 2014 z Notes 1 HALT is equivalent to TRAP x25 see Table A 2 page 543 3 2 PUTS is equivalent to TRAP x22 3 LEA Load Effective Address uses the IMMEDIATE addressing mode 4 n represents the newline character ORIG x3000 specify the origin i e where to load in memory LEA RQ HELLO RO address of output string PUTS write Hello world n LEA RQ COURSE RO address of output string PUTS write LIF6 LEA RQ UNIV RO address of output string PUTS write Univ Lyon1 HALT HELLO STRINGZ Hello world n COURSE STRINGZ LIF6 n UNIV STRINGZ Univ Lyon1 n END Listing 5 3 tp5dstud asm Author Bill Slough for MAT 3670 Modified by Laure Gonnord for LIF6 univ lyonl Example assembly language program with a simple loop 333 This code intentionaly lacks comments Nicolas Louvet et Laure Gonnord 13425 20 25 Universit Lyon 1 FST D partement Informatique L2 TP 5 de LIF6 Printemps 2015 ORIG x3000 LOOP ELOOP STOP N STAR NEWLN END
9. de pile LD Ri n on initialise R1 avant l appel la sous routine aff0n JSR affn0 appel la sous routine affn0 LEA RO Strcr charge l adresse strcr dans RO chaine de caract res n PUTS affiche un retour chariot HALT routine aff0n affiche les chiffres de an param tre donn e R1 n tous les registres sauf R1 et R6 peuvent tre cras s par l appel A COMPLETER Donn es n FILL 7 carzero FILL 48 code ASCII de 0 strcr STRINGZ n pour afficher un retour chariot spinit FILL stackend BLKW 32 stackend BLKW 1 adresse du fond de la pile END 1 crire le pseudo code de la routine 2 Traduire en langage d assemblage LC 3 3 Bonus Que se passe t il si le programme est appel avec 9 lt n lt 16 4 Bonus Comment faire pour afficher correctement les chiffres hexad cimaux de 0 n pour 9 lt n lt 16 Nicolas Louvet et Laure Gonnord 15 Universit Lyon 1 FST D partement Informatique L2 TP 6 de LIF6 Printemps 2015 6 2 Chaines de caract res EXERCICE 2 Saisie d une cha ne de caract res Le syst me d exploitation du LC 3 fournit une interruption permettant d afficher une cha ne de caract res PUTS TRAP x22 mais on n a pas la possibilit de saisir une cha ne de caract res Le but est d crire une routine permettant cela On compl tera progressivement le programme ci dessous Listing 6 2 SaisieChaine asnr ORIG x3
10. pour traduire votre programme en langage machine chargeable dans la RAM du LC 3 de LOGIsIM EXERCICE 3 Implantation de LD Dans cet exercice on se concentre sur l implantation de l instruction LD 1 Quelle action doit tre effectu e dans le chemin de donn es du processeur lors de la phase d ex cution d une instructionLD DR label 2 Lors de l ex cution d une instruction LD quel sous circuit est charg de placer la m moire RAM en mode lecture 3 L unit GetAddr se charge de calculer l adresse de la m moire qui doit tre acc d e Addr dans la RAM Au cours de la phase de Fetch que doit valoir Addr M me question au cours de la phase Exec d une instruction LD 1 Au passage pourquoi peut on utiliser ici le codage fourni par PennSim qui stocke le programme partir de l adresse x3000 alors que notre circuit stocke le programme partir de l adresse x0000 Nicolas Louvet et Laure Gonnord 21 Universit Lyon 1 FST D partement Informatique L2 TP 8 de LIF6 Printemps 2015 4 Compl tez l aide des signaux Offset9 PC Load Store Fetch la formule valable pour l ex cu tion de toutes les instructions DS Les a be dt Ce ee so dd Alors Addr PC Sinon Addr 2 lock deed ele eee tien et 5 Compl tez Get Addr de fa on ce que le circuit permette l ex cution de LD 6 Au niveau du banc de registres comment doit tre effectu e l criture dans DR de la donn e On v rifiera
11. short lu octets n n sizeof short uil 6000 ui2 60000 ui3 uil ui2 printf unsigned short uil d ui2 d uil ui2 d n uil ui2 ui3 sil 10000 si2 30000 si3 sil si2 printf signed short sil d si2 d sil si2 d n sil si2 si3 return 0 Nicolas Louvet et Laure Gonnord 6 TP 3 Circuits s quentiels registres m moire Objectifs Ecrire des circuits s quentiels simples en LOGISIM Utiliser la librairie LOGISIM pour la m moire Savoir r aliser un banc de registres 3 1 Bascules EXERCICE 1 gt Bascules Le but est de bien comprendre le principe des bascules D flip flop Montez une bascule D flip flop de la librairie en mode front montant Rising Edge puis testez son com portement Montez ensuite deux bascules D en s rie en les reliant au m me signal d horloge v rifiez le comportement sur deux cycles d horloge successifs Construisez un chenillard 5 leds en utilisant 5 bascules D mont es en s rie Le principe est qu chaque cycle d horloge une seule led est allum e et la led allum e est d cal e d un cran vers la droite chaque cycle d horloge Le cycle suivant l allumage de la led 5 c est la led 1 qui doit de nouveau tre allum e Testez votre circuit 3 2 Registres compteurs et m moire EXERCICE 2 Registre Un registre n bits est une m moire constitu e d un assemblage en p
12. 000 Programme principal LEA R6 stackend initialisation du pointeur de pile A COMPLETER HALT Pile stack BLKW 32 stackend FILL 0 END 1 Avant de d clencher une interruption vers le syst me d exploitation dans une routine il est important de sauvegarder l adresse de retour contenue dans R7 pourquoi 2 crire une routine saisie permettant de saisir une cha ne de caract res au clavier en rangeant les ca ract res lus partir de l adresse contenue dans R1 La saisie se termine lorsqu un retour chariot code ASCII 13 est rencontr et la cha ne de caract res doit tre termin e par un caract re 0 de code ASCII 0 3 Tester la routine en crivant un programme qui affiche Entrez une cha ne effectue la saisie d une cha ne en la rangeant une adresse d sign e par une tiquette ch puis affiche Vous avez tap suivi de la cha ne qui a t saisie EXERCICE 3 Renversement d une cha ne de caract res gr ce la pile Dans le prolongement de l exercice pr c dent on va crire en langage d assemblage du LC 3 une routine rev pour renverser une cha ne de caract res par exemple le renvers miroir de la cha ne saper est la cha ne repas La pile d ex cution sera utilis e pour cela et manipul e comme d habitude l aide de R6 Le principe est le suivant on empile un 0 qui permettra de d tecter qu il faudra arr ter de d piler boucl
13. 15 Circuit d di au caicul de PGCD de deux nombres positifs decimalX 0 RESET FIGURE 4 2 Le circuit fourni Sur la page web du cours t l chargez le circuit euclid circ Observez le circuit les entr es de gauche seront utilis es pour rentrer les valeurs initiales pour x et y en binaire Des sondes Probe d cimales ont t ajout es pour pouvoir lire ces valeurs en base 10 ainsi que les valeurs en sortie des registres Remarquez bien qu un tick d horloge effectue 1 tape dans le calcul le calcul n est pas instantan Rajoutez les composants de contr le quand les entr es sont disponibles presser le bouton reset doit initialiser les registres X et Y avec ces valeurs au premier appui sur Clock Ensuite chaque appuile bou ton Clock cause l ex cution d une tape de l algorithme Une fois que le PGCD est trouv plus aucun changement ne doit arriver On pourra judicieusement se poser les deux questions suivantes quelles sont les conditions de s lection de l entr e 1 du multiplexeur du haut resp du bas Quelles sont les conditions d criture de chacun des registres entr e Enable V rifiez avec x 42 et y 56 Le PGCD trouv est EXERCICE 4 Un automate reconnaisseur Construire en LOGISIM un automate s quentiel reconnaissant le motif 111 en s quence c est dire que l au tomate sort 1 d s qu il a lu trois 1 de suite et continue sortir 1 tant que
14. AND et NOT D duisez en quoi devront tre branch s e et les deux bits de ez dans le circuit complet 7 3 Ex cution des instructions arithm tiques On suppose que vous avez ouvert le circuit LC3 etu circ puis charg le programme AddSimple mem dans la RAM servez vous de la simulation de ce programme pour r pondre aux questions suivantes EXERCICE 5 Phase Fetch 1 En observant le module RegPC expliquez comment est calcul PC 1 A quel instant PC 1 remplace PC 2 Lors du cycle du chargement comment une instruction est elle charg e dans le registre RegIR 3 Pour l instant on n ex cute que des instructions arithm tiques expliquez les valeurs de sorties pro duites par DecodelIR EXERCICE 6 gt Phase Exec 1 Observez le fonctionnement du module Registres pourquoi utiliser trois ports de lecture Dans quel cas sera utilis le port de lecture OUT SR Nicolas Louvet et Laure Gonnord 19 Universit Lyon 1 FST D partement Informatique L2 TP 7 de LIF6 Printemps 2015 2 En vous pla ant dans la phase exec de l instruction ADD RO RO 5 de code x1025 en m moire expli quez comment est ex cut e cette instruction Comment les op randes sources sont am n es ALU Comment le r sultat de l op ration est rang dans le registre destination A quel instant le r sultat est d finitivement stock EXERCICE 7 Chronogramme En supposant que l horloge g n rale Clock du circuit est un s
15. Even Parity Gate D De Controlled Buffer Inverter Plexers library Multiplexer Demultiplexer G Decoder Priority Encoder 2 Bit Selector Arithmetic library Adder Subtractor x Multiplier Divider Ex Negator Comparator Shifter Bit Adder Bit Finder Memory library D D T J K S R Flip Flop Register HE Counter E Shift Register Random fm RAM FROM Input Output library Q Button 4 Joystick Keyboard LED A 7 Segment Display Hex Digit Display LED Matrix ITY Base library ty Poke Tool k Edit Tool k Select Tool e Wiring Tool A Text Tool E3 Menu Tool A Label From http www cburch com logisim docs 2 7 en html libs index html Annexe B Documentation LC 3 B 1 R f rence Bibliographique Le LC 3 est un processeur d velopp dans un but p dagogique par Yale N Patt et J Patel dans Introduction to Computing Systems From Bits and Gates to C and Beyond McGraw Hill 2004 introduction to computing systems from bits amp gates to CE beyond Des sources et ex cutables sont disponibles al adresse http highered mcgraw hill com sites 0072467509 B 2 Codage des instructions Tableau r capitulatif des instructions LC 3 utilis es en TP syntaxe action NZP codage opcode arguments FIE DIC B
16. LA yon 1 Ver Architecture Mat rielle et Logicielle LIF6 Cahier de TP automne 2015 Table des mati res 1 Prise en main de LOGISIM premiers circuits LI Avant de d marrer eses ce ue ne Le date Le BO De wo Ge ae 12 Circuits combinatoires de basel 1 3 Exercice suppl mentaire 2 Circuits combinatoires et compl ment deux 2 1 Circuits combinatoires 2 2 Quelques l ments du processeur LC 3 2 3 D pass ments En Cl ci eat ee eee Gd te at le Wik ae oe aie dat 3 Circuits s quentiels registres m moire 3 1 Bascules 3 2 Registres compteurs et m moire 3 3 Banc de registre 4 Test de circuit circuits d di s 4 1 LOGISIM testdecircuit 4 2 Circuits d di s s sacs 4 24414 leh sas ee es ee Lis Ow ta 5 Introduction archi LC 3 jouons avec le simulateur 5 2 criture et simulation de programmes en assembleur LC 3 6 LC 3 Exercices de programmation 6 1 RECUTSIVITE 3 4 3 mu uns san A ee Se etat tea ste 20 4 6 2 Cha nes de caract res 7 Construisons le LC 3 partie 1 Ml Le cireuit LC 3f s o ase koe bes Olan hee Oe Haw ee BA be hw oe ark hee 7 2 Lunit arithm tique et logique 7 3 Ex cution des instructions arithm tiques 7 4 Pour la suite 8 Construisons le LC 3 partie 2 8 1 D coda
17. LD R1 N NOT R1 R1 ADD R1 R1 1 AND R2 R2 0 ADD R3 R2 R1 BRzp ELOOP LD R STAR OUT ADD R2 R2 1 BRnzp LOOP LEA RO NEWLN PUTS HALT FILL 6 FILL x2A STRINGZ n specify the origin i e where to load in memory R1 N the character to display Nicolas Louvet et Laure Gonnord 14 25 TP6 LC 3 Exercices de programmation Objectifs Utiliser le simulateur de l architecture LC 3 pour bien comprendre le jeu d instructions crire des programmes en assembleur LC 3 Les exercices ci dessous seront con us sur papier puis test s l aide du logiciel PENNSIM 6 1 R cursivit EXERCICE 1 Affichage et r cursivit On consid re le programme incomplet ci dessous il s agit de compl ter la routine affOn de mani re ce qu elle affiche les chiffres d cimaux de 0 n on supposera toujours n 0 Le programme ci dessous devra donc afficher 01234567 La routine doit tre r cursive et utiliser la pile mise en place dans le programme pour g rer la r cursivit la routine doit commencer par sauvegarder l adresse de retour contenue dans R7 ainsi que le param tre donn e R1 et doit restaurer ces registres avant son retour Vous devez commencer par crire le pseudo code de la routine avant de la traduire en langage d assemblage Listing 6 1 AfficheRec asm ORIG x3000 Programme principal main LD R6 spinit on initialise le pointeur
18. arall le de bascules D Construisez un registre 4 bits que vous testerez puis que vous comparerez avec celui de la biblioth que toujours sur front montant EXERCICE 3 Compteur R alisez un compteur 4 bits en utilisant les outils suivants de la biblioth que un registre 4 bits et un addition neur Testez en mettant une horloge avec l option Simulate gt Ticks Enabled puis ajoutez un signal reset qui permet de remettre le compteur 0 EXERCICE 4 gt Utilisation de la RAM En vous aidant de la documentation Instanciez une RAM avec adressage 4 bits et contenu 8 bits en mode One synchronous load store port comme dans le cours Faites la fonctionner en lecture Pour remplir la m moire avant de tester la lecture on pourra faire un clic droit sur le composant de m moire puis Edit Contents Il n est pas n cessaire de sauvegarder le contenu de la m moire dans un fichier Dans un autre onglet faire fonctionner une m moire en criture Comment faire pour faire fonctionner la m me m moire en criture et en lecture On pourra judicieu sement regarder le cours la documentation de la RAM ainsi que le composant Buf fer Modifiez votre circuit de mani re ce qu il affiche successivement dans deux afficheurs hexad cimaux le contenu de chaque case de la m moire Pour cela vous utiliserez un compteur 4 bits et chaque cycle d horloge votre circuit affichera le contenu de la case m moire dont l
19. dans le sous circuit Seq Figure 7 2 et exp rimentez Repr senter les signaux Clock Fetch et Exec sur un chronogramme en supposant que ClockOrig est un signal cr neau p riodique Que se passe t il quand Reset est activ puis relach un peu plus tard Quel est le r le jou par ce circuit dans cette implanta tion du LC 3 FIGURE 7 2 Composant Seq du LC 3 7 2 L unit arithm tique et logique Placez vous dans le module ALU Figure 7 3 qui contient l unit arithm tique et logique Notez l usage d un multiplexeur qui s lectionne parmi quatre entr es dont une actellement non affect e en fonction d un fil de contr le sur 2 bits Nicolas Louvet et Laure Gonnord 18 Universit Lyon 1 FST D partement Informatique L2 TP 7 de LIF6 Printemps 2015 Inputl Input2 Cst Output FIGURE 7 3 Composant ALU du LC 3 EXERCICE 3 Valeurs de contr le Exp rimentez diff rentes valeurs pour e et e2 Quelles valeurs donner e et e pour obtenir en sortie le ET bit bit de Input1 et Input2 obtenir l addition de Input1 et Cst obtenir le NON bit bit de Input1 EXERCICE 4 gt Contr le de PALU Reprenez le jeu d instructions du LC 3 cf cours Les op randes des instructions arithm tiques sont soit deux registres soit un registre et une constante litt rale Comment sont diff renci s les deux cas Quels bits diff rencient les opcodes des instructions arithm tiques ADD
20. e d empilement tant que l on n a pas rencontr le 0 de la cha ne initiale on empile un un ses caract res boucle de d pilement tant que l on n a pas rencontr le 0 dans la pile on d pile un un les carac t res de la pile et on les range dans le cha ne de destination on s assure bien que la cha ne de destination comporte un 0 final Vous n oublierez pas au d but de la routine d empiler l adresse de retour et de la d piler la fin de la routine 1 Donner le pseudo code de la routine rev telle qu expliqu e ci dessus Vous supposerez que lors de l ap pel RO contient l adresse du premier caract re de la cha ne initiale et R1 l adresse du premier caract re de la cha ne de destination Vous utiliserez R2 pour parcourir les cha nes et R3 pour le stockage tempo raire des caract res 2 Ajouter au fichier source de l exercice pr c dent le code de la routine rev Veillez bien commenter votre code 3 Tester la routine en compl tant le programme de l exercice pr c dent de fa on ce qu il affiche le ren vers de la cha ne de caract re saisie par l utilisateur Nicolas Louvet et Laure Gonnord 16 TP 7 Construisons le LC 3 partie 1 Objectifs Le but de ce TP est de d couvrir un circuit LOGISIM qui impl mente une partie des instructions du LC 3 et que vous aurez modifier dans le TP suivant Le TP s inspire fortement des TPs e
21. ge des instructions 8 2 Instructions d acc s m moire 8 3 Instructions de branchement et saut A Documentation LOGISIM A be oe ae wee oo Be OR nu de nor bi A 2 Biblioth que de composants B Documentation LC 3 B 1 R f rence Bibliographique B 2 Codage desinstructions B3 ISA LES aura e tuerie den itunes rate ne Nicolas Louvet et Laure Gonnord 5 1 Jouons avec le simulateur de LC 3 11 ie ie Gat ings oe Tae d 11 Die care 12 15 ci ahs cones weal REE 15 s Hho does 16 17 Lie age ho be 17 i aes Sas Meneses 18 NOR 2e 19 Bh oie ado hoe yan ga E 20 21 Sr die 21 PR te Seat h N 21 of ch atch aay Ge an 22 23 iy e s E EE E 23 OPET 23 25 e a A ee 25 Sy ib Ent a gt ai 25 uty Sats Paes ew 25 TP 1 Prise en main de LOGISIM premiers circuits Objectifs Prise en main de LOGISIM Ecriture de circuits combinatoires simples D couverte des fonctionnalit s de LOGISIM 1 1 Avant de d marrer EXERCICE 1 D marrage de cycle On part du principe ici que les TPs sont r alis s sous Linux m me s il est possible de les faire sous Windows il faut dans ce cas savoir se d brouiller avec la ligne de commande de Windows et il suffira d adapter les commandes utilis es sous Linux Cr ez un r pertoire pour le
22. i et seulement si le nombre des entr es 1 est impair Si il vous reste du temps la fin de ce TP vous pourrez galement faire le dernier exercice du TP Pr c dent 2 2 Quelques l ments du processeur LC 3 Dans la suite du cours nous allons construire un processeur maison le LC 3 Nous prenons de l avance dans ce TP en construisant quelques sous circuits que nous assemblerons ensemble dans un prochain TP source quipe p dagogique Archi Univ P7 EXERCICE 2 ALU LC 3 R cup rer sur la page web du cours le fichier alu circ et le tester pour savoir ce qu il fait On remplira les cases vides du tableau suivant avec des formules d pendant des entr es Inputl Input2 et Cst e2 UseCst 0 1 00 01 10 11 EXERCICE 3 NZP LC 3 Dans un nouvel onglet du fichier pr c dent nomm NZP cr er un circuit qui prend une entr e 16 bits nom m e RES consid r e en compl ment 2 sur 16 bits et qui en sortie a un Pin 3 bits nomm NZP Le bit de poids faible P est gal 1 ssi RES gt 0 le bit du milieu Z est gal 1 ssi RES 0 et le bit de poids fort est 1 ssi RES lt 0 Bien tester EXERCICE 4 gt Extensions de signe D apr s un des exercices de TD l extension de signe en compl ment 2 se fait en dupliquant le bit de poids fort autant de fois que n cessaire Cr ez dans un m me fichier deux onglets diff rents dans un onglet appel Brouillon const
23. ignal cr neau p riodique repr senter l volution de l tat du circuit sur un chronogramme au cours des cycles des deux premi res instructions du programme AddSimple mem Vous repr senterez les signaux suivants Clock Fetch Exec les valeurs suivantes PC IR GetOp RO R1 sur la Figure 7 4 Exec Fetch Clock cycle 0 cycle 1 cycle 2 cycle 3 cycle 4 cycle 5 cycle6 cyde 7 cycle 8 cycle9 cycle 10 FIGURE 7 4 Chronogramme pour AddSimple 7 4 Pour la suite EXERCICE 8 Un programme Pr parez un fichier Cst 2007 mem contenant les instructions en langage machine pour charger 2007 dans le registre R1 Pour cela utilisez soit un diteur de texte s par soit l diteur hexad cimal int gr puis l entr e de menu Save Image Simulez ce programme que constatez vous EXERCICE 9 Opcode LC 3 Construisez la table de v rit de toutes les instructions du LC 3 en fonction des 4 bits de l opcode cette table sera utile plus tard Que pouvez vous observer Comment caract riser les instructions qui peuvent modifier des registres RO R7 Nicolas Louvet et Laure Gonnord 20 TP8 Construisons le LC 3 partie 2 Objectifs Le but de ce TP est de terminer le circuit LOGISIM qui impl mente une partie des instructions du LC 3 Le circuit fourni au TP pr c dent implante d j les instructions NOT ADD AND du LC 3 Il reste lui ajouter des composant
24. its falling edge triggered qui stocke l tat des drapeaux 1 Ecrire en fonction des 16 bits formant l entr e IN du circuit valeur tester les fonctions logiques don nant les valeurs que doivent prendre N Z et P 2 Quand doit tre mis jour le registre 3 bits contenant l tat des drapeaux N Z et P 3 La sortie Cond du sous circuit prend la valeur 1 si d apr s les drapeaux N Z et P le BR en cours d ex cu tion doit provoquer un saut donnez une formule pour Cond 4 Compl tez le sous circuit NZP 5 Modifiez le chemin de donn e du LC 3 de fa on ce que les drapeaux N Z et P soient mis jour soit d apr s MemOUT dans le cas de l ex cution d une instruction de chargement m moire signal Load 1 soit d apr s la sortie Res de l ALU dans tous les autres cas On fera attention au choix signal comman dant l criture dans le registre entr e Clock du composant NZP qui ne peut tre l horloge du circuit pourquoi EXERCICE 7 Calcul de l adresse de saut Il ne nous reste plus qu mettre jour le calcul de la prochaine valeur du registre PC Cela se passe dans le sous circuit RegPC 1 Quelle action doit effectuer une instruction BR n z p label durant la phase Exec 2 Compl tez le sous circuit RegPC puis testez l aide de votre programme 3 Que faudrait il faire pour prendre en comptre l instruction JSR Nicolas Louvet et Laure Gonnord 22 Annexe A Documen
25. les 3 derni res entr es lues sont des lis On utilisera obligatoirement la m thodologie suivante D crire la machine voulue en langage courant En particulier que veut dire reconna tre Quelles sont les entr es et les sorties de l automate construire Dessiner un automate quivalent au circuit construire Construire la table de v rit du circuit L tat suivant et le les sorties sont calcul es partir de l tat courant et de des entr es Dessiner sur papier le circuit Dessiner avec LOGISIM et tester ce n est pas si simple Dans un autre onglet construire un circuit qui utilise des flips flops pour se rappeler de 3 valeurs suc cessives de l entr e optionnel Tester l galit fonctionnelle de ces deux circuits Nicolas Louvet et Laure Gonnord 10 TP5 Introduction l archi LC 3 jouons avec le simulateur Objectifs Utiliser un simulateur de l architecture LC 3 pour comprendre le jeu d instructions Ecrire des programmes simples en langage machine LC 3 puis en assembleur LC 3 Ce tp s inspire fortement des lab 6 et lab 7 http castle eiu edu mathcs mat3670 index index avec l aimable permission de leurs auteurs Nous allons utiliser le simulateur LC 3 nomm PennSim dont la documentation est disponible l adresse ou partir de la page du cours ou google PennSim http castle eiu edu mathcs mat3670 index Webview pennsim guide
26. mentation comment fonctionne l encapsulation Subcircuits Nommez l ad ditionneur 1 bit FA1 et utilisez le pour r aliser un additionneur 4 bits Utilisez l additionneur 8 bits de la librairie Arithmetic gt Adder avec des constantes Wiring gt Constant en entr e de l addition et un afficheur Probe 8 bits en sortie On v rifiera que 80 16 8C 16 00001100 et 1 de retenue Enutilisant cet additionneur 8 bits et les multiplexeurs de la librairie r alisez un additionneur soustracteur 8bits qui calcule a b ou a b suivant la valeur d un bit de contr le c Nous n avez pas le droit de dupli quer l additionneur Vous pouvez vous reporter l exercice correspondant du cahier de TD 1 Oui il est en anglais so what Nicolas Louvet et Laure Gonnord 3 Universit Lyon 1 FST D partement Informatique L2 TP 1 de LIF6 Printemps 2015 Sivous avez du temps R alisez une ALU 8 bits capable de faire une addition une soustraction et un test d galit L op ration sera choisie avec un signal qui vaut 00 pour une addition 01 pour une soustraction et 10 pour un test d galit On remarquera que c est une modification mineure du circuit pr c dent 1 3 Exercice suppl mentaire D apr s un TP de C Alias Inria amp ENS Lyon EXERCICE 5 Retenue anticip e L inconv nient des additionneurs 8 bits en cascade est que chaque additionneur 1 bit doit attendre que sa retenue ent
27. rante soit disponible pour r aliser l op ration Un additionneur 8 bits a donc un temps de travers e gal 8 fois le temps de travers e d un additionneur 1 bit Un additionneur retenue anticip e carry select peut tre construit en utilisant le temps de travers e d un additionneur 4 bits utilis pour additionner les 2 x 4 bits de poids faible pour pr calculer les deux r sultats possibles de l addition des 2 x 4 bits de poids forts l un avec une retenue entrante gale 1 l autre avec une retenue entrante nulle Un multiplexeur est utilis pour s lectionner le bon r sultat lorsque la retenue entrante est finalement connue R alisez un tel additionneur en utilisant des additionneurs 4 bits de la librairie Faites une d monstration votre enseignant de TP Nicolas Louvet et Laure Gonnord 4 TP 2 Circuits combinatoires et compl ment deux Objectifs Implantation de circuits combinatoires Pratiquer le compl ment 2 2 1 Circuits combinatoires EXERCICE 1 gt Circuits construire En commen ant par crire la table de v rit des fonctions bool ennes d sir es construire les circuits sui vants Encodeur octal c est un circuit 8 entr es e7 eo et trois sorties s2 51 50 Si e est 1 on veut que S151 So 2 i On suppose qu un seul des e est 1 Parit impaire sur 3 bits c est un circuit 3 entr es et une sortie qui vaut 1 s
28. ruire l extension de signe d un entier cod en compl ment a 2 sur 8 bits vers 16 bits Tester dans un onglet appel Offset6 prendre une entr e sur 16 bits s lectionner les 6 bits de poids faibles et r aliser l extension vers un entier 16 bits On pourra utiliser le composant BitExtender de la librairie dans Wiring 1 Ces deux exercices sont aussi dans le cahier de TD Nicolas Louvet et Laure Gonnord 5 11 16 21 Universit Lyon 1 EST D partement Informatique L2 TP 2 de LIF6 Printemps 2015 2 3 D passements en C EXERCICE 5 D passement de capacit en compl ment 2 R cup rer le fichier test c sur la page web du cours En supposant qu un char prend un octet et un short 2 octets pr dire le comportement de ce programme l ex cution V rifier include lt stdio h gt include lt stdlib h gt include lt fcntl h gt include lt unistd h gt int main unsigned char ucl uc2 uc3 signed char scl sc2 sc3 unsigned short uil ui2 ui3 signed short sil si2 si3 printf n Taille de char lu octets n n sizeof char ucl 200 uc2 60 uc3 ucl uc2 printf unsigned char ucl d uc2 d ucl uc2 d n ucl uc2 uc3 scl 100 sc2 60 sc3 scl sc2 printf signed char scl d sc2 d scl sc2 d n scl sc2 sc3 scl 100 sc2 60 sc3 scl sc2 printf signed char scl d sc2 d scl sc2 d n scl sc2 sc3 printf n Taille de
29. s TP de LIF6 puis dans votre navigateur cr ez les favoris suivants La page du cours La page de l outil LOGISIM http www cburch com logisim T l charger l archive jar de LOGISIM dans votre r pertoire de TP vous lancerez le logiciel en entrant la com mande java jar archive jar dans un terminal remplacer archive par le nom effectif de l archive EXERCICE 2 Tutoriel Cr ez un r pertoire pour le TP1 puis r alisez le tutoriel Beginner s tutorial disponible sur la page de Lo GISIM On n oubliera pas d s la cr ation de la premi re porte logique de sauvegarder son fichier et de taper Ctrl s r guli rement Vous ne passerez pas trop de temps sur ce Tutoriel une demi heure maximum 1 2 Circuits combinatoires de base EXERCICE 3 Multiplexeurs d codeurs Dans un nouveau fichier R alisez un d codeur 3 bits vers 8 bits Testez On utilisera des portes Gates And 3 entr es Comparez le comportement avec un d codeur de la librairie Testez avec une source Pin carr 3 bits un afficheur Pin rond 8 bits et un Splitter r glages Fan Out 8 BitWidthIn 8 pour relier la sortie du d codeur l affichage 8 bits R alisez un multiplexeur 2 bits vers 1 bit Comparez avec un multiplexeur de la librairie EXERCICE 4 gt Additionneurs retenue Dans un nouveau fichier R alisez l additionneur 1 bit retenue du cours et testez le Regardez dans la docu
30. s pour qu il implante d autres instructions deux instructions d acc s m moire LD et ST une instruction de branchement BR Ce TP s inspire fortement des TPs et projet de l quipe p dagogique d architecture de Paris 7 www liafa jussieu fr carton Enseignement Architecture 8 1 D codage des instructions l issue de ce TP la version simplifi e du processeur que nous allons construire permettra d ex cuter les instructions arithm tiques ADD AND NOT deux instructions d acc s direct la m moire LD ST et une instruction de branchement BR EXERCICE 1 Circuit DecodeIR Les signaux de sortie du sous circuit DecodeIR Load Store Arith GetOp WriteEnable Branch et Offset9 permettent d activer correctement le chemin de donn es en fonction de la classe d instruction a ex cuter D terminez en fonction de IR 13 12 bits 13 et 12 du registre d instruction comment doivent tre activ s ces signaux Compl tez le sous circuit DecodeIR N oubliez pas Of fset9 8 2 Instructions d acc s m moire Dans cette section on va ajouter les composants du circuit pour les instructions LD et ST EXERCICE 2 Programme de test Ecrire en langage machine LC 3 un programme de taille minimale pour tester les instructions LD et ST ce programme chargera deux entiers depuis les adresses 5 10 et 6 10 dans deux registres puis rangera leur somme l adresse 6 10 Vous utiliserez judicieusement PennSim
31. struire une unique sortie same qui est vraie ssi chaque tic d hor loge la sortie de notre compteur est la m me que celle de celui de la biblioth que Quelle est la valeur attendue pour la simulation 4 2 Circuits d di s EXERCICE 3 gt Une calculette PGCD D apr s http dept cs williams edu tom courses 237 Nous allons contruire un circuit qui r alise le calcul du PGCD pour les entiers positifs 8 bits La figure 4 1 vous fournit une d finition et un programme C pour ce calcul En arithm tique l mentaire le plus Listing 4 1 Afficherec asm grand commun diviseur abr g en g n ral PGCD de deux nombres entiers na turels non nuls est le plus grand entier qui divise simultan ment ces deux en tiers Par exemple le PGCD de 20 et 30 est 10 En effet leurs diviseurs communs sont 1 2 5 et 10 1 int gcd int x int y while x y if x lt y y y x else X X y return x FIGURE 4 1 Documentation pour le PGCD Wikip dia Quel est le pgcd de 12 et 82 Expliquer la diff rence entre cet algorithme et celui que vous connaissez pour calculer le pgcd Pour vous simplifier la vie nous vous fournissons un circuit figure 4 2 qui poss de d ja les composants de donn es et de calcul Nous n aurez plus qu ajouter les composants de contr le Nicolas Louvet et Laure Gonnord 9 Universit Lyon 1 FST D partement Informatique L2 TP 4 de LIF6 Printemps 20
32. t projet de l quipe p dago gique d architecture de Paris 7 http www liafa jussieu fr carton Enseignement Architecture dont il reprend une partie du code source fourni aimablement par leurs auteurs 7 1 Lecircuit LC 3 R cup rez le fichier LC3 etu circ Figure 7 1 et ouvrez le avec LOGISIM Ce fichier contient une impl mentation partielle du LC 3 dans laquelle seules les instructions ADD AND NOT sont cabl es m me si beau coup d infrastructure est d j en place pour plus tard CSL 60000000 RH osoo EH 2 FH 0 Es Cond LE Branch mas RegPC 4 MemouT 0000 0000 RegIR 0000 0000 FIGURE 7 1 Le circuit LC 3 fourni onglet principal Bref mode d emploi Pour simuler l ex cution de programmes LC 3 avec ce circuit Entrez dans la RAM les octets d un programme LC 3 d une des trois mani res suivantes En mode Poke on peut directement cliquer sur une case de la RAM et la remplir au clavier En faisant un clic droit sur la RAM on peut choisir Edit Contents ce qui ouvre un diteur Le menu obtenu par un clic droit sur la RAM propose aussi Load Image pour charger dans la RAM le contenu d un fichier m moire voir ci dessous Nicolas Louvet et Laure Gonnord 17 NOP D Universit Lyon 1 EST D partement Informatique L2 TP 7 de LIF6 Printemps 2015 Pour faire avancer la simulation d un programme il faut changer l
33. tation LOGISIM A l R f rence Le logiciel que nous utilisons en TP pour les circuits est disponible sur la page http www cburch com logisim index html C est un outil a vocation p dagogique qui permet de dessiner et de simuler des circuits logiques simples A 2 Biblioth que de composants Page suivante on fournit une copie d cran des composants disponibles dans la biblioth que LOGISIM Nicolas Louvet et Laure Gonnord 23 a graphical topt for designing simudating logi circuits Guide to Being a Logisim User Library Reference Wiring library Gates library Plexers library Arithmetic library Memory library Input Output library Base library Library Reference A Logisim library holds a set of tools that allow you to interact with a circuit via clicking and dragging the mouse in the canvas area Most often a tool is intended for adding components of a particular type into a circuit but some of the most important tools such as the Poke Tool and the Select Tool allow you to interact with components in other ways All of the tools included in Logisim s built in libraries are documented in this reference material Wiring library F Splitter Pin Probe Tunnel Pull Resistor Clock E Constant amp Power Ground A Transistor Transmission Gate c Bit Extender Gates library a NOT Gate gt Buffer 2 RT ANDIOR NANDINOR Gate D D CR XOR XNOR Odd Parity
Download Pdf Manuals
Related Search
Related Contents
Samsung SC9250 Инструкция по использованию Copyright © All rights reserved.
Failed to retrieve file