Mudanças entre as edições de "Experimento 5 para Circuitos Lógicos"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(42 revisões intermediárias por 4 usuários não estão sendo mostradas)
Linha 1: Linha 1:
__NOTOC__
+
__NOTOC__== Conversor BCD para display de sete segmentos==  
== Introdução ao sistema de numeração binário e aplicação do Mapa de Karnaugh==  
 
;Objetivos: 
 
* Aplicar o Mapa de Karnaugh para a criação de um decodificador de 7-segmentos;
 
* Gerar formas de onda para entrada de simulação;
 
* Fazer a simulação funcional do circuito com o QSIM;
 
;Materiais necessários:
 
#
 
#
 
#
 
#Computador com software Quartus II da Altera.
 
  
==Utilizar o diagrama esquemático do Quartus II para inserir um display sete segmentos==
 
Abra o Quartus II (versão 13.0.1 SE) e insira o diagrama esquemático conforme a figura abaixo.
 
[[Imagem:Exp5_diag2.png|700px|center]]
 
 
Após salvar o arquivo como diplay.bdf em uma pasta vazia com nome Exp5, e crie um projeto display.qpf utilizando a família '''family=Cyclone IV E''' com o dispositivo '''device=EP4CE115F29C7'''. Após isso compile o projeto.
 
 
==Inserindo um decodificador binário BCD para sete segmentos==
 
*Para melhor visualizar o resultado da contagem, será usado um decodificador BCD para 7 segmentos comercial.
 
*O resultado no display será uma contagem conforme a figura a seguir:
 
[[Arquivo:Segmentos_7447.png|600 px|center]]
 
 
==Gerar formas de onda para entrada de simulação==
 
*Agrupe as entradas como mostrado na figura abaixo usando Radix > Unsigned Decimal.
 
*Agrupe as saídas do display 7-segmentos como mostrado na figura abaixo usando Radix > Hexadecimal. 
 
*Desenhe a forma de onda dos sinais conforme mostrado na figura abaixo, e salve com o nome EntradaFunc.vwf.
 
[[Imagem:Exp5_entrada2.png|850px]]
 
 
==Fazer a simulação funcional do circuito com o QSIM==
 
*Verifique se o resultado obtido corresponde a respostas do circuito implementado.
 
[[Imagem:Exp5_saida2.png|850px]]
 
==Preparar o circuito lógico para gravação em um kit de desenvolvimento==
 
*Atribua os pinos conforme a [ftp://ftp.altera.com/up/pub/Altera_Material/12.1/Boards/DE2-115/DE2_115.qsf pinagem do kit DE2-115].
 
*Utilize os switchs para alterar o estado lógico das entradas, indicando-as de A-D.
 
*Utilize os leds de LEDR[0] a LEDR[3] (verdes) para mostrar a saída dos switchs.
 
*Utilize o display HEX0 do kit para mostrar a contagem:
 
[[Arquivo:Display7segDE2-115.png|300px|center]]
 
*Ao final da configuração dos pinos, o Pin Planner deverá mostrar a seguinte pinagem:
 
[[Imagem:exp5_pinagem.png|300px|center]]
 
*Defina como alta impedância o estado dos pinos não utilizados no projeto. (Assignments > Devices), [Device and Pin Options...], escolha a (Category=Unused Pins), e selecione Reserve all unused pins: As input tri-stated. [OK].
 
 
*Compile o projeto. Note que agora a numeração dos pinos também aparece no diagrama esquemático.
 
*Use a porta USB-Blaster para fazer a programação na placa DE2-115;
 
*No Quartus vá em (Tools > Programmer) para abrir a página de programação;
 
**Selecione o Hardware (Hardware Setup > USB-Blaster);
 
**Utilize o modo JTAG e clique em Start para começar a programação; [[Arquivo:Programador.png|200px|thumb|Clique para Ampliar]]
 
*Verifique os resultados obtidos;
 
  
 +
;Objetivos:
 +
* Aplicar o Mapa de Karnaugh para a criação de um decodificador de 7 segmentos;
 +
* Gerar formas de onda para entrada de simulação;
 +
* Fazer a simulação funcional do circuito;
 +
*;Materiais necessários:
 +
*# [http://www.ti.com/lit/ds/symlink/sn54als08.pdf 74X08 AND](disponível na biblioteca da ALTERA)
 +
*# [http://www.ti.com/lit/ds/symlink/sn74ls32.pdf 74X32 OR](disponível na biblioteca da ALTERA)
 +
*# [http://www.ti.com/lit/ds/symlink/sn74ls04.pdf 74X04 NOT](disponível na biblioteca da ALTERA)
 +
*# Computador com software Quartus II da Altera.
  
 +
==Tabela Verdade do decodificador SSD (Sete Segmentos - 0 a 9)==
  
///tabela verdade
+
* Preencha a tabela verdade para todos os segmentos, para isso, analise as entradas e quais segmentos deverão estar acesos ou apagados a partir de uma configuração de catodo comum;
 +
* Siga o exemplo do segmento G:
  
 +
[[Arquivo:display1_7seg.png|200px]]
  
 
<center>
 
<center>
 
+
{| style="text-align: center;" border="1" cellspacing="0" cellpadding="5"
{| border="1" cellpadding="5" cellspacing="0" style="text-align: center;"
 
! colspan="4" style="background: #efefef;" | Entradas
 
! colspan="7" style="background: #ffdead;" | Saídas
 
 
|-
 
|-
!width="30"| A
+
! style="background: #efefef;" colspan="4"|Entradas
!width="30"| B
+
! style="background: #ffdead;" colspan="7"|Saídas
!width="30"| C
+
! style="background: #efefef;" colspan="1"|Decimal
!width="30"| D
 
!width="30"| a
 
!width="30"| b
 
!width="30"| c
 
!width="30"| d
 
!width="30"| e
 
!width="30"| f
 
!width="30"|
 
 
|-
 
|-
| 0 || 0 || 0 || 0 || 1 || 1 || 1 || 1 || 1 || 1 || 0
+
! width="30"|A
 +
! width="30"|B
 +
! width="30"|C
 +
! width="30"|D
 +
! width="30"|a
 +
! width="30"|b
 +
! width="30"|c
 +
! width="30"|d
 +
! width="30"|e
 +
! width="30"|f
 +
! width="30"|g
 +
! width="30"|Display
 
|-
 
|-
| 0 || 0 || 0 || 1 || 0 || 1 || 1 || 0 || 0 || 0 || 0  
+
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 1
 +
| 1
 +
| 1
 +
| 1
 +
| 1
 +
| 1
 +
| 0
 +
| 0
 
|-
 
|-
| 0 || 0 || 1 || 0 || 1 || 1 || 0 || 1 || 1 || 0 || 1  
+
| 0
 +
| 0
 +
| 0
 +
| 1
 +
| 0
 +
| 1
 +
| 1
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 1
 
|-
 
|-
| 0 || 0 || 1 || 1 ||   ||   ||   ||  ||  ||  || 1
+
| 0
 +
| 0
 +
| 1
 +
| 0
 +
| 1
 +
| 1
 +
| 0
 +
| 1
 +
| 1
 +
| 0
 +
| 1
 +
| 2
 
|-
 
|-
| 0 || 1 || 0 || 0 ||   ||   ||   ||  ||  ||  || 1
+
| 0
 +
| 0
 +
| 1
 +
| 1
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
| 1
 +
| 3
 
|-
 
|-
| 0 || 1 || 0 || 1 ||   ||   ||   ||  ||  ||  || 1
+
| 0
 +
| 1
 +
| 0
 +
| 0
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
| 1
 +
| 4
 
|-
 
|-
| 0 || 1 || 1 || 0 ||   ||   ||   ||  ||  ||  || 1
+
| 0
 +
| 1
 +
| 0
 +
| 1
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
| 1
 +
| 5
 
|-
 
|-
| 0 || 1 || 1 || 1 ||   ||   ||   ||  ||  ||  || 0
+
| 0
 +
| 1
 +
| 1
 +
| 0
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
| 1
 +
| 6
 
|-
 
|-
| 1 || 0 || 0 || 0 ||   ||   ||   ||  ||  ||  || 1
+
| 0
 +
| 1
 +
| 1
 +
| 1
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
| 0
 +
| 7
 
|-
 
|-
| 1 || 0 || 0 || 1 ||   ||   ||   ||  ||  ||  || 1
+
| 1
 +
| 0
 +
| 0
 +
| 0
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
| 1
 +
| 8
 
|-
 
|-
| 1 || 0 || 1 || 0 ||   ||   ||   ||  ||  ||  || X
+
| 1
 +
| 0
 +
| 0
 +
| 1
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
| 1
 +
| 9
 
|-
 
|-
| 1 || 0 || 1 || 1 ||  ||  ||  ||   ||   ||   || X  
+
| 1
 +
| 0
 +
| 1
 +
| 0
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
| X
 +
| X
 
|-
 
|-
| 1 || 1 || 0 || 0 ||  ||  ||  ||   ||   ||   || X  
+
| 1
 +
| 0
 +
| 1
 +
| 1
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
| X
 +
| X
 
|-
 
|-
| 1 || 1 || 0 || 1 ||  ||  ||  ||  ||   ||   || X  
+
| 1
 +
| 1
 +
| 0
 +
| 0
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
| X
 +
| X
 
|-
 
|-
| 1 || 1 || 1 || 0 ||  ||  ||  ||  ||   ||   || X  
+
| 1
 +
| 1
 +
| 0
 +
| 1
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
| X
 +
| X
 
|-
 
|-
| 1 || 1 || 1 || 1 ||   ||  ||  ||   ||   ||   || X  
+
| 1
 +
| 1
 +
| 1
 +
| 0
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
|  
 +
| X
 +
| X
 
|-
 
|-
 +
| 1
 +
| 1
 +
| 1
 +
| 1
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| X
 +
| X
 
|}
 
|}
 
</center>
 
</center>
 +
 +
==Mapa de Karnaugh==
 +
 +
* Utilize o software LogiSim para obter todos os mapas de Karnaugh e as expressões simplificadas para os sete segmentos.
 +
* Ou, implemente a minimização do Mapa de Karnaugh utilizando o seguinte [https://www.docjava.com/cpe210/kmapExplorer.html software].
 +
** Primeiro, deve-se preencher a tabela verdade de acordo com o segmento g:
 +
[[Arquivo: seg-g.png]]
 +
 +
* O software preenche o Mapa de Karnaugh com a melhor minimização possível:
 +
[[Arquivo: mapaSeg-g.png]]
 +
 +
* Obtêm-se a expressão resultante do Mapa:
 +
[[Arquivo: resultMK.png]]
 +
* Repita a operação para os demais segmentos.
 +
 +
 +
==Inserindo a minimização do Mapa de Karnaugh no Quartus==
 +
 +
# Vá a página [http://docente.ifsc.edu.br/odilson/CIL29003/ CIL29003], baixe o arquivo '''bcd_ssd.qar''' e salve em seu computador.
 +
# Execute o Quartus.
 +
# Restaure o projeto: Project >> Restore Archived Project... > (Archive Name: /home/aluno/bcd_ssd.qar ; Destination folder: '''/home/aluno/bcd_ssd''') >> OK >> Yes.
 +
# Será criada uma pasta '''bcd_ssd'''. Esse será nosso diretório de trabalho.
 +
# Compile o projeto.
 +
# Note que apenas o segmento '''g''' (seg_g) está implementado. Confira se ele está de acordo com seu projeto, ajuste se necessário.
 +
# Monte os demais segmentos, seguindo este exemplo e baseado em seu projeto já realizado.
 +
# Associe o dispositivo a ser utilizado: Assignments >> Device >> '''Family: Cyclone IV E''' e '''Available Devices: EP4CE30F23C7''' >> OK
 +
# Compile o projeto.
 +
# Associe os pinos (Assignments >> Assignment Editor) segundo a pinagem do [[Pinagem_dos_dispositivos_de_entrada_e_saída_do_kit_MERCURIO_IV | kit MERCURIO IV - EP4CE30F23C7]].
 +
## Utilize quatro chaves (sw) como entrada BCD.
 +
## Utilize um dos dois ''displays'' SSD como saída.
 +
# Compile o projeto.
 +
# Conecte a placa via USB.
 +
# Faça a carga do código: Tools >> Programer >> Start.
 +
# Verifique o funcionamento do conversor: altere o código BCD com as chaves de entrada (0000 à 1111) e verifique a saída no display SSD.

Edição das 13h16min de 6 de dezembro de 2021

Conversor BCD para display de sete segmentos

Objetivos
  • Aplicar o Mapa de Karnaugh para a criação de um decodificador de 7 segmentos;
  • Gerar formas de onda para entrada de simulação;
  • Fazer a simulação funcional do circuito;
    Materiais necessários
    1. 74X08 AND(disponível na biblioteca da ALTERA)
    2. 74X32 OR(disponível na biblioteca da ALTERA)
    3. 74X04 NOT(disponível na biblioteca da ALTERA)
    4. Computador com software Quartus II da Altera.

Tabela Verdade do decodificador SSD (Sete Segmentos - 0 a 9)

  • Preencha a tabela verdade para todos os segmentos, para isso, analise as entradas e quais segmentos deverão estar acesos ou apagados a partir de uma configuração de catodo comum;
  • Siga o exemplo do segmento G:

Display1 7seg.png

Entradas Saídas Decimal
A B C D a b c d e f g Display
0 0 0 0 1 1 1 1 1 1 0 0
0 0 0 1 0 1 1 0 0 0 0 1
0 0 1 0 1 1 0 1 1 0 1 2
0 0 1 1 1 3
0 1 0 0 1 4
0 1 0 1 1 5
0 1 1 0 1 6
0 1 1 1 0 7
1 0 0 0 1 8
1 0 0 1 1 9
1 0 1 0 X X
1 0 1 1 X X
1 1 0 0 X X
1 1 0 1 X X
1 1 1 0 X X
1 1 1 1 X X

Mapa de Karnaugh

  • Utilize o software LogiSim para obter todos os mapas de Karnaugh e as expressões simplificadas para os sete segmentos.
  • Ou, implemente a minimização do Mapa de Karnaugh utilizando o seguinte software.
    • Primeiro, deve-se preencher a tabela verdade de acordo com o segmento g:

Seg-g.png

  • O software preenche o Mapa de Karnaugh com a melhor minimização possível:

MapaSeg-g.png

  • Obtêm-se a expressão resultante do Mapa:

ResultMK.png

  • Repita a operação para os demais segmentos.


Inserindo a minimização do Mapa de Karnaugh no Quartus

  1. Vá a página CIL29003, baixe o arquivo bcd_ssd.qar e salve em seu computador.
  2. Execute o Quartus.
  3. Restaure o projeto: Project >> Restore Archived Project... > (Archive Name: /home/aluno/bcd_ssd.qar ; Destination folder: /home/aluno/bcd_ssd) >> OK >> Yes.
  4. Será criada uma pasta bcd_ssd. Esse será nosso diretório de trabalho.
  5. Compile o projeto.
  6. Note que apenas o segmento g (seg_g) está implementado. Confira se ele está de acordo com seu projeto, ajuste se necessário.
  7. Monte os demais segmentos, seguindo este exemplo e baseado em seu projeto já realizado.
  8. Associe o dispositivo a ser utilizado: Assignments >> Device >> Family: Cyclone IV E e Available Devices: EP4CE30F23C7 >> OK
  9. Compile o projeto.
  10. Associe os pinos (Assignments >> Assignment Editor) segundo a pinagem do kit MERCURIO IV - EP4CE30F23C7.
    1. Utilize quatro chaves (sw) como entrada BCD.
    2. Utilize um dos dois displays SSD como saída.
  11. Compile o projeto.
  12. Conecte a placa via USB.
  13. Faça a carga do código: Tools >> Programer >> Start.
  14. Verifique o funcionamento do conversor: altere o código BCD com as chaves de entrada (0000 à 1111) e verifique a saída no display SSD.