OpenCores
URL https://opencores.org/ocsvn/idea/idea/trunk

Subversion Repositories idea

[/] [idea/] [trunk/] [behavioral/] [key_regulator/] [kontrol_utama_invadd.vbe] - Rev 9

Compare with Previous | Blame | View Log

-- VHDL data flow description generated from `kontrol_utama_invadd`
--              date : Sun Jul 29 23:45:28 2001


-- Entity Declaration

ENTITY kontrol_utama_invadd IS
  PORT (
  clk : in BIT; -- clk
  rst : in BIT; -- rst
  start : in BIT;       -- start
  n_dtin : in bit_vector(4 DOWNTO 0) ;  -- n_dtin
  n_dtout : in bit_vector(4 DOWNTO 0) ; -- n_dtout
  c_cdtin : out BIT;    -- c_cdtin
  en_cdtin : out BIT;   -- en_cdtin
  c_cdtout : out BIT;   -- c_cdtout
  en_cdtout : out BIT;  -- en_cdtout
  en_out : out BIT;     -- en_out
  en_in : out BIT;      -- en_in
  finish : out BIT;     -- finish
  vdd : in BIT; -- vdd
  vss : in BIT  -- vss
  );
END kontrol_utama_invadd;


-- Architecture Declaration

ARCHITECTURE behaviour_data_flow OF kontrol_utama_invadd IS
  SIGNAL current_state : REG_VECTOR(2 DOWNTO 0) REGISTER;       -- current_state
  SIGNAL aux27 : BIT;           -- aux27
  SIGNAL aux25 : BIT;           -- aux25
  SIGNAL aux21 : BIT;           -- aux21
  SIGNAL aux20 : BIT;           -- aux20
  SIGNAL auxinit1 : BIT;                -- auxinit1
  SIGNAL auxinit2 : BIT;                -- auxinit2
  SIGNAL aux29 : BIT;           -- aux29
  SIGNAL aux30 : BIT;           -- aux30

BEGIN
  aux30 <= (not (rst) and start and aux29 and aux20);
  aux29 <= (not (current_state (1)) and current_state (2));
  auxinit2 <= ((not (current_state (2)) and not (current_state (1)) and not
(rst)) or aux27);
  auxinit1 <= (not (rst) and not ((current_state (2) xor current_state (1))));
  aux20 <= not ((not (n_dtout (3)) and not (n_dtout (2)) and not (n_dtout
(0)) and n_dtout (4) and n_dtout (1)));
  aux21 <= (not (rst) and start and not (aux20));
  aux25 <= (n_dtin (4) or n_dtin (3) or n_dtin (2) or n_dtin (1) or n_dtin
(0));
  aux27 <= (not (rst) and current_state (2) and (current_state (1) or (start
and not (aux25) and aux20)));
  label0 : BLOCK ((not (clk) and not (clk'STABLE)) = '1')
  BEGIN
    current_state (0) <= GUARDED ((not (current_state (2)) and not (rst) and (not (current_state
(1)) or current_state (0))) or aux27);
  END BLOCK label0;
  label1 : BLOCK ((not (clk) and not (clk'STABLE)) = '1')
  BEGIN
    current_state (1) <= GUARDED ((not (rst) and not (aux29)) or aux21);
  END BLOCK label1;
  label2 : BLOCK ((not (clk) and not (clk'STABLE)) = '1')
  BEGIN
    current_state (2) <= GUARDED (rst or (current_state (1) and current_state (0)) or (not (start)
and not (current_state (1))) or not ((current_state (2) xor
current_state (1))));
  END BLOCK label2;

finish <= ((not (current_state (2)) and not (rst) and current_state (1))
or (aux29 and aux21));

en_in <= aux30;

en_out <= auxinit1;

en_cdtout <= auxinit2;

c_cdtout <= (aux25 and aux30);

en_cdtin <= auxinit2;

c_cdtin <= auxinit1;
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.