Sie sind auf Seite 1von 6

Exercícios resolvidos em sala

Projetar um circuito contador em AHDL para fazer uma contagem até 50 (B“110010”), de
forma crescente e decrescente, selecionável por uma chave:

SUBDESIGN count50updown

up_down, clk : input;

count[5..0]: output;

VARIABLE

d[5..0] : DFF;

BEGIN

d[].clk = clk;

IF up_down THEN

IF d[].q < 50 THEN

d[].d = d[].q + 1;

ELSIF d[].q == 50 THEN

d[].d = 0;

END IF;

ELSE

IF d[].q > 0 THEN

d[].d = d[].q - 1;

ELSIF d[].q == 0

d[].d = 50;

END IF;

END IF;

count[] = d[];

END;
Projetar um circuito contador de números pares de 10 (B”1010”) a 20 (“10100”).

SUBDESIGN count10_20par

clk: input;

count[4..0]: output;

VARIABLE

d[4..0] : DFF;

BEGIN

d[].clk = clk;

IF d[].q >= 10 AND d[].q < 20 AND d[0].q ==0

d[].d = d[].q + 2;

ELSE

d[].d = 10;

END IF;

END IF;

count[] = d[];

END;
Fazer um contador módulo 10, com clock de entrada de 1 segundo ou tecla para acionamento.
Utilizar uma chave para selecionar a tecla ou o clock de entrada para o acionamento da
contagem.

SUBDESIGN count10

clk1Hz, chave, button: input;

count[3..0]: output;

VARIABLE

d[3..0] : DFF;

BEGIN

IF chave THEN

d[].clk = clk1Hz;

IF d[].q > 9 THEN

d[].d = 0;

ELSE

d[].d = d[].q + 1;

END IF;

ELSE

d[].clk = button;

IF button THEN

IF d[].q > 9 THEN

d[].d = 0;

ELSE

d[].d = d[].q + 1;

END IF;

ELSE

d[].d = d[].q;

END IF;
END IF;

END IF;

count[] = d[];

END;
Chave de velocidade: fazer um código em AHDL para impressão dos números 1, 2 ou 3 em um
Display de 7 Segmentos.

 A tecla que for pressionada mais rápido determinará o valor a ser impresso no
display de 7 segmentos.

 Deverá existir uma chave que dará o inicio ao processo, acendendo um LED.

SUBDESIGN quiz

clk1Hz, chave, button1, button2, button3, reset: input;

count[3..0], led: output;

VARIABLE

ss : MACHINE OF BITS(count[3..0])

WITH STATES (

s0 = B"00000001",

s1 = B"00000001",

s2 = B"00110000",

s3 = B"01101101",

s4 = B"01111001"

);

BEGIN

ss.clk = clk1Hz;

ss.reset = reset;

TABLE

ss, chave, button1, button2, button3 => ss, led;

s0, 0, x, x, x => s0, 0;

s0, 1, x, x, x, => s1, 1;

s1, 0, x, x, x, => s0, 0;

s1, 1, 1, 0, 0, => s2, 1;

s1, 1, 0, 1, 0, => s3, 1;


s1, 1, 0, 0, 1, => s4, 1;

s2, 0, x, x, x, => s0, 0;

s3, 0, x, x, x, => s0, 0;

s4, 0, x, x, x, => s0, 0;

TABLE END;

END;

Das könnte Ihnen auch gefallen