OpenCores
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;

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.