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 5 Aula 5 Comando Process (sequencial) Introdução à Apostila 4 Atividades de laboratório 1. Explique e dê exemplos, do uso do comando Process. Processos são objetos que executam programas sequenciais e podem ser usados para modelar os diferentes componentes de um sistema. Um processo é composto de: - Uma parte declarativa, que pode incluir declarações de variáveis. - Uma parte programa, que pode ser composta por vários tipos de instruções sequenciais. . IF-THEN-ELSE . LOOP CASE Ex: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY detecta IS PORT(33 led : out bit; sensor1,sensor2 : in bit ); END detecta; ARCHITECTURE arq_detecta OF detecta IS begin process(sensor1,sensor2) begin if(sensor1=’1’ and sensor2=’1’)then led<=’1’; else led<=’0’; end if; end process; end arq_detecta; O código acima é capaz de detectar quando dois sensores estão ativos. 2 – Usando o Quartus 2 crie um MUX de 4 entradas com IF ELSE ENTITY mux_4a IS PORT (i0, i1, i2, i3 : IN BIT; -- entradas s0, s1 : IN BIT; -- selecao ot : OUT BIT); -- saida END mux_4a; ARCHITECTURE teste OF mux_4a IS SIGNAL sel : BIT_VECTOR(1 DOWNTO 0); BEGIN sel <= s1 & s0; abc: PROCESS (i0, i1, i2, i3, sel) --sinal "sel" inserido na lista BEGIN IF sel = "00" THEN ot <= i0; ELSIF sel = "01" THEN ot <= i1; ELSIF sel = "10" THEN ot <= i2; ELSE ot <= i3; END IF; END PROCESS abc; END teste; 3 – Repita o exercício anterior usndo CASE WHEN ENTITY mux_5a IS PORT (i0, i1, i2, i3 : IN BIT; s1, s0 : IN BIT; ot : OUT BIT); END mux_5a; ARCHITECTURE teste OF mux_5a IS SIGNAL sel : BIT_VECTOR(1 DOWNTO 0); BEGIN sel <= s1 & s0; abc: PROCESS (i0, i1, i2, i3, sel) --sinal "sel" inserido na lista BEGIN CASE sel IS WHEN "00" => ot <= i0; WHEN "01" => ot <= i1; WHEN "10" => ot <= i2; WHEN OTHERS => ot <= i3; END CASE; END PROCESS abc; END teste; 4 – Explique e dê exemplos, usando Quartus 2, do comando WAIT O comando WAIT suspende a execução de um processo. Esta suspensão pode ser condicionada de três formas, ou a combinação das três. As três formas são: - WAIT ON – equivalente a uma lista de sensibilidade de um processo - WAIT UNTIL – o processo fica suspenso enquano a condição booleana contida no comando não for satisfeita - WAIT FOR – o processo é suspenso por um certo período de tempo, após este período retorna no comando seguinte. ENTITY wait_a IS PORT (xa, xb : BUFFER INTEGER RANGE 0 TO 15; ya, yb : BUFFER BIT); END wait_a; ARCHITECTURE teste OF wait_a IS BEGIN abc: PROCESS BEGIN xa <= xa +1; ya <= '1'; WAIT FOR 30 ns; ya <= '0'; WAIT FOR 20 ns; END PROCESS abc; cde: PROCESS BEGIN WAIT FOR 30 ns; xb <= xb +1; yb <= '1'; WAIT FOR 20 ns; yb <= '0'; END PROCESS cde; END teste; Conclusão: Na aula foi apresentado o comando PROCESS e foi feita uma introdução a apostila 4. Na primeira atividade de laboratório foi pedido que explicasse o funcionamento do comando PROCESS e também mostrasse um exemplo de aplicação (entidade e o que a entidade realiza). Na segunda atividade de laboratório foi pedido que criasse um MUX com 4 entradas utilizando IF ELSE, foi criado o MUX e apresentada a sua entidade logo abaixo. Na terceira atividade de laboratório foi pedido que criasse o mesmo MUX da atividade 2 utilizando CASE WHEN, foi criado o MUX e a apresenta a sua entidade logo abaixo. Na quarta atividade de laboratório foi pedido que explicasse o funcionamento do comando WAIT e ainda um exemplo de uso desse comando. Foi apresentado a entidade logo abaixo, e a visualização da simulação da entidade. Obs: a simulação está com um print do livro porque o Quartus II parou de funcionar e não teve como fazer uma simulação.
Compartilhar