Cursos / Eletrônica / Sistemas Digitais / Aula
Vamos estudar duas estruturas de dados condicionais muito encontradas também em outras linguagens. São elas o (1) If.. then, e (2) Case.
No If..Then, uma ação deve ser tomada baseado em algumas condições. A sintaxe da expressão é:
A declaração 01 será executada se condição 01 for verdadeira. Caso não seja, será verificada a condição 02. Se ela for verdadeira, declaração 02 será executada. Caso nenhuma das duas condições anteriormente ditas foram verdadeiras, a declaração 03 será executada.
Por exemplo, olhando para o exemplo da Figura 7, podemos deduzir que: se sel é igual a 0, então resultado recebe A, se não resultado receberá B.
Precisamos saber ainda que relacionado a expressão IF…THEN:
Vamos analisar outro exemplo (Figura 8) que implementa a equação $S = A\overline{BC} + B$.
Para a condição de $A = 1$, $B = 0$ e $C = 0$, a saída recebe o valor 1, bem como para a condição de $B = 1$. Caso contrário (que é o último else) a saída recebe 0.
Perceba que o IF..THEN é intrinsecamente sequencial. As condições são sequencialmente verificadas uma após a outra e uma declaração só pode ser executada após uma condição verdadeira. Por conta de sua estrutura sequencial, um If..Then deve estar dentro de uma estrutura que explicite a leitura sequencial do código. Existem outras estruturas sequenciais em VHDL, mas até agora só estudamos o process. Desta forma, para até o momento, o If..Then deve estar dentro de um process. Vamos ver o código de um flip-flop D.
O flip-flop D é um circuito sequencial que você estudará nas aulas que ainda estão por vir. Teremos na saída o dado da entrada a cada vez que o relógio de entrada subir ou descer. Olhando para a Figura 9, temos como saída Q e como entradas: o D, o relógio (CLK) e o habilitador, R, que quando estiver em 1 o flip-flop D estará funcionando, caso contrário teremos a saída Q igual a zero.
Na Figura 10 vemos o código em VHDL do flip-flop D.
Versão 5.3 - Todos os Direitos reservados