URL
https://opencores.org/ocsvn/idea/idea/trunk
Subversion Repositories idea
[/] [idea/] [trunk/] [behavioral/] [idea_machine/] [heart_ctrl_bopo.vbe] - Rev 9
Compare with Previous | Blame | View Log
-- VHDL data flow description generated from `heart_ctrl_bopo`
-- date : Mon Sep 10 23:10:23 2001
-- Entity Declaration
ENTITY heart_ctrl_bopo IS
PORT (
ck : in BIT; -- ck
reset : in BIT; -- reset
start : in BIT; -- start
key_ready : in BIT; -- key_ready
round : out bit_vector(2 DOWNTO 0) ; -- round
en1 : out BIT; -- en1
en2 : out BIT; -- en2
en3 : out BIT; -- en3
en4 : out BIT; -- en4
en5 : out BIT; -- en5
en6 : out BIT; -- en6
en7 : out BIT; -- en7
en_out : out BIT; -- en_out
en_key_out : out BIT; -- en_key_out
sel_in : out BIT; -- sel_in
finish : out BIT; -- finish
vdd : in BIT; -- vdd
vss : in BIT -- vss
);
END heart_ctrl_bopo;
-- Architecture Declaration
ARCHITECTURE behaviour_data_flow OF heart_ctrl_bopo IS
SIGNAL current_state : REG_VECTOR(6 DOWNTO 0) REGISTER; -- current_state
SIGNAL aux303 : BIT; -- aux303
SIGNAL aux302 : BIT; -- aux302
SIGNAL aux300 : BIT; -- aux300
SIGNAL aux299 : BIT; -- aux299
SIGNAL aux279 : BIT; -- aux279
SIGNAL aux278 : BIT; -- aux278
SIGNAL aux275 : BIT; -- aux275
SIGNAL aux273 : BIT; -- aux273
SIGNAL aux269 : BIT; -- aux269
SIGNAL aux266 : BIT; -- aux266
SIGNAL aux265 : BIT; -- aux265
SIGNAL aux263 : BIT; -- aux263
SIGNAL aux257 : BIT; -- aux257
SIGNAL aux255 : BIT; -- aux255
SIGNAL aux252 : BIT; -- aux252
SIGNAL aux251 : BIT; -- aux251
SIGNAL aux250 : BIT; -- aux250
SIGNAL aux245 : BIT; -- aux245
SIGNAL aux244 : BIT; -- aux244
SIGNAL aux243 : BIT; -- aux243
SIGNAL aux242 : BIT; -- aux242
SIGNAL aux241 : BIT; -- aux241
SIGNAL aux240 : BIT; -- aux240
SIGNAL aux239 : BIT; -- aux239
SIGNAL aux237 : BIT; -- aux237
SIGNAL aux236 : BIT; -- aux236
SIGNAL aux234 : BIT; -- aux234
SIGNAL aux231 : BIT; -- aux231
SIGNAL aux229 : BIT; -- aux229
SIGNAL aux228 : BIT; -- aux228
SIGNAL aux227 : BIT; -- aux227
SIGNAL aux226 : BIT; -- aux226
SIGNAL aux224 : BIT; -- aux224
SIGNAL aux223 : BIT; -- aux223
SIGNAL aux221 : BIT; -- aux221
SIGNAL aux220 : BIT; -- aux220
SIGNAL aux218 : BIT; -- aux218
SIGNAL aux217 : BIT; -- aux217
SIGNAL aux215 : BIT; -- aux215
SIGNAL aux281 : BIT; -- aux281
SIGNAL aux282 : BIT; -- aux282
SIGNAL aux285 : BIT; -- aux285
BEGIN
aux285 <= (not (current_state (3)) and current_state (4));
aux282 <= (not (current_state (4)) and current_state (2));
aux281 <= (current_state (3) and not (reset) and current_state (6));
aux215 <= (current_state (5) and current_state (1));
aux217 <= not ((not (current_state (0)) or current_state (5)));
aux218 <= not ((current_state (2) or not (aux217)));
aux220 <= (not (current_state (5)) and current_state (2));
aux221 <= (current_state (5) and current_state (0));
aux223 <= not ((not (current_state (0)) or not (current_state (1))));
aux224 <= not ((not (current_state (2)) or not (aux223)));
aux226 <= not ((current_state (5) or current_state (0)));
aux227 <= (not (current_state (2)) and current_state (1));
aux228 <= (not (current_state (0)) and not (aux215));
aux229 <= (not (current_state (2)) and current_state (3) and aux228);
aux231 <= (not (current_state (5)) and current_state (1));
aux234 <= (not (current_state (5)) and not (current_state (1)));
aux236 <= (not (current_state (2)) and not (current_state (1)));
aux237 <= not ((not (current_state (1)) or current_state (0)));
aux239 <= (not (current_state (1)) and current_state (5));
aux240 <= (current_state (0) and aux239);
aux241 <= (aux282 and aux240);
aux242 <= (not (current_state (2)) or aux234);
aux243 <= (current_state (5) xor current_state (1));
aux244 <= (current_state (0) and aux234);
aux245 <= (current_state (2) and current_state (0));
aux250 <= (current_state (4) and current_state (2) and not ((current_state
(1) or current_state (0))));
aux251 <= (aux217 or not ((current_state (1) or current_state (0))));
aux252 <= not ((current_state (1) or not (aux245)));
aux255 <= (not (current_state (0)) and current_state (2));
aux257 <= (not (current_state (1)) and current_state (0));
aux263 <= (current_state (0) and aux243);
aux265 <= (not (current_state (2)) and not (aux226));
aux266 <= (not (current_state (2)) and aux223);
aux269 <= (current_state (4) and not (current_state (0)) and aux239);
aux273 <= not ((not (current_state (0)) or aux231));
aux275 <= not ((not (current_state (2)) or current_state (1)));
aux278 <= (aux226 or aux231);
aux279 <= (current_state (5) and not (aux257));
aux299 <= (current_state (3) or (current_state (2) and not ((current_state
(1) or current_state (0)))));
aux300 <= not ((not (current_state (2)) or aux239));
aux302 <= not ((not (aux234) and aux255));
aux303 <= not ((not (current_state (2)) or aux215 or aux244));
label0 : BLOCK ((ck and not (ck'STABLE)) = '1')
BEGIN
current_state (0) <= GUARDED (not (reset) and ((not (current_state (6)) and (aux231 or aux220
or (current_state (4) and aux226) or (aux275 and aux285) or
(not (current_state (0)) and not (current_state (5)) and start
and key_ready) or (not (current_state (4)) and current_state
(0) and not (aux275)) or (current_state (3) and not ((current_state
(2) or aux237))))) or (current_state (6) and (not (current_state
(2)) or current_state (3) or not (aux243) or aux273) and (current_state
(3) or not (aux273) or (not (current_state (4)) and not (aux236)))
and (not (current_state (3)) or (not (current_state (2)) and
aux231) or (not (current_state (0)) and aux239) or aux241) and
(current_state (4) or (not (current_state (3)) and aux273) or
(current_state (3) and aux241)))));
END BLOCK label0;
label1 : BLOCK ((ck and not (ck'STABLE)) = '1')
BEGIN
current_state (1) <= GUARDED (not (reset) and ((current_state (6) and (not (current_state
(3)) or not (current_state (4)) or current_state (1)) and (current_state
(4) or current_state (3) or aux275 or aux251) and (not (current_state
(3)) or current_state (4) or aux231 or aux239 or aux257) and
(not (current_state (2)) or not (current_state (3)) or (current_state
(4) and aux221) or (not (current_state (4)) and (aux231 or aux257)))
and (not (current_state (4)) or aux299 or (not (current_state
(2)) and (aux223 or not (aux243))))) or (not (current_state
(6)) and ((not (current_state (3)) and not (current_state (4))
and aux252) or (aux285 and (current_state (2) or aux234) and
not ((current_state (1) xor current_state (0)))) or (not (current_state
(3)) and not (current_state (4)) and not (current_state (2))
and (aux215 or aux244)) or (not (current_state (3)) and current_state
(2) and not ((not (aux217) and (current_state (0) or aux243))))
or (current_state (3) and (not (current_state (4)) or not (current_state
(5)) or aux236) and ((current_state (2) and not ((current_state
(0) xor aux239))) or (not (current_state (2)) and (aux237 or
aux273))))))));
END BLOCK label1;
label2 : BLOCK ((ck and not (ck'STABLE)) = '1')
BEGIN
current_state (2) <= GUARDED (not (reset) and ((not (current_state (6)) and (not (current_state
(4)) or current_state (3) or aux300 or aux278) and (not (current_state
(3)) or aux220 or (not (current_state (4)) and aux275) or aux266)
and (current_state (4) or current_state (3) or aux217 or aux231
or (current_state (2) and aux239))) or (current_state (6) and
(not (current_state (4)) or current_state (3) or aux252 or (not
(current_state (2)) and (current_state (5) xor current_state
(0)))) and ((not (current_state (3)) and current_state (2) and
not (current_state (5)) and not (aux237)) or (not (current_state
(2)) and not (current_state (3)) and not (aux244)) or (not (current_state
(4)) and current_state (3) and (aux226 or aux239) and aux242)
or (current_state (4) and (not (current_state (3)) or aux240))))));
END BLOCK label2;
label3 : BLOCK ((ck and not (ck'STABLE)) = '1')
BEGIN
current_state (3) <= GUARDED (not (reset) and ((not (current_state (3)) and not (current_state
(2)) and current_state (6) and aux226) or (current_state (6)
and current_state (3) and not ((not (current_state (4)) and
current_state (5))) and (not (current_state (4)) or (current_state
(2) and aux234) or (not (current_state (2)) and aux240))) or
(not (current_state (3)) and current_state (6) and (not (current_state
(1)) or current_state (4)) and (current_state (4) or (current_state
(5) xor current_state (0))) and (not (current_state (4)) or
(aux234 and aux255) or (not (current_state (2)) and aux263)))
or (not (current_state (6)) and ((aux231 and aux255) or (current_state
(4) and not (current_state (2)) and aux234) or (aux285 and aux278)
or aux229 or aux241))));
END BLOCK label3;
label4 : BLOCK ((ck and not (ck'STABLE)) = '1')
BEGIN
current_state (4) <= GUARDED (not (reset) and ((not (current_state (6)) and (current_state
(4) or current_state (3) or aux218 or aux224) and (not (current_state
(3)) or (not (current_state (2)) and aux257) or (current_state
(2) and aux217) or (not (current_state (4)) and aux224)) and
(not (current_state (4)) or aux278 or aux299)) or (current_state
(6) and (not (current_state (3)) or ((current_state (4) or (current_state
(2) and current_state (1))) and ((not (current_state (0)) and
current_state (5)) or aux227))) and (current_state (3) or (not
(current_state (4)) and aux220) or (not (current_state (0))
and aux215) or (current_state (2) and not ((current_state (1)
or current_state (0)))) or (not ((current_state (4) or current_state
(2))) and not (aux263))))));
END BLOCK label4;
label5 : BLOCK ((ck and not (ck'STABLE)) = '1')
BEGIN
current_state (5) <= GUARDED (not (reset) and ((not (current_state (6)) and current_state
(3) and current_state (0) and aux242) or (not (current_state
(4)) and not ((not (aux255) or not (aux215)))) or (not (current_state
(6)) and aux285 and (aux234 or not (aux265))) or (not (current_state
(3)) and ((current_state (4) and aux245) or (not (current_state
(4)) and aux217))) or (current_state (6) and (current_state
(3) or (not (current_state (2)) and aux279) or (not (current_state
(4)) and aux302)) and (not (current_state (3)) or aux269 or
(aux282 and (current_state (1) xor aux221))))));
END BLOCK label5;
label6 : BLOCK ((ck and not (ck'STABLE)) = '1')
BEGIN
current_state (6) <= GUARDED (not (reset) and ((current_state (6) and (not (current_state
(3)) or (current_state (4) and not (aux245) and aux239) or (not
((not (current_state (1)) or current_state (4))) and (not (current_state
(5)) or aux255))) and ((not (current_state (2)) and not (aux279))
or (not (current_state (4)) and not ((current_state (2) and
aux221))) or aux299)) or (not (current_state (6)) and (not (current_state
(4)) or current_state (3) or (not (current_state (2)) and not
(current_state (5))) or aux303) and (aux285 or (current_state
(3) and not (current_state (2)) and current_state (0)) or (not
(current_state (3)) and aux244) or (not (current_state (4))
and (aux279 or aux265))))));
END BLOCK label6;
finish <= (not (current_state (4)) and not (current_state (2)) and aux215
and aux281);
sel_in <= (reset or (not (current_state (6)) and (current_state (1) or
aux282 or (current_state (4) and not (aux226)) or not (((not
(current_state (3)) or current_state (5)) and not (aux221)))))
or (current_state (6) and (current_state (3) or (current_state
(4) and not (aux224)) or (not (current_state (4)) and (current_state
(2) or current_state (1) or current_state (0)))) and (not (current_state
(3)) or not (current_state (1)) or aux218 or (not (current_state
(4)) and current_state (2) and aux221) or (current_state (4)
and ((not (current_state (2)) and not (current_state (0))) or
aux220)))));
en_key_out <= (not (reset) and (not (current_state (6)) or (not (current_state
(4)) and current_state (3) and aux227)) and (aux229 or ((not
(current_state (4)) or current_state (2)) and aux226 and (current_state
(2) or current_state (1) or (start and key_ready)))));
en_out <= (not (current_state (4)) and current_state (2) and aux231 and
aux281);
en7 <= (not (reset) and (not (current_state (6)) or current_state (4)
or aux236 or (not (current_state (5)) and not (aux237))) and
(current_state (6) or aux241) and (not (current_state (6)) or
(current_state (3) and (not (current_state (4)) or aux221 or
(current_state (2) and aux234)))));
en6 <= (not (reset) and ((not (current_state (6)) and current_state
(4) and (not (current_state (3)) or aux244) and (aux231 or (not
(current_state (5)) and not (aux245)))) or (current_state (6)
and current_state (4) and aux242 and (not (current_state (3))
or aux240) and (not (current_state (0)) or aux243))));
en5 <= (not (reset) and ((not (current_state (3)) and aux250) or (current_state
(6) and ((not (current_state (3)) and not (current_state (4))
and current_state (2) and aux231) or (not (current_state (0))
and (current_state (4) or current_state (2)) and aux215) or
(current_state (4) and current_state (3) and ((not (current_state
(0)) and current_state (5)) or aux227))))));
en4 <= (not (current_state (3)) and not (reset) and current_state (6)
and (not (current_state (4)) or aux218) and (aux227 or aux251));
en3 <= (not (reset) and not (current_state (4)) and current_state (5)
and not (aux252) and (not (current_state (6)) or (not (current_state
(3)) and aux236)));
en2 <= (not (reset) and (current_state (6) or not ((not (current_state
(2)) or aux231))) and (current_state (4) or (current_state (6)
and aux221)) and (not (current_state (6)) or aux245 or (not
(current_state (2)) and aux215)) and (not (current_state (3))
or (not (current_state (4)) and aux240)));
en1 <= (not (reset) and ((current_state (3) and current_state (0) and
(not (current_state (2)) or not (current_state (5)))) or (aux217
and (not (current_state (4)) or (current_state (2) and current_state
(1))))) and (not (current_state (6)) or (not (current_state
(3)) and current_state (2) and aux244)));
round (0) <= (reset or (not (current_state (6)) and ((current_state (3) and
aux220) or (not (current_state (4)) and current_state (2) and
current_state (1)) or (current_state (2) and aux217) or (current_state
(5) and current_state (4) and (current_state (2) or aux237))
or (not (current_state (3)) and not (aux234) and (current_state
(4) or (not (current_state (2)) and (aux226 or aux257))))))
or (current_state (6) and ((current_state (4) and not (current_state
(5)) and not (aux245)) or (not (current_state (3)) and ((not
(current_state (4)) and not (current_state (2)) and aux257)
or aux250)) or (not (current_state (4)) and ((not (aux255) and
aux215) or (aux255 and aux243))) or (current_state (3) and ((not
(current_state (4)) and (aux217 or aux231)) or (current_state
(4) and ((not (aux215) and aux245) or (not (current_state (2))
and aux237))))))));
round (1) <= (reset or (not (current_state (6)) and current_state (3) and
not (aux236) and (current_state (0) or aux243)) or (not (current_state
(6)) and current_state (4) and (not (current_state (3)) or current_state
(1)) and (current_state (3) or aux257 or aux265)) or (not (current_state
(4)) and not (current_state (6)) and not (current_state (3))
and (current_state (2) or aux266) and (aux221 or aux266 or aux228))
or (current_state (6) and (not (current_state (4)) or current_state
(3) or current_state (2) or not ((current_state (1) or aux221)))
and (not (current_state (4)) or not (current_state (2)) or current_state
(3) or (current_state (1) xor current_state (0))) and ((current_state
(3) and ((not (current_state (5)) and current_state (4)) or
(not (current_state (4)) and not (aux234) and (not (aux255)
or not (aux215))))) or (not (current_state (3)) and (current_state
(4) or aux255 or aux263)))));
round (2) <= (reset or (current_state (6) and (current_state (3) or (current_state
(4) and ((not (current_state (2)) and current_state (0)) or
aux228)) or (not (current_state (4)) and not (aux236) and (current_state
(1) xor aux221))) and (not (current_state (3)) or (not (current_state
(2)) and aux234) or (current_state (2) and aux231) or aux269
or (not (current_state (4)) and (aux227 or (current_state (2)
and not (aux237)))))) or (not (current_state (6)) and (not ((not
(current_state (5)) or not (current_state (4)) or current_state
(2))) or (current_state (2) and aux285 and aux244) or not ((not
(aux215) and (not (current_state (0)) or not (aux282) or aux234)))
or (current_state (3) and (aux226 or (not (current_state (4))
and not (current_state (2)) and not (current_state (5))) or
(current_state (4) and not (aux234)))))));
END;