mirror of
https://github.com/j-core/j-core-ice40.git
synced 2026-03-03 18:16:04 +00:00
56 lines
1.9 KiB
VHDL
56 lines
1.9 KiB
VHDL
library ieee;
|
|
use ieee.std_logic_1164.all;
|
|
|
|
use work.cpu2j0_pack.all;
|
|
use work.decode_pack.all;
|
|
use work.cpu2j0_components_pack.all;
|
|
use work.mult_pkg.all;
|
|
|
|
package datapath_pack is
|
|
|
|
-- SR bit Positions
|
|
constant T : integer range 0 to 9 := 0;
|
|
constant S : integer range 0 to 9 := 1;
|
|
constant I0 : integer range 0 to 9 := 4;
|
|
constant I1 : integer range 0 to 9 := 5;
|
|
constant I2 : integer range 0 to 9 := 6;
|
|
constant I3 : integer range 0 to 9 := 7;
|
|
constant Q : integer range 0 to 9 := 8;
|
|
constant M : integer range 0 to 9 := 9;
|
|
|
|
component datapath is port (
|
|
clk : in std_logic;
|
|
rst : in std_logic;
|
|
debug : in std_logic;
|
|
enter_debug : out std_logic;
|
|
slot : out std_logic;
|
|
reg : in reg_ctrl_t;
|
|
func : in func_ctrl_t;
|
|
sr_ctrl : in sr_ctrl_t;
|
|
mac : in mac_ctrl_t;
|
|
mem : in mem_ctrl_t;
|
|
instr : in instr_ctrl_t;
|
|
pc_ctrl : in pc_ctrl_t;
|
|
buses : in buses_ctrl_t;
|
|
db_lock : out std_logic;
|
|
db_o : out cpu_data_o_t;
|
|
db_i : in cpu_data_i_t;
|
|
inst_o : out cpu_instruction_o_t;
|
|
inst_i : in cpu_instruction_i_t;
|
|
debug_o : out cpu_debug_o_t;
|
|
debug_i : in cpu_debug_i_t;
|
|
macin1 : out std_logic_vector(31 downto 0);
|
|
macin2 : out std_logic_vector(31 downto 0);
|
|
mach : in std_logic_vector(31 downto 0);
|
|
macl : in std_logic_vector(31 downto 0);
|
|
mac_s : out std_logic;
|
|
t_bcc : out std_logic;
|
|
ibit : out std_logic_vector(3 downto 0);
|
|
if_dr : out std_logic_vector(15 downto 0);
|
|
if_stall : out std_logic;
|
|
mask_int : out std_logic;
|
|
illegal_delay_slot : out std_logic;
|
|
illegal_instr : out std_logic);
|
|
end component datapath;
|
|
end package;
|