Dispositivos Lógicos Programávies
Por: kaparzo • 14/6/2015 • Trabalho acadêmico • 961 Palavras (4 Páginas) • 512 Visualizações
INTRODUÇÃO
Preliminarmente, vamos abordar um determinado assunto que diz respeito a projetos de circuitos digitais com dispositivos programáveis, visto ao decorrer do bimestre, que consistem na resolução de problemas utilizando dispositivos programáveis, através da aplicação do conceito lógico conseguir desenvolver um algoritmo que solucione o problema proposto.
Laboratório 3 - Dispositivos Lógicos Programávies
- Registrador sensível à borda de subida do sinal de clock;
- Utilização do display de 7 segmentos;
O que deve ser feito:
Descreva o circuito de um registrador sensível a borda de subida que é ativada por um sinal de entrada denominado “clock”.
Entradas: A, B, set, reset, clock; (chaves do tipo liga / desliga)
Saída: s0 e s1; (display 0 e display 1 de 7 segmentos)
Quando houver evento de clock e o clock for igual a 1, analisar inicialmente o reset e depois o set.
Caso nenhum desses estejam em nível alto, e o sinal de entrada A for igual a 1, a saída “s0” deverá receber os 7 bits que representam o número 0 no display de 7 segmentos e a saída “s1” deverá receber os 7 bits que representam o número 1 no display de 7 segmentos.
Caso a entrada A seja igual a 0 e a entrada B seja igual a 1, a saída “s0” deverá receber os 7 bits que representam o número 5 no display de 7 segmentos e a saída “s1” deverá receber os 7 bits que representam o número 9 no display de 7 segmentos.
Caso as entradas A e B sejam nulas, a saída “s0” deverá receber os 7 bits que representam o número 2 no display de 7 segmentos e a saída “s1” deverá receber os 7 bits que representam o número 1 no display de 7 segmentos.
Código
library ieee;
use ieee . std_logic_1164 . all ;
entity lab3 is
port (
set: in bit ;
res: in bit ;
ck: in bit ;
a: in bit ;
b: in bit ;
s0: out bit_vector (7 downto 1);
s1: out bit_vector (7 downto 1)
);
end lab3;
architecture exercicio of lab3 is
constant num0: bit_vector (7 downto 1):= "1111110"; //num0 recebe equivalente a 0 no display
constant num1: bit_vector (7 downto 1):= "0110000"; //num1 recebe equivalente a 1 no display
constant num5: bit_vector (7 downto 1):= "1011011"; //num5 recebe equivalente a 5 no display
constant num9: bit_vector (7 downto 1):= "1111011"; //num9 recebe equivalente a 9 no display
constant num2: bit_vector (7 downto 1):= "1101101"; //num2 recebe equivalente a 2 no display
begin process (ck, set, res) //inicio process
begin i f (ck' eventand ck='1') then //inicio if
if (res='1') then s0<= "0000000" ;s1<= "0000000" ; //se reset recebe '1' acende todo o display
elsif (set='1') then s0<= "1111111" ;s1<= "1111111" ; //se set recebe '1'apaga todo o display
elsif (a='1') then s0<=num0;s1<=num1;//se a recebe '1', imprime 0 em s0 e 1 em s1
...