Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Automação Industrial / 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¯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