Mudanças entre as edições de "Códigos VHDL para uso nas Aulas"
Linha 1: | Linha 1: | ||
− | =Decodificador de BCD para 7 | + | =Decodificador de BCD para 7 segmentos= |
Descrever usando lógica discreta um decodificador de BCD para 7 segmentos. A interface externa do decodificador deve ter as entradas eA, eB, eC e eD, e as saídas os sete segmentos a, b, c, d, e, f, g. Neste exemplo esta sendo considerada a logica negativa onde o segmento acesso corresponde a 0 e apagado -> 1. Entradas só são consideradas válidas de 0 (0000) até 9 (1001), ou seja o circuito não precisa tratar as entradas entre A (1010) e F(1111). | Descrever usando lógica discreta um decodificador de BCD para 7 segmentos. A interface externa do decodificador deve ter as entradas eA, eB, eC e eD, e as saídas os sete segmentos a, b, c, d, e, f, g. Neste exemplo esta sendo considerada a logica negativa onde o segmento acesso corresponde a 0 e apagado -> 1. Entradas só são consideradas válidas de 0 (0000) até 9 (1001), ou seja o circuito não precisa tratar as entradas entre A (1010) e F(1111). | ||
+ | <center> | ||
+ | [[Arquivo:7Segment_24.svg.png|100px|Display de 7 segmentos]] | ||
+ | </center> | ||
+ | {{collapse top|Entidade - entradas e saídas}} | ||
+ | [[Arquivo:Dec_7seg.png]] | ||
+ | {{collapse bottom}} | ||
− | + | {{collapse top|Tabela Verdade}} | |
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ Entradas e Segmentos | |+ Entradas e Segmentos | ||
Linha 30: | Linha 35: | ||
| - || - || - || - || || x || x || x || x || x || x || x | | - || - || - || - || || x || x || x || x || x || x || x | ||
|} | |} | ||
+ | {{collapse bottom}} | ||
− | + | {{collapse top|Código VHDL (lógica discreta)}} | |
− | |||
<syntaxhighlight lang=vhdl> | <syntaxhighlight lang=vhdl> | ||
entity Dec_7seg is | entity Dec_7seg is | ||
Linha 75: | Linha 80: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | {{collapse bottom}} | |
+ | |||
+ | {{collapse top|Código TCL para teste do Hardware}} | ||
+ | Use o código tcl abaixo para testar no ModelSim o circuito RTL gerado no Quartus II. | ||
+ | |||
<code> | <code> | ||
vcom -93 -work work {/home/moecke/ano2012-1/7-SEGv1/Dec_7seg.vhd} | vcom -93 -work work {/home/moecke/ano2012-1/7-SEGv1/Dec_7seg.vhd} | ||
Linha 119: | Linha 128: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | {{collapse bottom}} | |
+ | |||
+ | {{collapse top|Circuito RTL a ser testado}} | ||
+ | |||
[[Arquivo:RTL_Dec_7seg.png|600px|RTL do Decodificador de 7 segmentos]] | [[Arquivo:RTL_Dec_7seg.png|600px|RTL do Decodificador de 7 segmentos]] | ||
− | + | {{collapse bottom}} | |
− | Escreva um código VDHL que implemente a função do decodificador usando uma descrição funcional do decodificador. | + | |
+ | ;Atividade complementar: | ||
+ | Escreva um código VDHL que implemente a função do decodificador usando uma '''descrição funcional''' do decodificador. |
Edição das 18h14min de 13 de março de 2012
Decodificador de BCD para 7 segmentos
Descrever usando lógica discreta um decodificador de BCD para 7 segmentos. A interface externa do decodificador deve ter as entradas eA, eB, eC e eD, e as saídas os sete segmentos a, b, c, d, e, f, g. Neste exemplo esta sendo considerada a logica negativa onde o segmento acesso corresponde a 0 e apagado -> 1. Entradas só são consideradas válidas de 0 (0000) até 9 (1001), ou seja o circuito não precisa tratar as entradas entre A (1010) e F(1111).
Código VHDL (lógica discreta) |
---|
entity Dec_7seg is
port
(
eA,eB,eC,eD : in bit;
a,b,c,d,e,f,g : out bit
);
end Dec_7seg;
architecture discret_logic of Dec_7seg is
begin
--lógica que implementa o segmento a de um display (0,1,2,3,4,5,6,7,8,9), sem minimização.
-- 0 -> aceso (ON), 1 -> apagado (OFF)
a <= (NOT eD AND NOT eC AND NOT eB AND eA) OR
(NOT eD AND eC AND NOT eB AND NOT eA);
--implemente a lógica dos demais segmentos do display (0,1,2,3,4,5,6,7,8,9), sem minimização.
b <= (NOT eD AND eC AND NOT eB AND eA) OR
(NOT eD AND eC AND eB AND NOT eA);
c <= (NOT eD AND NOT eC AND eB AND eA);
d <= (NOT eD AND NOT eC AND NOT eB AND eA) OR
(NOT eD AND eC AND NOT eB AND NOT eA) OR
(NOT eD AND eC AND eB AND eA);
e <= (NOT eD AND NOT eC AND NOT eB AND eA) OR
(NOT eD AND NOT eC AND eB AND eA) OR
(NOT eD AND eC AND NOT eB AND NOT eA) OR
(NOT eD AND eC AND NOT eB AND eA) OR
(NOT eD AND eC AND eB AND eA) OR
( eD AND NOT eC AND NOT eB AND eA);
f <= (NOT eD AND NOT eC AND NOT eB AND eA) OR
(NOT eD AND NOT eC AND eB AND NOT eA) OR
(NOT eD AND NOT eC AND eB AND eA) OR
(NOT eD AND eC AND eB AND eA);
g <= (NOT eD AND NOT eC AND NOT eB AND NOT eA) OR
(NOT eD AND NOT eC AND NOT eB AND eA) OR
(NOT eD AND eC AND eB AND eA);
end discret_logic;
|
Código TCL para teste do Hardware |
---|
Use o código tcl abaixo para testar no ModelSim o circuito RTL gerado no Quartus II.
|
- Atividade complementar
Escreva um código VDHL que implemente a função do decodificador usando uma descrição funcional do decodificador.