VHDL sumador
Índex
1- Exercici a realitzar
S’ha dissenyat i simulat (mitjançant VHDL) sumador seqüencial de 4 bits tal com mostra la figura 1. Els operands A i B són carregats en paral·lel i el resultat de la suma es visualitza en 5 LED. L’operació se suma es realitzarà mentre estigui actiu un senyal d’enable que indicarà quan ha de començar i acabar l’operació. Tot el disseny està realitzat deforma síncrona, es a dir, tots els biestables estan sincronitzats pel mateix senyal de rellotge.
Figura 1.- Esquema del sumador
Imatge extreta del enunciat del exercici
Els sumands A i B estan allotjats en registres de desplaçament que permet que es vagin realitzant les sumes iniciant pel bit menys significatiu (LSB) fins al més significatiu (MSB). Els bits es sumen de un a un a cadapols de rellotge i el resultant es va guardant a un tercer registre de desplaçament que també comença pel MSB. Aquests registres treballen en mode PISO (Parallel Input, Serial Output).
Un cop carregats els registres d’entrada es van desplaçant i el LSB entra al bloc sumador (figura 2), que els suma. El bit resultant de la suma (Suma) es carrega al bit més significatiu del registre de sortida Sumi el carry (Cn) s’emmagatzema en un biestable D. Al següent flanc de rellotge al realitzar la suma de A i B també s’hi afegirà el carry emmagatzemat en D. D’aquesta manera s’obtindrà el següent bit de la suma. Al final de les operacions, al registre de sortida s’hi podrà llegir el resultat total de la suma. Aquest registre treballa en mode SIPO (Serial Input, Parallel Output).
Figura 2.-Esquema bloc sumador, on Y és el carry de sortida de la suma i y el carry d’entrada.
Imatge extreta de l’enunciat de l’exercici
2- Descripció dels components:
2.1- Sumador complet (Full Adder)
Circuit lògic que realitza l’operació suma aritmètica. Consta de 3 entrades (A,B i Cin) i de dues sortides (suma i Cout) dels quals A i B són els sumands, Cin el Carry de la suma anterior iCout el carry de la suma present.
Les funcions lògiques que el defineixen són:
Suma = A ⊕ B ⊕ Cin
Cout = A*B + Cin(A⊕B)
En aquest cas A i B provenen dels registres de desplaçament d’entrada i Cin del biestable D:
Figura 3.- Esquema d’un sumador complet
Imatge extreta de http://arquitectura1380.blogspot.com.es/2008/12/sumador-completo.html
2.2- Biestable D
Un biestableés una cèl·lula bàsica de memòria capaç d’emmagatzemar un bit de memòria. Una bàscula D conté una entrada de rellotge (Clk) que a cada pols fa entrar informació a la bàscula.
En el muntatge s’utilitzarà per constituir els tres registres de desplaçament citats i per introduir el Cin als següents bits de la suma.
Figura 4.- Esquema d’una bàscula D
Imatge extreta dehttp://forum.allaboutcircuits.com/showthread.php?t=44242
2.3- Registre de desplaçament (shift register)
Un registre de desplaçament és un circuit electrònic format, en el nostre cas, per bascules D connectades entre si que desplacen bits de forma síncrona mitjançant un senyal de rellotge (Clk). Un desplaçament a la dreta significa multiplicar per 2 l’ informació emmagatzemada i cap a l’esquerra dividir per 2. Existeixenregistres bidireccionals (registre universal) o en anell tancat.
En el nostre cas els bits es van desplaçant de dreta a esquerra per tal que les sumes es realitzin de bits de menor a major pes i vagin entrant al registre de sortida.
Figura 5.- Esquema d’un registre de desplaçament
Imatge extreta d’apunts de la signatura
En el present muntatge s’utilitzen 3 registres de 4 bits: 2 per alssumands (A i B) i un altre pel resultat (Suma). La sortida Cout del full adder està connectada a un biestable D per tal de carregar el carry a la següent suma al mateix instant en què entren al sumador els corresponents sumands. La interconnexió de tots els elements formen el sumador sèrie.
3- Ampliació del treball
3.1- Visualització en display 7 segments
Per tal de visualitzar millor el...
Regístrate para leer el documento completo.