1 |
6 |
marta |
-- VHDL data flow description generated from `ctr_enkey`
|
2 |
|
|
-- date : Tue Jul 31 14:21:57 2001
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
-- Entity Declaration
|
6 |
|
|
|
7 |
|
|
ENTITY ctr_enkey IS
|
8 |
|
|
PORT (
|
9 |
|
|
clk : in BIT; -- clk
|
10 |
|
|
rst : in BIT; -- rst
|
11 |
|
|
start : in BIT; -- start
|
12 |
|
|
count : in bit_vector(2 DOWNTO 0) ; -- count
|
13 |
|
|
en_shft : out BIT; -- en_shft
|
14 |
|
|
en_count : out BIT; -- en_count
|
15 |
|
|
sel1 : out BIT; -- sel1
|
16 |
|
|
sel2 : out BIT; -- sel2
|
17 |
|
|
c_count : out BIT; -- c_count
|
18 |
|
|
finish : out BIT; -- finish
|
19 |
|
|
en_out : out BIT; -- en_out
|
20 |
|
|
vdd : in BIT; -- vdd
|
21 |
|
|
vss : in BIT -- vss
|
22 |
|
|
);
|
23 |
|
|
END ctr_enkey;
|
24 |
|
|
|
25 |
|
|
|
26 |
|
|
-- Architecture Declaration
|
27 |
|
|
|
28 |
|
|
ARCHITECTURE behaviour_data_flow OF ctr_enkey IS
|
29 |
|
|
SIGNAL current_state : REG_VECTOR(3 DOWNTO 0) REGISTER; -- current_state
|
30 |
|
|
SIGNAL aux44 : BIT; -- aux44
|
31 |
|
|
SIGNAL aux38 : BIT; -- aux38
|
32 |
|
|
SIGNAL aux35 : BIT; -- aux35
|
33 |
|
|
SIGNAL aux33 : BIT; -- aux33
|
34 |
|
|
SIGNAL aux32 : BIT; -- aux32
|
35 |
|
|
SIGNAL auxinit1 : BIT; -- auxinit1
|
36 |
|
|
SIGNAL aux40 : BIT; -- aux40
|
37 |
|
|
SIGNAL aux41 : BIT; -- aux41
|
38 |
|
|
|
39 |
|
|
BEGIN
|
40 |
|
|
aux41 <= (not (current_state (3)) or current_state (2));
|
41 |
|
|
aux40 <= (not (count (2)) and not (count (1)) and start and count (0));
|
42 |
|
|
auxinit1 <= (not (rst) and not ((current_state (0) and not (current_state
|
43 |
|
|
(1)) and not (current_state (3)))) and ((not (count (2)) and
|
44 |
|
|
not (count (1)) and start) or not ((current_state (3) and not
|
45 |
|
|
((current_state (2) or current_state (0)))))));
|
46 |
|
|
aux32 <= (not (count (0)) and current_state (3) and not (count (2)) and
|
47 |
|
|
not (count (1)) and start);
|
48 |
|
|
aux33 <= (not (current_state (3)) and current_state (1));
|
49 |
|
|
aux35 <= (start and count (2) and count (1) and count (0));
|
50 |
|
|
aux38 <= (current_state (2) or current_state (1));
|
51 |
|
|
aux44 <= not ((not (current_state (1)) and (not (current_state (3)) or
|
52 |
|
|
start)));
|
53 |
|
|
label0 : BLOCK ((not (clk) and not (clk'STABLE)) = '1')
|
54 |
|
|
BEGIN
|
55 |
|
|
current_state (0) <= GUARDED (not (rst) and (not (current_state (0)) or current_state (2)
|
56 |
|
|
or not (aux33)) and (not (current_state (3)) or current_state
|
57 |
|
|
(0) or aux38 or aux35));
|
58 |
|
|
END BLOCK label0;
|
59 |
|
|
label1 : BLOCK ((not (clk) and not (clk'STABLE)) = '1')
|
60 |
|
|
BEGIN
|
61 |
|
|
current_state (1) <= GUARDED (not (rst) and (not (current_state (0)) or current_state (1)
|
62 |
|
|
or not (aux41)) and (current_state (3) or current_state (0)
|
63 |
|
|
or not (aux38)) and (not (current_state (3)) or current_state
|
64 |
|
|
(0) or aux38 or aux40));
|
65 |
|
|
END BLOCK label1;
|
66 |
|
|
label2 : BLOCK ((not (clk) and not (clk'STABLE)) = '1')
|
67 |
|
|
BEGIN
|
68 |
|
|
current_state (2) <= GUARDED (not (rst) and ((current_state (0) and aux33) or (current_state
|
69 |
|
|
(2) and not (aux33)) or (not (current_state (0)) and aux32)));
|
70 |
|
|
END BLOCK label2;
|
71 |
|
|
label3 : BLOCK ((not (clk) and not (clk'STABLE)) = '1')
|
72 |
|
|
BEGIN
|
73 |
|
|
current_state (3) <= GUARDED (rst or current_state (2) or (current_state (3) and current_state
|
74 |
|
|
(0)) or aux44);
|
75 |
|
|
END BLOCK label3;
|
76 |
|
|
|
77 |
|
|
en_out <= (not (rst) and (aux33 or (not ((current_state (2) or current_state
|
78 |
|
|
(0))) and aux32)));
|
79 |
|
|
|
80 |
|
|
finish <= (not (rst) and ((current_state (0) and not (current_state (1))
|
81 |
|
|
and not (current_state (3))) or (current_state (3) and not ((current_state
|
82 |
|
|
(2) or current_state (0))) and aux35)));
|
83 |
|
|
|
84 |
|
|
c_count <= (not (rst) and ((current_state (3) and current_state (0)) or
|
85 |
|
|
(not (current_state (0)) and current_state (2) and not (aux33))));
|
86 |
|
|
|
87 |
|
|
sel2 <= auxinit1;
|
88 |
|
|
|
89 |
|
|
sel1 <= '0';
|
90 |
|
|
|
91 |
|
|
en_count <= auxinit1;
|
92 |
|
|
|
93 |
|
|
en_shft <= (not (rst) and not ((current_state (2) or current_state (0)))
|
94 |
|
|
and ((not (current_state (1)) and not (current_state (3))) or
|
95 |
|
|
(current_state (3) and aux40)));
|
96 |
|
|
END;
|