Você está na página 1de 1

DATAPATH

Sim_2Hz & Sim_2Hz & Sim_2Hz & … & Sim_2Hz Pisca


E5
16 16
E4
CLK_1Hz Termo
R1 Set (+99)

DECODER_TERMOMETRICO
-1 8 E E6
R1

0
16

MUX
8 LOAD(STEP) Set (+15)

2:1
Termo(15..0)

0
Penalty

0
MUX

MUX
Counter_time* E5 E

2:1

2:1
8 8 Counter_round LEDR(15..0)
0 8 (+STEP) 16

1
(-1) Pisca 16
Control E5 CLK
tc < 1 tc=0
CLK 8 8
DecBCD Y T_BCD(7.. 4) dec7seg
end_game T_BCD 4
T_out 4 7
E1 end_round
E5
R HEX7
Div_Freq**
R1
R T_BCD(3.. 0)
E5 dec7seg
E3 E 4 7
CLK CLK_1Hz
Counter_seq
SW(7.. 0) Sim_2Hz (+1) HEX6
CLK_1Hz
8 tc=4

3 “1111111”
end_sequence X
7
HEX5
00

-2 Alpha(3)
8 Penalty “00000000”
01

0
MUX
-4
MUX

2:1
4:1

8
8 8
10

-6 “00” & X & “000”

1
“1111111”
8 8 7
-8 +
11

Alpha(2)
8 “0000” & Beta HEX4
“00000000”
0
MUX
8 8

2:1
SEL “000” & X & “00” Seq Seq_BCD
1 8
SW(1.. 0) 8 + + DecBCD “1111111”
R1 2 2 Alpha(1) 8 8
R 8 7
“00000000” HEX3
0

E1
MUX

E
8
2:1

REG “0000” & X & “0” 8


1

8 “1111111”
+
CLK Alpha(0) 7
8
“00000000”
0

HEX2
MUX

8 E1
2:1

SW(7.. 0) & Seq_BCD 7 7


“00000” & X 8 “1111” dec7seg
1

Play

1 0
MUX
2:1
7

0
16 8 L 7
16

MUX
R1

2:1
R
Alpha Seq_BCD(3.. 0) dec7seg 7

1 0
MUX
7

2:1
4 7

1
E4 E
SW(7.. 0) SW(3.. 0) dec7seg 7 HEX1
REG 8 8 7 7 E4
R1 R Beta
7 7 E1
CLK 4 “1111”
E2 E dec7seg

1 0
MUX
2:1
7 7

0
7

MUX
8 REG “00” & SEL(1.. 0) dec7seg

2:1
Play(7.. 0) Seq_BCD(3.. 0) 7

1 0
MUX
COMPARA dec7seg

2:1
8 Control 7

1
DOR = CLK 7
Play(15.. 8) SW(3.. 0) dec7seg 7
8 7
7 E4 E3 HEX0
CLK

E1 E2 E3 E4 E5 E6 end_game end_sequence end_round


R1

CONTROLE
BTN(1)
KEY(1) enter
Button
KEY(0) sync BTN(0)
CLK reset

CLK

* No código do counter_time, é necessário declarar a biblioteca IEEE.std_logic_signed.all para o correto cálculo do end_time. Após end_time for
ativado, o contador deve ficar fixado em "0000" até ser setado pelo estado Init.
** Foram fornecidos tanto o divisor de frequência para uso com o emulador online quanto para a placa DE2. Lab4 Lab5 Lab6 Lab7 Dado

Você também pode gostar