Memoria Practica 1 (2014)

Trabajo Español
Universidad Universidad Politécnica de Cataluña (UPC)
Grado Ingeniería Telemática - 2º curso
Asignatura Disseny Digital
Año del apunte 2014
Páginas 17
Fecha de subida 30/12/2014
Descargas 36
Subido por

Vista previa del texto

Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Marc Peig Albiac Isaac James Sène Texidó G32 Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Introducció a la pràctica La pràctica 1 ha estat dividida en dos parts, la pràctica 1a a la qual es va dedicar una sessió i la pràctica 1b a la qual se’n van dedicar tres.
L’objectiu de la primera part de la pràctica 1 va ser començar a utilitzar les eines de disseny digital usades en el laboratori, en concret el programa Quartus II amb el qual es dissenyen tots els circuits, es fan les simulacions pertinents i s’accedeix a la placa de desenvolupament DE2. Aquesta placa és una de les eines que es fa servir per a comprovar que el disseny realitzat anteriorment és correcte i que s’obté el resultat desitjat, ja que disposa de 8 displays de set segments on mitjançant l’assignació de pins de sortida es mostra el resultat de les operacions pertinents. Per a interactuar amb la taula DE2 s’utilitzen els diferents interruptors o switch que ens permeten canviar les variables i condicions dels nostres esquemàtics.
La pràctica 1a va ser una mena de guia del funcionament d’aquests dos elements per tal de familiaritzar-nos amb el material i les eines a fer servir durant les conseqüents sessions de laboratori. La finalitat d’aquestes dos primeres sessions era aconseguir dissenyar un multiplexor 2:1 per a bussos de 4 bits i verificar el seu funcionament sobre la placa DE2 (Tasca important ja que s’ha acabat necessitant la implementació d’aquests multiplexors per tal de finalitzar l’apartat opcional de la pràctica).
Abans d’assistir al laboratori s’han hagut de treballar diferents aspectes relacionats amb la pràctica que permetien afrontar la realització de la mateixa amb un caire molt més amè a causa de la semblança d’ambdues tasques.
Així doncs, la realització de la primera part de la pràctica tractava de la creació d’un projecte mitjançant la utilització del software mencionat prèviament per tal de poder fer ús de la placa de desenvolupament DE2. Per a poder-hi treballar s’havia d’assignar a l’apartat de Programmer el hardware en qüestió, el qual te un nom de model EP2C35F672C6.
A continuació ja es va començar a dissenyar el Multiplexor 2:1. Primer de tot es va crear un fitxer .bdf en el qual es creava una OR2, la sortida de la qual era la z, les entrades de les quals eren el resultat de 2 AND2, en les que hi havia les variables d’entrada a,b i l’entrada de selecció “sel”.
En el fitxer .vwf s’agafaven els nodes a, b i sel i com a sortida la z. Se li assignava a “a” un període de 200ns, a “b” un de 400ns i a “sel” un de 800ns. Se li donaven valors a aquestes variables i es simulava per comprovar la sortida. Quan es comprovava que el resultat era l’esperat es passava a la Descripció del multiplexor 2:1 per a bussos de 4 bits.
Un cop generat un símbol pel multiplexor 2:1, vam fer el de 4 bits juntant 4 dels 2:1, cadascun amb les seves entrades x[3..0], y[3..0] i sel i les seves sortides z[3..0].
Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Ara venia la part més important de projecte, la creació del símbol final, un logigrama que contés amb un multiplexor 2:1 de 4 bits i 3 convertidos de BCD a set segments, un per a cada bus d’entrada o de sortida. Un cop fet això se li assignaven els diferents pins per tal de poder-los agrupar correctament en la selecció de nodes en l’arxiu .vwf.
En aquest arxiu es seleccionaran els SW[...] del 17 al 10 i també el SW[0], juntament amb els HEX0, HEX4 i HEX6. Els SW[..] del 17 al 14 s’agruparan en SWx i els del 13 al 10 en SWy. Tant aquests dos grups com tots els altres nodes restants hauran d’estar en notació hexadecimal.
Un cop agrupat tot correctament, procedim a simular el vector waveform file, assignant valors a les diferents entrades. Un cop comprovat que aquests resulats eren els correctes, vam procedir a validar el disseny sobre la placa DE2.
Aquí acabava tot el corresponent a la pràctica 1a, i la següent sessió tocava començar la 1b.
L’objectiu de la segona part de la pràctica era dissenyar, simular i comprovar a la placa DE2 el funcionament d’un petit sistema aritmètic, concretament un multiplicador combinacional per a nombres codificats en complement a dos (Ca2). La finalitat principal de la pràctica era fer un multiplicador de dues xifres de 4 bits codificades en Ca2, però sense desbordament, és a dir fent que el resultat sigui sempre complet i correcte.
Després de la realització d’un estudi previ en el qual s’havien de fer tres feines, dissenyar el convertidor de Ca2 de 4 bits a 8 bits, dissenyar el multiplicador de 8x8 bits i demostrar que era necessari treballar amb el complement Ca2 de 8 bits perquè amb el de 4 no es podia assolir tot el rang de multiplicacions començava la realització al laboratori.
Primer vam adaptar el convertidor de Ca2 de 4 bits a un de 8 bits per poder assolir tot el rang de valors desitjats per poder fer les multiplicacions sense que hi hagués desbordament. Per comprovar si aquesta tasca s’havia realitzat correctament feia falta simular-lo, definir els senyals en Signed Decimal i comprovar que a la sortida hi havia tots els valors tant positius com negatius desitjats, del -7 al 8.
Per fer el multiplicador de 8bitsx1 primer era necessari fer la descripció modular d’un sumador de 8 bits, que alhora s’havia de fer creant vuit sumadors d’un bit. Aquest sumador de 8 bits contava amb un bit que era el carry in i un altre que s’anava arrosegant fins al final de la suma que corresponia al de més pes, el carry out.
Finalment aconseguíem crear el multiplicador 8x1 enllaçant 8 sumadors de vuit bits.
Un cop assolit tot això, havíem de fer el disseny del multiplicador de 4 bits en Ca2 usant els blocs creats anteriorment. En aquest bloc hi havia a l’entrada SW[17..14] i SW[3..0], agafava el signe d’aquests vectors amb CA_SIGN i el mostrava a la taula a HEX5, HEX7. Finalment agafava aquests dos vectors, els multiplicava. El signe resultat l’assignava a HEX2 i el resultat el separava i l’assignava a HEX0 i HEX1.
Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Quan ja va estar creat aquest últim bloc, es va simular finalment per veure que la multiplicació resultant era correcta, tant amb números positius, negatius i intercalats.
Per acabar la pràctica es va comprovar que el resultat de la multiplicació a la placa DE2 era correcta, modificant els switch de la mateixa per tenir la multiplicació màxima que diu al VHDL de -56, corresponent al -7*8.
BLOCS I ESQUEMÀTICS En aquesta part del treball s’exposaran els esquemàtics treballats mitjançant el programa utilitzat al laboratori ‘Quartus II’ i s’explicarà la seva funció, així com la seva relació amb els mòduls inclosos. Per a definir i comprendre millor la tasca que duen a terme cadascun d’aquests blocs, es mostraran els símbols creats per a representar-los i per als circuits més importants es mostraran les simulacions per a poder veure la resposta que dona el programa als nostres dissenys.
Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Conversor en CA2 de 4 a 8 bits El CA2_4A8B és el responsable de carregar els valors d’un bus de 4 bits a un altre major de 8 bit. Aquest bloc és important i el més bàsic durant el transcurs de l’aplicació, ja que sense aquest no es podrien fer les operacions entre dos vectors de 4 bits. Com es pot veure al esquemàtic, entra un vector de 4 bits IN[3..0] i obtenim com a resultat un bus de 8 bits el qual hem anomenat OUT[7..0].
Símbol Símbol emprat per a definir el bloc convertidor de 4 a 8 bits en CA2 Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Sumador de 8 bits El sumador de 8 bits s’encarrega de sumar dues senyals de 8 bits amb el carry en sèrie.
Com es pot veure hi ha un carry d’entrada que es va acumulant en sèrie en cada suma i al final es converteix en el carri de sortida, el carry out. Aquest forma part de la sortida, juntament amb la senyal sumada resultant, que evidentment es de vuit bits (S[7..0]).
Símbol Símbol emprat per a definir el bloc sumador de 8 bits Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Multiplicador de 8x1 bit La funció d’aquest bloc és la de fer el producte mitjançant una porta AND2 d’un bus d’entrada de 8 bits (representat amb la lletra M) amb una variable d’entrada d’un bit (definida com Mi), donant com a resultat un bus de sortida de 8 bits (representat com x[7..0] ). Aquest bloc el trobarem en el model definit en la propera pàgina, el multiplicador i sumador, el qual fa ús d’aquest model així com el sumador de 8 bits descrit amb anterioritat.
Símbol Símbol emprat per a definir el multiplicador de 8x1 bits Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Multiplicador i acumulador (Mult_ACC) El multiplicador acumulador multiplica el bus de senyal M per el bit d’entrada Mi implementant el mòdul multiplicador de 8 per 1 bits definit a la pàgina anterior, posteriorment ho suma mitjançant el sumador de 8 bits anteriorment descrit amb l’entrada B, la qual es un bus de 8 bits. El sumador de 8 bits genera un carry de sortida ‘CO’ el qual passarà a formar part de la sortida com el bit de mes pes OUT[7] mentre que la resta de bits seran el senyal d’acumulació per a la propera operació, excepte el bit de menys pes, que passarà a la sortida S0. Com a conclusió podem afirmar que es tracta d’un multiplicador total.
Símbol Símbol emprat per a definir el multiplicador i acumulador Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Multiplicador en complement A2 El bloc Mult_CA2 és l’encarregat de permetre realitzar la multiplicació entre els dos senyals que se li adjunten a l’entrada. Se li adjunten a l’entrada dos vectors de 4 bits, que són transformats en vectors de 8bits pel convertidor CA2_4A8B, el qual s’ha definit i explicat amb detall en anterioritat. Després passen pels 8 blocs multiplicadors i acumuladors ja descrits, on es pot veure clarament que en cada multiplicador el bit de menys pes formarà part del producte final i la resta s’acumularan per a la pròxima operació, a la qual s’adjunten amb un bus.
Símbol Símbol emprat per a definir el multiplicador en CA2 Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 MULT_CA2final El comportament del bloc final, descrit com MULT_CA2_Final es basa en la incorporació de tots els mòduls i blocs treballats amb anterioritat. És la posada en comú de totes les parts en separat per tal de veure si els objectius plantejats a l’inici del treball s’han complert mitjançant la taula de desenvolupament DE2.
Com es pot veure hi ha algun bloc que no s’ha descrit com són els dels signes, ja que no els considerem de vital importància per a la realització del treball. La seva funció es la de mostrar en una sortida en concret el valor del signe de les dues entrades en qüestió, les quals son busos de 4 bits i seran sobre les quals s’operarà.
Així doncs les dues entrades les hem disposat a les posicions següents: un dels dos vectors a SW[3..0] i l’altra estarà situat a SW[17..14]. Cal tenir en compte que tant el display dels signes com el valor d’aquests busos es mostraran als displays assignats pels pins que venen donats amb l’arxiu de descarrega.
Després de fer les diferents operacions ja esmentades com es pot veure mitjançant les relacions entre els blocs, a la sortida es mostra en displays de 7 segments diferenciats el Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 valor del bus de 8 bits que s’obté al multiplicar els dos valors d’entrada, els quals s’assignen als displays HEX0 i HEX1.
Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Treball opcional. Calculador en CA2 En aquest treball opcional s’ha proposat la implantació de més opcions al calculador en CA2 que hem treballat fins ara, el qual només feia la multiplicació. Així doncs, es demana realitzar un seguit de canvis al projecte per tal d’obtenir el següent calculador: Per a poder fer aquestes aplicacions, només haurem de canviar el bloc MULT_CA2 del multiplicador final, ja que totes les altres branques corresponen al resultat que desitgem.
Això és així perquè també es calcula amb dos vectors de 4 bits i amb el mateix protocol CA2. És a dir que la visualització de les diferents operacions no necessitarà retocs.
D’aquesta manera el primer canvi que hem de fer és el de MULT_CA2, que editarem per un nou bloc que ens permetrà un major ventall d’opcions gràcies a les variables de selecció ‘selop’.
Tenim bona part de la feina feta, ja que les operacions B2, A2 i A * B no deixen de ser multiplicacions en CA2. Així doncs la modificació que hem de dur a terme serà per a poder fer l’operació d’elevar el 2 al exponent A.
Aquest canvi serà el d’introduir una nova variable d’entrada (CIN), que serà el ‘carry in’ del producte dels dos vectors i que actualment teníem connectat a massa. Aquest carry in ens servirà per fer l’operació de 2^A.
La part important del disseny del circuit per a les diferents operacions serà la de crear els diferents casos, en que depenent de les variables de selecció, la operació a dur a terme canviarà. Per tant necessitarem operar amb els multiplexors emprats a la primera pràctica de disseny digital on ja hi vam treballar.
Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 El bloc multiplicador CA2 modificat és el següent: Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Selecció d’operació mitjançant multiplexors Aquest apartat és el més complex del treball opcional ja que es tracta de crear un nou esquemàtic que treballarà amb una variable de selecció d’operació (selop) que definirà el procés a seguir per a obtenir el resultat desitjat.
Com ja s’ha mencionat amb anterioritat, farem ús del multiplexor emprat a la primera pràctica.
Amb la figura de l’esquemàtic de la pàgina següent es pot veure amb més claredat com s’han emprat aquests multiplexors per tal de definir la seva sortida: En total s’han utilitzat 4 multiplexors. Han estat col·locats de manera que es compleixi la taula següent: selop 00 01 10 11 X A A B 2 Y B A B 2 CIN ‘0’ ‘0’ ‘0’ ‘0’ Així doncs, la sortida d’aquesta sel·lecció anirà a un bloc MULT_CA2 descrit en anterioritat que gràcies a les variables d’entrada donades realitzarà l’operació desitjada.
Cal destacar que finalment no em pogut trobar funció per fer l’exponent 2^A i donar servei al mencionat CIN d’entrada. És per això que posteriorment es veu en el selector com el C (Cin) està conectat a terra [0].
Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 L’esquemàtic creat íntegrament per al treball opcional que calcula mitjançant els procediments explicats anteriorment és el següent: Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Calculador en CA2 final Un cop explicat quin era el nostre objectiu i com ens plantejàvem resoldre, queda la posada en comú de tots els elements i blocs d’esquemàtics realitzats. El projecte en si queda molt semblant a la part obligatòria del treball, exceptuant els blocs descrits en aquest apartat. Com ja s’ha dit amb anterioritat, el canvi que s’havia de realitzar al arxiu final era el de substituir el multiplicador en CA2 per el bloc selector mitjançant multiplexors creat a la pàgina anterior.
D’aquesta manera el bloc que opera d’acord al selector ‘selop’ té el símbol següent: Símbol del bloc calculador en CA2 On les entrades són les ja mencionades: selector d’operació i els dos busos de 4 bits, A i B. Pel que fa a la resta d’estructura, no cal canviar-la, i el circuit final on s’han assignat els pins d’entrada i sortida serà el descrit a la següent pàgina.
Isaac James Sène Teixidó i Marc Peig Albiac. Grup 32.-Pràctica 1 Bloc final de la calculadora en CA2: ...