ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Diseny Digital


Enviado por   •  16 de Octubre de 2013  •  5.888 Palabras (24 Páginas)  •  182 Visitas

Página 1 de 24

AperB

Aquest mòdul realitza el producte entre les dues entrades que són dos busos de 4 bits en BCD (A[3..0] i B[3..0]) i a la sortida tenim el resultat d’aquesta multiplicación en un bus de 8 bits en BCD de 4 bits (AperB[7..0]). Per arribar al resultat final, hem convertit la sortida del mòdul MULT8x8 que està en binari natural de 8 bits a BCD de 4 bits, fent-la passar per un mòdul on servint-nos d’un codi VHDL, la hem transformat.

A continuació veiem l’esquemàtic del mòdul:

Finalment la seva simulació és la següent:

Submòduls del mòdul AperB

- 4Bto8B

El mòdul 4Bto8B transforma el bus de 4 bits en BCD de l’entrada A[3..0] a un bus de 8 bits en BCD que veiem a la sortida B[7..0].

Per fer-ho només cal afegir un bus de 4 ‘0’ com a bits de més pes sigui quin sigui el valor de l’entrada.

Aquest és el seu esquemàtic:

- B_toBCD

El mòdul B_toBCD transforma l’entrada B[7..0] que està en binari natural en un bus de 8 bits en BCD de 4 bits. Els quatre bits de més pes corresponen al primer dígit decimal del producte i els quatre bits de menys pes al segon dígit.

Per fer aquest mòdul hem emparat el següent en VHDL:

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY B_toBCD IS PORT (

B : IN STD_LOGIC_VECTOR(7 downto 0);

BCD : OUT STD_LOGIC_VECTOR(7 downto 0));

END B_toBCD;

ARCHITECTURE taula_veritat OF B_toBCD IS

BEGIN

with B SELECT BCD <=

"10000001" WHEN "01010001", -- 81

"01110010" WHEN "01001000", -- 72

"01100100" WHEN "01000000", -- 64

"01100011" WHEN "00111111", -- 63

"01010110" WHEN "00111000", -- 56

"01010100" WHEN "00110110", -- 54

"01001001" WHEN "00110001", -- 49

"01001000" WHEN "00110000", -- 48

"01000101" WHEN "00101101", -- 45

"01000010" WHEN "00101010", -- 42

"01000000" WHEN "00101000", -- 40

"00110110" WHEN "00100100", -- 36

"00110101" WHEN "00100011", -- 35

"00110010" WHEN "00100000", -- 32

"00110000" WHEN "00011110", -- 30

"00101000" WHEN "00011100", -- 28

"00100111" WHEN "00011011", -- 27

"00100101" WHEN "00011001", -- 25

"00100100" WHEN "00011000", -- 24

"00100001" WHEN "00010101", -- 21

"00100000" WHEN "00010100", -- 20

"00011000" WHEN "00010010", -- 18

"00010110" WHEN "00010000", -- 16

"00010101" WHEN "00001111", -- 15

"00010100" WHEN "00001110", -- 14

"00010010" WHEN "00001100", -- 12

"00010000" WHEN "00001010", -- 10

"00001001" WHEN "00001001", -- 9

"00001000" WHEN "00001000", -- 8

"00000111" WHEN "00000111", -- 7

"00000110" WHEN "00000110", -- 6

"00000101" WHEN "00000101", -- 5

"00000100" WHEN "00000100", -- 4

"00000011" WHEN "00000011", -- 3

"00000010" WHEN "00000010", -- 2

"00000001" WHEN "00000001", -- 1

"00000000" WHEN "00000000", -- 0

"--------" WHEN OTHERS;

END taula_veritat;

SEL

El mòdul SEL veu a la sortida res[7..0], la entrada AxB[7..0], quan a l’entrada show hi tenim un ‘1’, i veurem VCC quan show sigui ‘0’. VCC és un bus de 8 ‘1’. Per implementar aquest funcionament ens hem valgut del mòdul Mux_2B8_to_1B8 per tal de decidir si hi tindrem una o altra entrada en funció del selector que en el nostre cas és show.

A continuació veiem la simulació que hem realitzat del mòdul:

Keygroup

El mòdul Keygroup ens indica quin tipus d’entrada li hem introduït en funció de l’entrada key. Quan key és ‘0’ les tres sortides (bcd, ast i alm) són ‘0’, key indica si s’està introduint o no algun valor. Quan keycode[3..0] està entre ‘0000’ i ‘1001’ la sortida bcd serà ‘1’ i la resta ‘0’, quan keycode[3..0] sigui ‘1110’ la sortida ast serà ‘1’ i la resta ‘0’ i quan keycode[3..0] sigui ‘1111’ la sortida alm serà ‘1’ i la resta ‘0’. Per la resta de possibles valors de keycode[3..0] les tres sortides valdran ‘0’.

TdV del mòdul Keycode

Key Keycode[3..0] bcd ast alm

0 ---- 0 0 0

1 0000 1 0 0

1 0001 1 0 0

1 0010 1 0 0

1 0011 1 0 0

1 0100 1 0 0

1 0101 1 0 0

1 0110 1 0 0

1 0111 1 0 0

1 1000 1 0 0

1 1001 1 0 0

1 1010 0 0 0

1 1011 0 0 0

1 1100 0 0 0

1 1101 0 0 0

1 1110 0 1 0

1 1111 0 0 1

A partir d’aquesta taula de veritat, hem dibuixat un mapa de Karnaugh de la sortida bcd, i hem trobat els minterms de les tres sortides (la alm i ast ja els tenim directes). Després hem dissenyat amb portes lògiques el circuit resultant amb les entrades i sortides. L’esquemàtic resultant és el següent :

A continuació tenim la simulació d’aquest mòdul:

REG

El mòdul reg és un registre síncron de 4 bits. La funció que realitza aquest mòdul és guardar els valors introduïts. Sempre es guarden únicament els dos últims valors BCD introduïts. Quan el valor de l’entrada intro és ‘1’ en OpA[3..0] si introdueix el valor introduït

...

Descargar como (para miembros actualizados) txt (35 Kb)
Leer 23 páginas más »
Disponible sólo en Clubensayos.com