Line 153... |
Line 153... |
------------------ -------- --------------------------------------------------
|
------------------ -------- --------------------------------------------------
|
-- Seth Henry 07/19/06 Design Start
|
-- Seth Henry 07/19/06 Design Start
|
-- Seth Henry 03/13/15 Added "Almost Equal" instruction
|
-- Seth Henry 03/13/15 Added "Almost Equal" instruction
|
-- Seth Henry 12/19/19 Renamed to o8_alu16 to fit "theme"
|
-- Seth Henry 12/19/19 Renamed to o8_alu16 to fit "theme"
|
-- Seth Henry 04/10/20 Comment and code cleanup
|
-- Seth Henry 04/10/20 Comment and code cleanup
|
|
-- Seth Henry 04/16/20 Modified to use Open8 bus record
|
|
|
library ieee;
|
library ieee;
|
use ieee.std_logic_1164.all;
|
use ieee.std_logic_1164.all;
|
use ieee.std_logic_arith.all;
|
use ieee.std_logic_arith.all;
|
use ieee.std_logic_unsigned.all;
|
use ieee.std_logic_unsigned.all;
|
Line 165... |
Line 166... |
library work;
|
library work;
|
use work.open8_pkg.all;
|
use work.open8_pkg.all;
|
|
|
entity o8_alu16 is
|
entity o8_alu16 is
|
generic(
|
generic(
|
Reset_Level : std_logic;
|
|
Address : ADDRESS_TYPE
|
Address : ADDRESS_TYPE
|
);
|
);
|
port(
|
port(
|
Clock : in std_logic;
|
|
Reset : in std_logic;
|
|
--
|
|
Open8_Bus : in OPEN8_BUS_TYPE;
|
Open8_Bus : in OPEN8_BUS_TYPE;
|
Rd_Data : out DATA_TYPE;
|
Rd_Data : out DATA_TYPE;
|
Interrupt : out std_logic
|
Interrupt : out std_logic
|
);
|
);
|
end entity;
|
end entity;
|
|
|
architecture behave of o8_alu16 is
|
architecture behave of o8_alu16 is
|
|
|
|
alias Clock is Open8_Bus.Clock;
|
|
alias Reset is Open8_Bus.Reset;
|
|
|
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
-- Opcode Definitions (should match the table above)
|
-- Opcode Definitions (should match the table above)
|
-- Register Manipulation
|
-- Register Manipulation
|
constant OP_T0X : std_logic_vector(4 downto 0) := "00000";
|
constant OP_T0X : std_logic_vector(4 downto 0) := "00000";
|
constant OP_TX0 : std_logic_vector(4 downto 0) := "00001";
|
constant OP_TX0 : std_logic_vector(4 downto 0) := "00001";
|