De MediaWiki do Campus São José
Ir para navegação
Ir para pesquisar
- Objetivos
- Projetar um circuito digital que realize a conversão de uma entrada BCD para um saída de um mostrador de 7 segmentos.
- Descrever através de uma tabela verdade o funcionamento de um circuito.
- Usar a técnica do mapa de Karnaugh para minimizar a função lógica de cada saída.
- Fazer a descrição do hardware (em VHDL) do circuito obtido.
- Utilizar um kit FPGA para implementar o circuito.
- Verificar se o circuito funciona
- Redigir um relatório completo sobre a atividade realizada
- Procedimento de laboratório
Passo 1 - Preparação
- Identifique no kit FPGA (DE2-115) as chaves, leds e mostrador que será utilizado
- As chaves SW3, SW2, SW1, SW0 serão utilizadas como as entradas bcd_A, bcd_B, bcd_C, bcd_D.
- Os leds LEDR3, LEDR2, LEDR1, LEDR0 serão utilizados para mostrar quando as entradas estão em alto
- O mostrador SSD HEX0 será usado para mostrar os números de 0 a 9 na saída.
- Escreva a tabela verdade do conversor. Lembre-se que nesse kit o mostrador é de anodo comum, e portanto o led acende em BAIXO e apaga em ALTO.
|
|
Entradas
|
Saídas
|
Valor
|
Mostrador
|
ABCD
|
a
|
b
|
c
|
d
|
e
|
f
|
g
|
0
|
|
0000
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
1
|
|
0001
|
1
|
0
|
0
|
1
|
1
|
1
|
1
|
2
|
|
0010
|
0
|
0
|
|
|
|
|
|
3
|
|
0011
|
0
|
0
|
|
|
|
|
|
4
|
|
0100
|
1
|
0
|
|
|
|
|
|
5
|
|
0101
|
0
|
1
|
|
|
|
|
|
6
|
|
0110
|
0
|
1
|
|
|
|
|
|
7
|
|
0111
|
0
|
0
|
|
|
|
|
|
8
|
|
1000
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
9
|
|
1001
|
0
|
0
|
|
|
|
|
|
a = (A + C + B D + B'D')'
Passo 2 - Obtenção do circuito em VHDL
- Uma vez obtidas as expressões lógicas de cada saída, escreva o código VHDL que implemente essas funções, utilizando apenas portas (and, or e not)
-- File: bcd2ssd.vhd
-- Autor: Marcos Moecke
-- Data: 19 out. 2023
-- declaração da entidade. descrição dos nomes do circuito, entradas e saidas
entity bcd2ssd is
port (
bcd_A, bcd_B, bcd_C, bcd_D : in bit; -- bits da entrada BCD
led_A, led_B, led_C, led_D : out bit; -- bits da entrada BCD
ssd_a, ssd_b, ssd_c, ssd_d, ssd_e, ssd_f, ssd_g : out bit); -- bits da saida SSD para o mostrador
end entity;
-- descrição do circuito a ser implementado no FPGA
architecture ifsc_v1 of bcd2ssd is
begin
-- Conectar as entradas aos leds
led_a <= bcd_A;
led_b <=
-- Descrever as funcoes logicas minimizadas de cada saida SSD
-- a = A'B'C'D + B C'D' (função obtida para o display de anodo comum)
ssd_a <= ((not bcd_A) and (not bcd_B) and (not bcd_C) and bcd_D) or (bcd_B and (not bcd_C) and (not bcd_D));
-- b = B C'D + B C D' (função obtida para o display de anodo comum)
ssd_b <=
end architecture;
- Fazer a análise e síntese desse circuito. Corrija eventuais erros.
- Se desejar realize a simulação com o Modelsim, variando as entradas de 0 a 15. (opcional)
- Verifique se os valores das saídas estão corretos para 0 até 9.
- Anote os valores das saídas para as entradas entre 10 e 15. Como os valores não foram predeterminados (foi usado o don't care), o mostrador pode acender de forma aleatória.
Passo 3 - Gravação do circuito no kit FPGA
porta da ENTITY
|
nome do pino no FPGA
|
número do pino no FPGA
|
bcd_A
|
SW[3]
|
|
bcd_B
|
SW[2]
|
|
bcd_C
|
SW[1]
|
PIN_AC28
|
bcd_D
|
SW[0]
|
PIN_AB28
|
led_A
|
LEDR[3]
|
|
led_B
|
LEDR[2]
|
|
led_C
|
LEDR[1]
|
PIN_F19
|
led_D
|
LEDR[0]
|
PIN_G19
|
ssd_a
|
HEX0[0]
|
PIN_G18
|
ssd_b
|
HEX0[1]
|
PIN_F22
|
ssd_c
|
HEX0[2]
|
|
ssd_d
|
HEX0[3]
|
|
ssd_e
|
HEX0[4]
|
|
ssd_f
|
HEX0[5]
|
|
ssd_g
|
HEX0[6]
|
|
Passo 4 - Testes
- Para verificar se o circuito funciona, realie seguintes testes, acionando as chaves e observando o resultado nos LEDs e no mostrador:
- Selecione nas chaves SW3, SW2, SW1, SW0, seguidamento os valores binários correspondentes aos valores de 0 a 15
- Verifique se o leds LEDR3, LEDR2, LEDR1, LEDR0 acendem conforme os números.
- Verifique também se o mostrador mostra corretamente os valores de 0 a 9.
- Anote quais leds acendem para os valores 10 a 15.
Passo 5 - Documentação
- Ao longo do procedimento anote os valores e procedimentos realizados para incluí-los no relatório.
- Relatório Técnico
- Documentar o experimento em um relatório técnico que contenha no mínimo:
- Identificação (título, disciplina, data, autores);
- Introdução;
- Descrição do procedimento realizado;
- Resultados obtidos (com imagens dos itens importantes) e análise dos resultados;
- Conclusão.
- Apêndice (se desejar pode ser disponibilizados vídeos dos testes do circuito)
- O relatório deve também responder as questões levantadas e mostrar que os objetivos apresentados na introdução foram atendidos.