Hardware Description Language Aula 3 – AHDL (continuação) Prof. Afonso Ferreira Miguel, MSc AHDL • Implementado Lógica Condicional – If Then Statement AHDL • Implementado Lógica Condicional – CASE Statement AHDL • Cuidado com IF / ELSIF Codificado Como é interpretado AHDL • Parametrização AHDL • Exercício 4 – Implementar em AHDL uma ULA (utilizando CASE) que realize as operações de soma e subtração, parametrizando o número de bits de dados: AHDL • Problemas com tempos de propagação AHDL • Flip-Flops DFF, TFF, JKFF, SRFF AHDL • Contadores binários síncronos (crescente/decrescente) AHDL • Contadores binários (MOD N) AHDL • Exercício 5 – Implementar em AHDL um contador MOD5 decrescente que realize a contagem (6, 5, 4, 3, 2, 6, 5, ...). AHDL • FOR GENERATE AHDL • FOR GENERATE AHDL • Buffers - Tristate in oe out AHDL • Buffers - Tristate mode AHDL • Simulando Barramentos TRISTATE AHDL • Exercício 6 – Implementar com BUFFERS TRISTATE um multiplexador 4 canais (selecionados por dois bits S0 e S1) com 4 bits cada um. AHDL • MegaFunções RAM AHDL • MegaFunções ROM AHDL • Exercício 7 – Gerador de funções – Implementar um gerador de funções digital que gere as formas de onda quadrada, dente de serra e senoidal. As formas de onda devem estar em uma ROM. Cada forma de onda deve ser tabelada em 16 bytes (posições) por 4 bits. Obs.: a freqüência de clock define a freqüência do sinal gerado. A saída deste circuito poderia ser aplicado a um DA para geração do sinal analógico. AHDL • MegaFunções FIFO AHDL • MegaFunções SHIFT AHDL • Exercício 8 – Câmara de eco – Implementar o circuito digital de uma câmara de eco para um sinal de entrada com 8 bits. Supor que a velocidade de amostras (clock) é igual a 8000 sps, e o retardo desejado é de 2ms. Obs.: o sinal de saída deve ser a média do sinal de entrada(no mesmo instante) e do atrasado (t-2ms). AHDL • Exercício 9 – Reverberação – Modificar o exercício 8 para realizar a função de um reverberador. Obs.: o sinal de saída deve ser a média do sinal de entrada (no mesmo instante) e de saída atrasado (t+2ms) dividido por 2.