Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Estadual de Campinas Faculdade de Tecnologia TT-411 Circuitos Digitais 2 Wellington Renan Gonçalves Relatório 6 Aula 6 Estratégias de Descrição de Circuitos Síncronos Introdução à Apostila 5 Atividades de laboratório 1. Executar os códigos propostos e explicar o seu funcionamento. ENTITY latch3_1 IS PORT (en : IN BIT; -- habilita rst : IN BIT; -- rst=1 leva q=000 set : IN BIT; -- set=1 leva q=111 d : IN BIT_VECTOR(2 DOWNTO 0); q : OUT BIT_VECTOR(2 DOWNTO 0)); END latch3_1; ARCHITECTURE teste OF latch3_1 IS BEGIN PROCESS (en, d, rst, set) BEGIN IF (rst ='1') THEN q <="000"; -- q=000 independente de en ELSIF (set ='1') THEN q <="111"; -- q=111 independente de en ELSIF (en ='1') THEN q <=d; -- condicao do sinal para habilitar END IF; END PROCESS; END teste; O código descrito acima é um registrado sensível a nível. Descreve um registrador de 3 bits, com saída q, as entradas rst e set, resetam e setam o registrador respectivamente, e a entrada quando 1 habilita o registrador. ENTITY flip3_2 IS PORT (ck : IN BIT; -- relogio rst : IN BIT; -- rst=1 leva q=000 sincrono set : IN BIT; -- set=1 leva q=111 sincrono d : IN BIT_VECTOR(2 DOWNTO 0); q : OUT BIT_VECTOR(2 DOWNTO 0)); END flip3_2; ARCHITECTURE teste OF flip3_2 IS BEGIN PROCESS (ck) BEGIN IF (ck'EVENT AND ck = '1') THEN -- condicao do sinal relogio IF (rst = '1') THEN q <= "000"; -- teste para levar q=000 ELSIF (set = '1') THEN q <= "111"; -- teste para levar q=111 ELSE q <= d; -- armazena dado END IF; END IF; END PROCESS; END teste; O código descrito acima é um registrador sensível à borda. q é a saída da descrição, rst e set, resetam e setam respectivamente o registrador, e ck é o clock do código, o PROCESS só executará quando houver uma mudança no sinal do relógio e no caso do código implementado quando houver uma borda de subida. ENTITY flip3_3 IS PORT (ck : IN BIT; -- relogio rst : IN BIT; -- rst=1 leva q=000 assincrono set : IN BIT; -- set=1 leva q=111 assincrono d : IN BIT_VECTOR(2 DOWNTO 0); q : OUT BIT_VECTOR(2 DOWNTO 0)); END flip3_3; ARCHITECTURE teste OF flip3_3 IS BEGIN PROCESS (ck, rst, set) BEGIN IF (rst = '1') THEN q <="000"; -- q=000 independente de ck ELSIF (set = '1') THEN q <="111"; -- q=111 independente de ck ELSIF (ck'EVENT AND ck ='1') THEN q <=d; -- condicao do sinal relogio END IF; END PROCESS; END teste; O código descrito acima também é um Registrador Sensível a Borda, neste caso a sua inicialização é assíncrona apresenta as operações set e reset independentes do sinal de relógio ck. 2 – Defina uma Máquina de Estado, execute o seu código e explique o seu funcionamento. Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações. Um estado armazena informações sobre o passado. Uma transição indica uma mudança de estado e é descrito por uma condição que precisa ser realizada para que a transiçao ocorra. Uma ação é a descrição de uma atividade que deve ser realizada em determinado momento. As máquinas de estados são classificadas de acordo com o tipo de função da saínda, em dois tipos: Máquina de Mealy e Máquina de Moore. A máquina de Mealy é um sistema sequencial cuja saída no tempo t depende do estado e da entrada no tempo t. A máquina de Moore é um sistema sequencial cuja saída no tempo t depende somente do estado no tempo t. ENTITY maq_est1 IS PORT (ck : IN BIT; -- relogio borda subida rst : IN BIT; -- rst=1, q=00 q : BUFFER BIT_VECTOR (1 DOWNTO 0)); -- saida codigo Gray END maq_est1; ARCHITECTURE teste OF maq_est1 IS BEGIN abc: PROCESS (ck, rst) BEGIN IF rst = '1' THEN -- estado inicial q <= "00"; ELSIF (ck'EVENT and ck ='1') THEN -- ciclo de estados CASE q IS WHEN "00" => q <= "01"; WHEN "01" => q <= "11"; WHEN "11" => q <= "10"; WHEN "10" => q <= "00"; END CASE; END IF; END PROCESS abc; END teste; O código descrito acima apresenta a implementação de uma máquina de estado do tipo Moore, onde a saída depende apenas do estado anterior. ck é o clock da descrição a qual é sensível a borda de subida, rst é o sinal de reset e q a saída. Conclusão: Na aula foi apresentada Estratégias de Descriçao de Circuitos Síncronos. Na atividade 1 apresentado registradores, e implementado códigos que simulasse o funcionamento de um. E ainda, os códigos implementos foram simulados no WaveForm para verificar a compatibilidade das saídas esperadas com as saídas simuladas. Na atividade 2 foi apresentado o que são máquinas de estado, a diferença entre máquinas de Melay e Moore, logo após implementado um código que simulasse o funcionamento de uma máquina de estado. E ainda, o código implementa foi simulado no WaveForm para verificar a compatibilidade das saídas esperadas com as saídas simuladas.
Compartilhar