Beruflich Dokumente
Kultur Dokumente
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
count[5..0]: output;
VARIABLE
d[5..0] : DFF;
BEGIN
d[].clk = clk;
IF up_down THEN
d[].d = d[].q + 1;
d[].d = 0;
END IF;
ELSE
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;
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
count[3..0]: output;
VARIABLE
d[3..0] : DFF;
BEGIN
IF chave THEN
d[].clk = clk1Hz;
d[].d = 0;
ELSE
d[].d = d[].q + 1;
END IF;
ELSE
d[].clk = button;
IF button 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
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
TABLE END;
END;