Escolar Documentos
Profissional Documentos
Cultura Documentos
<http://www.altera.com/education/univ/materials/digital_logic/labs/unv-labs.html>
Exercícios de Laboratório 1
Switches (chaves), Luzes (LEDs) e Multiplexadores
Parte I
A DE2 possui 18 chaves, nomeadas SW17-0, que podem ser usadas como entradas para
circuitos, e 18 LEDs vermelhos, nomeados LEDR 17-0, que podem ser usados para mostrar
valores de saídas. A Figura 1 mostra uma entidade simples em VHDL que usa os LEDs
vermelhos para mostrar o estado das chaves. Como existem LEDs vermelhos na mesma
quantidade das chaves, é conveniente representarmos vetores utilizando os mesmos, como
mostrado. Usamos atribuições simples para as 18 saídas (nos LEDs vermelhos), o que equivale
as seguintes atribuições individuais
A DE2 tem conexões hardwired entre o chip FPGA e as luzes e chaves. Para usar SW17-0 e
LEDR17-0 é necessários incluir no projeto do Quartus II o mapeamento correto dos pinos,
fornecido no Manual de Usuário da DE2. Por exemplo, o manual especifica que o SW0 está
conectado ao pino 25 do chip FPGA e o LEDR0 está ao pino AE23. Uma boa maneira de fazer as
associações de pinos é importar o arquivo chamado DE2_pin_assignments.csv, que é fornecido
no CD que acompanha a placa (DE2 Systems CD) ou na seção do programa universitário no site
da Altera. O procedimento para fazer as associações é descrito no tutorial Quartus II
Introduction using VHDL Design (Introdução ao Quartus II usando VHDL), que também pode
ser encontrado no site da Altera.
Parte II
Agora escreva uma entidade VHDL que inclua oito atribuições como as usadas
anteriormente para descrever o circuito da Figura 3a. Esse circuito terá duas entradas de oito
bits, X e Y, e produzirá uma saída M, também de oito bits. Se s=0, M=X; se s=1, M=Y. Nós nos
referimos a esse circuito como um multiplexador de oito bits de largura. A Figura 3b mostra a
simbologia do multiplexador citado, no qual X, Y e M são identificados como conexões de 8bits.
Execute os passos a seguir:
Figura 3. Multiplexador 2-para-1 com 8bits de largura
Parte III
Na Figura 2 nós mostramos o multiplexador 2-para-1, que seleciona entre duas entrados x e y.
Para essa etapa, considere que o circuito com saída m deve selecionar entre cinco saídas
diferentes u, v, w, x, e y. A parte a da figura 4 mostra como podemos descrever um
multiplexador 5-para-1 usando quatro multiplexadores 2-para1. O circuito usa um seletor de 3
bits s2s1s0 e implementa a tabela verdade mostrada na Figura 4b. A parte c da mesma figura
mostra a simbologia do circuito.
Relembre [da Figura 3] que um multiplexador 2-para-1 de oito bits de largura pode ser
implementado usando-se instâncias de um multiplexador 2-para-1 simples. A Figura 5 aplica
esse conceito para definir um multiplexador 5-para-1 de três bits de largura, o qual contém três
instâncias do circuito da Figura 4a.
Figura 4. Multiplexador 5-para-1
Parte IV
A Figura 6 mostra um módulo decodificador para um display de 7 segmentos que tem uma
entrada de 3bits c2c1c0. Esse decodificador produz sete saídas, as quais são usadas para
mostrar um caractere no display de 7 segmentos. A Tabela 1 lista os caracteres que devem ser
mostrados para cada valos da entrada c2c1c0. Para manter a simplicidade, somente quatro
caracteres são incluídos na tabela (mais o caractere "branco", os quais são selecionados com os
códigos 100 - 111).
O display de 7 segmentos é identificados pelo índices de 0 a 6 mostrado na figura
abaixo. Cada segmento é iluminado se o valor lógico 0 for atribuído ao mesmo. Você deve
escrever uma entidade que implemente que represente os funções lógicas necessárias para
ativar cada um dos sete segmentos. Use somente atribuições simples para especificar cada
expressão booleana usada nas funções lógicas.
Parte V
Considere o circuito mostrado na Figura 7. Ele usa o multiplexador 5-para-1 de três bits de
largura para habilitar a seleção de cinco caracteres H, E, L, O e "branco". O código dos
caracteres estão na Tabela 1, usando as chaves SW14-0 para inseri-los e usando as chaves
SW17-15 para especificar o display que vai exibi-lo.
Um rascunho de código que representa o circuito é mostrado na figura 8. Note que
usamos os circuitos criados nas parte II e IV como módulos (ou subcircuitos). Você deverá
estender o código da figura 8 para que possamos usar cinco displays de 7 segmentos ao invés
de somente um. Você vai precisar de cinco instâncias para cada módulo. O propósito do circuito
final é mostrar uma palavra utilizando os cinco displays compostos de caracteres da Tabela 1 e
poder rotacionar a palavra de forma circular, movendo as letras através de dos cinco displays
quando a posição das chaves SW17-15 for alterada. Como exemplo, se a palavra a ser mostrada
for HELLO, o circuito deverá criar os padrões de saída mostrados na Tabela 2.
Figura 7. Circuito que pode selecionar e exibir cinco caracteres.
Parte VI
Estenda seu circuito criado na Parte V para que todos os displays de 7 segmentos sejam
utilizados. Seu circuito deve ser capaz de mostrar palavras com até cinco caracteres nos oito
displays, e rotacionar a palavra que está sendo exibida quando o padrão das chaves SW17-15 for
alterado. Se a palavra é HELLO, então seu circuito deve produzir os padrões mostrados na
Tabela 3.