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

Diseny Digital


Enviado por   •  16 de Octubre de 2013  •  5.888 Palabras (24 Páginas)  •  181 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

...

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