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

Subversion Repositories storm_core

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 18 to Rev 19
    Reverse comparison

Rev 18 → Rev 19

/storm_core/templates/MEMORY.vhd File deleted \ No newline at end of file
/storm_core/rtl/REG_FILE.vhd
29,8 → 29,9
-- ###############################################################################################
 
CTRL_I : in STD_LOGIC_VECTOR(CTRL_MSB downto 0); -- control lines
OP_ADR_I : in STD_LOGIC_VECTOR(14 downto 0); -- operand addresses
MODE_I : in STD_LOGIC_VECTOR(04 downto 0); -- current operation mode
OP_ADR_I : in STD_LOGIC_VECTOR(14 downto 0); -- operand addresses
MODE_I : in STD_LOGIC_VECTOR(04 downto 0); -- current operation mode
USR_RD_I : in STD_LOGIC; -- use USR bank
 
-- ###############################################################################################
-- ## Operand Connection ##
67,7 → 68,7
 
-- Address Busses --
signal R_ADR_PORT_A, R_ADR_PORT_B, R_ADR_PORT_C : STD_LOGIC_VECTOR(4 downto 0);
signal W_ADR_PORT : STD_LOGIC_VECTOR(4 downto 0);
signal W_ADR_PORT, MODE_INT : STD_LOGIC_VECTOR(4 downto 0);
 
-- Address Translator --
component ADR_TRANSLATION_UNIT
108,6 → 109,9
 
-- Register File Read Access ----------------------------------------------------------------------
-- ---------------------------------------------------------------------------------------------------
--- Force USR bank read ---
MODE_INT <= MODE_I when (USR_RD_I = '0') else User32_MODE;
 
--- Read Access Port A ---
read_access_port_a:
114,7 → 118,7
ADR_TRANSLATION_UNIT
port map (
REG_ADR_I => OP_ADR_I(OP_A_ADR_3 downto OP_A_ADR_0),
MODE_I => MODE_I,
MODE_I => MODE_INT,
ADR_O => R_ADR_PORT_A
);
 
123,7 → 127,7
ADR_TRANSLATION_UNIT
port map (
REG_ADR_I => OP_ADR_I(OP_B_ADR_3 downto OP_B_ADR_0),
MODE_I => MODE_I,
MODE_I => MODE_INT,
ADR_O => R_ADR_PORT_B
);
 
132,7 → 136,7
ADR_TRANSLATION_UNIT
port map (
REG_ADR_I => OP_ADR_I(OP_C_ADR_3 downto OP_C_ADR_0),
MODE_I => MODE_I,
MODE_I => MODE_INT,
ADR_O => R_ADR_PORT_C
);
 
/storm_core/rtl/CORE.vhd
268,6 → 268,7
CTRL_I => WB_CTRL, -- stage control
OP_ADR_I => OP_ADR, -- operand addresses
MODE_I => CMSR(SREG_MODE_4 downto SREG_MODE_0), -- current processor mode
USR_RD_I => OF_CTRL(CTRL_RD_USR), -- read data from USR reg bank
WB_DATA_I => WB_DATA_LINE, -- write back bus
REG_PC_I => REG_PC, -- PC for manual operations
OP_A_O => OF_OP_A, -- register A output
/storm_core/rtl/CORE_PKG.vhd
103,30 → 103,32
constant CTRL_MEM_DQ_1 : natural := 24; -- '0' = see above, '1' = halfword
constant CTRL_MEM_SE : natural := 25; -- '0' = no sign extension, '1' = sign extension
constant CTRL_MEM_RW : natural := 26; -- '0' = read, '1' = write
constant CTRL_MEM_USER : natural := 27; -- '1' = access memory with "user_mode" output
 
constant CTRL_MREG_ACC : natural := 28; -- '1' = Access machine register file
constant CTRL_MREG_M : natural := 29; -- '0' = CMSR, '1' = SMSR
constant CTRL_MREG_RW : natural := 30; -- '0' = read, '1' = write
constant CTRL_MREG_FA : natural := 31; -- '0' = whole access, '1' = flag access
constant CTRL_RD_USR : natural := 27; -- '1' = read data from USR reg bank
constant CTRL_WR_USR : natural := 28; -- '1' = write fata to USR reg bank
 
constant CTRL_CP_ACC : natural := 32; -- '1' coprocessor access
constant CTRL_CP_RW : natural := 33; -- '0' read, '1' = write
constant CTRL_CP_REG_0 : natural := 34; -- cp register address bit 0
constant CTRL_CP_REG_1 : natural := 35; -- cp register address bit 1
constant CTRL_CP_REG_2 : natural := 36; -- cp register address bit 2
constant CTRL_CP_REG_3 : natural := 37; -- cp register address bit 3
constant CTRL_MREG_ACC : natural := 29; -- '1' = Access machine register file
constant CTRL_MREG_M : natural := 30; -- '0' = CMSR, '1' = SMSR
constant CTRL_MREG_RW : natural := 31; -- '0' = read, '1' = write
constant CTRL_MREG_FA : natural := 32; -- '0' = whole access, '1' = flag access
 
constant CTRL_SHIFT_M_0 : natural := 38; -- shift mode bit 0
constant CTRL_SHIFT_M_1 : natural := 39; -- shift mode bit 1
constant CTRL_SHIFT_V_0 : natural := 40; -- shift value bit 0
constant CTRL_SHIFT_V_1 : natural := 41; -- shift value bit 1
constant CTRL_SHIFT_V_2 : natural := 42; -- shift value bit 2
constant CTRL_SHIFT_V_3 : natural := 43; -- shift value bit 3
constant CTRL_SHIFT_V_4 : natural := 44; -- shift value bit 4
constant CTRL_MSB : natural := 44; -- size of control bus
constant CTRL_CP_ACC : natural := 33; -- '1' coprocessor access
constant CTRL_CP_RW : natural := 34; -- '0' read, '1' = write
constant CTRL_CP_REG_0 : natural := 35; -- cp register address bit 0
constant CTRL_CP_REG_1 : natural := 36; -- cp register address bit 1
constant CTRL_CP_REG_2 : natural := 37; -- cp register address bit 2
constant CTRL_CP_REG_3 : natural := 38; -- cp register address bit 3
 
constant CTRL_SHIFT_M_0 : natural := 39; -- shift mode bit 0
constant CTRL_SHIFT_M_1 : natural := 40; -- shift mode bit 1
constant CTRL_SHIFT_V_0 : natural := 41; -- shift value bit 0
constant CTRL_SHIFT_V_1 : natural := 42; -- shift value bit 1
constant CTRL_SHIFT_V_2 : natural := 43; -- shift value bit 2
constant CTRL_SHIFT_V_3 : natural := 44; -- shift value bit 3
constant CTRL_SHIFT_V_4 : natural := 45; -- shift value bit 4
 
constant CTRL_MSB : natural := 45; -- size of control bus
 
-- Progress Redefinitions --
constant CTRL_MODE_0 : natural := CTRL_AF; -- mode bit 0
constant CTRL_MODE_1 : natural := CTRL_ALU_FS_0; -- mode bit 1
252,6 → 254,7
-- Matt Kennon - The Call
-- Brad Paisley - Letter To Me
-- Montgomery Gentry - Where I Come From
-- Dixie Chicks - Ready To Run
 
-- INTERNAL MNEMONICS ---------------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
354,6 → 357,7
CTRL_I : in STD_LOGIC_VECTOR(CTRL_MSB downto 0);
OP_ADR_I : in STD_LOGIC_VECTOR(14 downto 0);
MODE_I : in STD_LOGIC_VECTOR(04 downto 0);
USR_RD_I : in STD_LOGIC;
WB_DATA_I : in STD_LOGIC_VECTOR(31 downto 0);
REG_PC_I : in STD_LOGIC_VECTOR(31 downto 0);
OP_A_O : out STD_LOGIC_VECTOR(31 downto 0);
/storm_core/rtl/LOAD_STORE_UNIT.vhd
3,7 → 3,7
-- # *************************************************** #
-- # Load/Store Unit for Data Memory Access #
-- # *************************************************** #
-- # Last modified: 05.10.2011 #
-- # Last modified: 25.01.2012 #
-- #######################################################
 
library IEEE;
158,11 → 158,7
XMEM_ACC_REQ_O <= CTRL_I(CTRL_EN) and CTRL_I(CTRL_MEM_ACC);
 
--- Mode for MEM access --
if (CTRL_I(CTRL_MEM_USER) = '1') then
XMEM_MODE_O <= User32_MODE; -- force user_mode
else
XMEM_MODE_O <= MODE_I; -- current processor mode
end if;
XMEM_MODE_O <= MODE_I; -- current processor mode
 
end process MEM_DATA_INTERFACE;
 
/storm_core/rtl/FLOW_CTRL.vhd
3,7 → 3,7
-- # *************************************************** #
-- # Operation Flow Control Unit #
-- # *************************************************** #
-- # Last modified: 07.01.2012 #
-- # Last modified: 25.01.2012 #
-- #######################################################
 
library IEEE;
459,7 → 459,12
WB_CTRL <= (others => '0');
elsif (G_HALT_I = '0') then
WB_CTRL <= MEM_CTRL;
WB_CTRL(CTRL_MODE_4 downto CTRL_MODE_0) <= SREG_I(SREG_MODE_4 downto SREG_MODE_0);
--- Write back to USER register bank ---
if (MEM_CTRL(CTRL_WR_USR) = '1') then
WB_CTRL(CTRL_MODE_4 downto CTRL_MODE_0) <= User32_MODE;
else
WB_CTRL(CTRL_MODE_4 downto CTRL_MODE_0) <= SREG_I(SREG_MODE_4 downto SREG_MODE_0);
end if;
end if;
end if;
end process STAGE_BUFFER_5;
/storm_core/rtl/OPCODE_DECODER.vhd
3,7 → 3,7
-- # *************************************************** #
-- # ARM-Native OPCODE Decoding Unit #
-- # *************************************************** #
-- # Last modified: 07.01.2012 #
-- # Last modified: 25.01.2012 #
-- #######################################################
 
library IEEE;
73,6 → 73,7
variable block_t_en_v : std_logic;
variable block_t_radr_v : std_logic_vector(03 downto 0);
variable block_t_tmp_v : std_logic_vector(15 downto 0);
variable pc_in_list_v : std_logic;
begin
 
--- DEFAULT CONTROL ---
182,7 → 183,6
DEC_CTRL(CTRL_MEM_ACC) <= '1'; -- MEM_ACCESS
DEC_CTRL(CTRL_MEM_RW) <= '0'; -- MEM_READ
DEC_CTRL(CTRL_WB_EN) <= '1'; -- WB EN
DEC_CTRL(CTRL_MEM_USER) <= INSTR_REG(21); -- access in pseudo-user-mode
NEXT_DUAL_OP(0) <= '1';
DEC_CTRL(CTRL_ALU_FS_3 downto CTRL_ALU_FS_0) <= PassA; -- ALU_CTRL = PassA
REG_SEL(OP_A_IS_REG) <= '1';
230,7 → 230,6
DEC_CTRL(CTRL_MEM_ACC) <= '1'; -- MEM_ACCESS
DEC_CTRL(CTRL_MEM_RW) <= '1'; -- MEM_WRITE
DEC_CTRL(CTRL_WB_EN) <= '0'; -- WB EN
DEC_CTRL(CTRL_MEM_USER) <= INSTR_REG(21); -- access in pseudo-user-mode
NEXT_DUAL_OP(0) <= '1';
DEC_CTRL(CTRL_ALU_FS_3 downto CTRL_ALU_FS_0) <= PassA; -- ALU_CTRL = PassA
REG_SEL(OP_A_IS_REG) <= '1';
558,6 → 557,14
NEXT_DUAL_OP(4 downto 1) <= Std_Logic_Vector(unsigned(DUAL_OP(4 downto 1)) + 1);
end if;
 
pc_in_list_v := '0';
if (block_t_radr_v = C_PC_ADR) then
pc_in_list_v := '1';
end if;
DEC_CTRL(CTRL_RD_USR) <= (not INSTR_REG(20)) and INSTR_REG(22); -- read reg in USR mode
DEC_CTRL(CTRL_WR_USR) <= INSTR_REG(20) and INSTR_REG(22) and (not pc_in_list_v); -- write reg in USR mode
DEC_CTRL(CTRL_AF) <= INSTR_REG(20) and INSTR_REG(22) and pc_in_list_v; -- SMSR -> CMSR
 
temp_6 := block_t_en_v & INSTR_REG(20) & INSTR_REG(24) & INSTR_REG(21);
case temp_6 is -- L_P_W
 
596,7 → 603,6
DEC_CTRL(CTRL_MEM_ACC) <= '1'; -- MEM_ACCESS
DEC_CTRL(CTRL_MEM_RW) <= '0'; -- MEM_READ
DEC_CTRL(CTRL_WB_EN) <= '1'; -- WB EN
DEC_CTRL(CTRL_MEM_USER) <= INSTR_REG(21); -- access in pseudo-user-mode
NEXT_DUAL_OP(0) <= '1';
DEC_CTRL(CTRL_ALU_FS_3 downto CTRL_ALU_FS_0) <= PassA; -- ALU_CTRL = PassA
REG_SEL(OP_C_IS_REG) <= '0';
636,7 → 642,6
DEC_CTRL(CTRL_MEM_ACC) <= '1'; -- MEM_ACCESS
DEC_CTRL(CTRL_MEM_RW) <= '1'; -- MEM_WRITE
DEC_CTRL(CTRL_WB_EN) <= '0'; -- WB EN
DEC_CTRL(CTRL_MEM_USER) <= INSTR_REG(21); -- access in pseudo-user-mode
NEXT_DUAL_OP(0) <= '1';
DEC_CTRL(CTRL_ALU_FS_3 downto CTRL_ALU_FS_0) <= PassA; -- ALU_CTRL = PassA
REG_SEL(OP_C_IS_REG) <= '1';
/storm_core/doc/STORM CORE datasheet.pdf Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
/storm_core/sim/STORM_core_TB.vhd
0,0 → 1,264
-- #######################################################
-- # < STORM Core Processor by Stephan Nolting > #
-- # *************************************************** #
-- # STORM Core / STORM SoC Testbench #
-- # *************************************************** #
-- # Last modified: 31.01.2012 #
-- #######################################################
 
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
 
entity STORM_core_TB is
end STORM_core_TB;
 
architecture Structure of STORM_core_TB is
 
-- Architecture Constants ---------------------------------------------------------
-- -----------------------------------------------------------------------------------
constant INT_MEM_BASE_C : STD_LOGIC_VECTOR(31 downto 0) := x"00000000";
constant INT_MEM_SIZE_C : natural := 2048; -- bytes
constant BOOT_VECTOR_C : STD_LOGIC_VECTOR(31 downto 0) := INT_MEM_BASE_C;
constant I_CACHE_PAGES_C : natural := 8; -- number of pages in I cache
constant I_CACHE_PAGE_SIZE_C : natural := 64; -- page size in I cache
constant D_CACHE_PAGES_C : natural := 8; -- number of pages in D cache
constant D_CACHE_PAGE_SIZE_C : natural := 1; -- page size in D cache
 
 
-- Global Signals -----------------------------------------------------------------
-- -----------------------------------------------------------------------------------
 
-- Global Clock & Reset --
signal EXT_RST : STD_LOGIC;
signal MAIN_RST : STD_LOGIC;
signal SYS_RST : STD_LOGIC;
signal CORE_CLK : STD_LOGIC := '0';
signal BUS_CLK : STD_LOGIC := '0';
signal STORM_IRQ : STD_LOGIC;
signal STORM_FIQ : STD_LOGIC;
 
-- Wishbone Core Bus --
signal CORE_WB_ADR_O : STD_LOGIC_VECTOR(31 downto 0); -- address
signal CORE_WB_CTI_O : STD_LOGIC_VECTOR(02 downto 0); -- cycle type
signal CORE_WB_TGC_O : STD_LOGIC_VECTOR(05 downto 0); -- cycle tag
signal CORE_WB_SEL_O : STD_LOGIC_VECTOR(03 downto 0); -- byte select
signal CORE_WB_WE_O : STD_LOGIC; -- write enable
signal CORE_WB_DATA_O : STD_LOGIC_VECTOR(31 downto 0); -- data out
signal CORE_WB_DATA_I : STD_LOGIC_VECTOR(31 downto 0); -- data in
signal CORE_WB_STB_O : STD_LOGIC; -- valid transfer
signal CORE_WB_CYC_O : STD_LOGIC; -- valid cycle
signal CORE_WB_ACK_I : STD_LOGIC; -- acknowledge
signal CORE_WB_HALT_I : STD_LOGIC; -- halt request
 
 
-- Component interface ------------------------------------------------------------
-- -----------------------------------------------------------------------------------
 
-- Internal Working Memory --
signal INT_MEM_DATA_O : STD_LOGIC_VECTOR(31 downto 0);
signal INT_MEM_STB_I : STD_LOGIC;
signal INT_MEM_ACK_O : STD_LOGIC;
signal INT_MEM_HALT_O : STD_LOGIC;
 
 
-- Logarithm duales ---------------------------------------------------------------
-- -----------------------------------------------------------------------------------
function log2(temp : natural) return natural is
begin
for i in 0 to integer'high loop
if (2**i >= temp) then
return i;
end if;
end loop;
return 0;
end function log2;
 
 
-- STORM Core Top Entity ----------------------------------------------------------
-- -----------------------------------------------------------------------------------
component STORM_TOP
generic (
I_CACHE_PAGES : natural := 4; -- number of pages in I cache
I_CACHE_PAGE_SIZE : natural := 32; -- page size in I cache
D_CACHE_PAGES : natural := 8; -- number of pages in D cache
D_CACHE_PAGE_SIZE : natural := 4; -- page size in D cache
BOOT_VECTOR : STD_LOGIC_VECTOR(31 downto 0) := x"00000000" -- boot address
);
port (
-- Global Control --
CORE_CLK_I : in STD_LOGIC; -- core clock input
BUS_CLK_I : in STD_LOGIC; -- bus clock input
RST_I : in STD_LOGIC; -- global reset input
F_RST_O : out STD_LOGIC; -- force system reset
 
-- Wishbone Bus --
WB_ADR_O : out STD_LOGIC_VECTOR(31 downto 0); -- address
WB_CTI_O : out STD_LOGIC_VECTOR(02 downto 0); -- cycle type
WB_TGC_O : out STD_LOGIC_VECTOR(05 downto 0); -- cycle tag
WB_SEL_O : out STD_LOGIC_VECTOR(03 downto 0); -- byte select
WB_WE_O : out STD_LOGIC; -- write enable
WB_DATA_O : out STD_LOGIC_VECTOR(31 downto 0); -- data out
WB_DATA_I : in STD_LOGIC_VECTOR(31 downto 0); -- data in
WB_STB_O : out STD_LOGIC; -- valid transfer
WB_CYC_O : out STD_LOGIC; -- valid cycle
WB_ACK_I : in STD_LOGIC; -- acknowledge
WB_HALT_I : in STD_LOGIC; -- halt request
 
-- Interrupt Request Lines --
IRQ_I : in STD_LOGIC; -- interrupt request
FIQ_I : in STD_LOGIC -- fast interrupt request
);
end component;
 
 
-- Internal Working Memory --------------------------------------------------------
-- -----------------------------------------------------------------------------------
component MEMORY
generic (
MEM_SIZE : natural := 256; -- memory cells
LOG2_MEM_SIZE : natural := 8 -- log2(memory cells)
);
port (
-- Wishbone Bus --
WB_CLK_I : in STD_LOGIC; -- memory master clock
WB_RST_I : in STD_LOGIC; -- high active sync reset
WB_CTI_I : in STD_LOGIC_VECTOR(02 downto 0); -- cycle indentifier
WB_TGC_I : in STD_LOGIC_VECTOR(05 downto 0); -- cycle tag
WB_ADR_I : in STD_LOGIC_VECTOR(LOG2_MEM_SIZE-1 downto 0); -- adr in
WB_DATA_I : in STD_LOGIC_VECTOR(31 downto 0); -- write data
WB_DATA_O : out STD_LOGIC_VECTOR(31 downto 0); -- read data
WB_SEL_I : in STD_LOGIC_VECTOR(03 downto 0); -- data quantity
WB_WE_I : in STD_LOGIC; -- write enable
WB_STB_I : in STD_LOGIC; -- valid cycle
WB_ACK_O : out STD_LOGIC; -- acknowledge
WB_HALT_O : out STD_LOGIC -- throttle master
);
end component;
 
 
begin
 
-- #################################################################################################################################
-- ### STORM CORE PROCESSOR ###
-- #################################################################################################################################
 
-- CLOCK/RESET GENERATOR -------------------------------------------------------------------------------
-- --------------------------------------------------------------------------------------------------------
 
-- Clock Generator --
CORE_CLK <= not CORE_CLK after 20 ns; -- 50MHz
BUS_CLK <= not BUS_CLK after 40 ns; -- 25MHz
 
-- Reset System --
EXT_RST <= '1', '0' after 400 ns;
MAIN_RST <= EXT_RST or SYS_RST;
 
-- Interrupt Generator --
STORM_IRQ <= '0', '1' after 2000 ns, '0' after 2020 ns;
STORM_FIQ <= '0';
 
 
 
-- STORM CORE PROCESSOR --------------------------------------------------------------------------------
-- --------------------------------------------------------------------------------------------------------
STORM_TOP_INST: STORM_TOP
generic map (
I_CACHE_PAGES => I_CACHE_PAGES_C, -- number of pages in I cache
I_CACHE_PAGE_SIZE => I_CACHE_PAGE_SIZE_C, -- page size in I cache
D_CACHE_PAGES => D_CACHE_PAGES_C, -- number of pages in D cache
D_CACHE_PAGE_SIZE => D_CACHE_PAGE_SIZE_C, -- page size in D cache
BOOT_VECTOR => BOOT_VECTOR_C -- startup boot address
)
port map (
-- Global Control --
CORE_CLK_I => CORE_CLK, -- core clock input
BUS_CLK_I => BUS_CLK, -- bus clock input
RST_I => MAIN_RST, -- global reset input
F_RST_O => SYS_RST, -- force system reset
 
-- Wishbone Bus --
WB_ADR_O => CORE_WB_ADR_O, -- address
WB_CTI_O => CORE_WB_CTI_O, -- cycle type
WB_TGC_O => CORE_WB_TGC_O, -- cycle tag
WB_SEL_O => CORE_WB_SEL_O, -- byte select
WB_WE_O => CORE_WB_WE_O, -- write enable
WB_DATA_O => CORE_WB_DATA_O, -- data out
WB_DATA_I => CORE_WB_DATA_I, -- data in
WB_STB_O => CORE_WB_STB_O, -- valid transfer
WB_CYC_O => CORE_WB_CYC_O, -- valid cycle
WB_ACK_I => CORE_WB_ACK_I, -- acknowledge
WB_HALT_I => CORE_WB_HALT_I, -- halt request
 
-- Interrupt Request Lines --
IRQ_I => STORM_IRQ, -- interrupt request
FIQ_I => STORM_FIQ -- fast interrupt request
);
 
 
 
-- #################################################################################################################################
-- ### WISHBONE FABRIC ###
-- #################################################################################################################################
 
-- Read-Back Data Selector -----------------------------------------------------------------------------
-- --------------------------------------------------------------------------------------------------------
CORE_WB_DATA_I <=
INT_MEM_DATA_O when (CORE_WB_ADR_O(31 downto log2(INT_MEM_SIZE_C)) = INT_MEM_BASE_C(31 downto log2(INT_MEM_SIZE_C))) else
-- DUMMY0_DATA_O when (CORE_WB_ADR_O(31 downto log2(DUMMY0_SIZE_C)) = DUMMY0_BASE_C( 31 downto log2(DUMMY0_SIZE_C))) else
-- DUMMY1_DATA_O when (CORE_WB_ADR_O(31 downto log2(DUMMY1_SIZE_C)) = DUMMY1_BASE_C( 31 downto log2(DUMMY1_SIZE_C))) else
x"00000000";
 
 
-- Acknowledge Terminal --------------------------------------------------------------------------------
-- --------------------------------------------------------------------------------------------------------
CORE_WB_ACK_I <= INT_MEM_ACK_O or
-- DUMMY0_ACK_O or
-- DUMMY1_ACK_O or
'0';
 
 
-- Halt Terminal ---------------------------------------------------------------------------------------
-- --------------------------------------------------------------------------------------------------------
CORE_WB_HALT_I <= INT_MEM_HALT_O or
-- DUMMY0_HALT_O or
-- DUMMY1_HALT_O or
'0';
 
 
-- Valid Transfer Signal Terminal ----------------------------------------------------------------------
-- --------------------------------------------------------------------------------------------------------
INT_MEM_STB_I <= CORE_WB_STB_O when (CORE_WB_ADR_O(31 downto log2(INT_MEM_SIZE_C)) = INT_MEM_BASE_C(31 downto log2(INT_MEM_SIZE_C))) else '0';
-- DUMMY0_STB_I <= CORE_WB_STB_O when (CORE_WB_ADR_O(31 downto log2(DUMMY0_SIZE_C)) = DUMMY0_BASE_C( 31 downto log2(DUMMY0_SIZE_C))) else '0';
-- DUMMY1_STB_I <= CORE_WB_STB_O when (CORE_WB_ADR_O(31 downto log2(DUMMY1_SIZE_C)) = DUMMY1_BASE_C( 31 downto log2(DUMMY1_SIZE_C))) else '0';
 
 
 
-- #################################################################################################################################
-- ### SYSTEM COMPONENTS ###
-- #################################################################################################################################
 
-- Internal Working Memory -----------------------------------------------------------------------------
-- --------------------------------------------------------------------------------------------------------
INTERNAL_MEMORY: MEMORY
generic map (
MEM_SIZE => INT_MEM_SIZE_C/4, -- memory size in 32-bit cells
LOG2_MEM_SIZE => log2(INT_MEM_SIZE_C/4) -- log2 memory size in 32-bit cells
)
port map(
WB_CLK_I => BUS_CLK,
WB_RST_I => MAIN_RST,
WB_CTI_I => CORE_WB_CTI_O,
WB_TGC_I => CORE_WB_TGC_O,
WB_ADR_I => CORE_WB_ADR_O(log2(INT_MEM_SIZE_C/4)+1 downto 2), -- word boundary access
WB_DATA_I => CORE_WB_DATA_O,
WB_DATA_O => INT_MEM_DATA_O,
WB_SEL_I => CORE_WB_SEL_O,
WB_WE_I => CORE_WB_WE_O,
WB_STB_I => INT_MEM_STB_I,
WB_ACK_O => INT_MEM_ACK_O,
WB_HALT_O => INT_MEM_HALT_O
);
 
 
end Structure;
/storm_core/sim/MEMORY.vhd
0,0 → 1,144
-- ######################################################
-- # < STORM CORE SYSTEM by Stephan Nolting > #
-- # ************************************************** #
-- # Internal Working Memory #
-- # ************************************************** #
-- # Version 3.0, 25.11.2011, PipeWB compatible #
-- ######################################################
 
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
 
library work;
use work.STORM_core_package.ALL;
 
entity MEMORY is
generic (
MEM_SIZE : natural := 256; -- memory cells
LOG2_MEM_SIZE : natural := 8 -- log2(memory cells)
);
port (
-- Wishbone Bus --
WB_CLK_I : in STD_LOGIC; -- memory master clock
WB_RST_I : in STD_LOGIC; -- high active sync reset
WB_CTI_I : in STD_LOGIC_VECTOR(02 downto 0); -- cycle indentifier
WB_TGC_I : in STD_LOGIC_VECTOR(05 downto 0); -- cycle tag
WB_ADR_I : in STD_LOGIC_VECTOR(LOG2_MEM_SIZE-1 downto 0); -- adr in
WB_DATA_I : in STD_LOGIC_VECTOR(31 downto 0); -- write data
WB_DATA_O : out STD_LOGIC_VECTOR(31 downto 0); -- read data
WB_SEL_I : in STD_LOGIC_VECTOR(03 downto 0); -- data quantity
WB_WE_I : in STD_LOGIC; -- write enable
WB_STB_I : in STD_LOGIC; -- valid cycle
WB_ACK_O : out STD_LOGIC; -- acknowledge
WB_HALT_O : out STD_LOGIC -- throttle master
);
end MEMORY;
 
architecture Behavioral of MEMORY is
 
--- Are we simulating? ---
constant IS_SIM : boolean := TRUE;
 
--- Ack Buffer --
signal WB_ACK_O_INT : STD_LOGIC;
 
--- Memory Type ---
type RAM_8 is array(0 to MEM_SIZE - 1) of STD_LOGIC_VECTOR(7 downto 0);
type RAM_32 is array(3 downto 0) of RAM_8;
type RAM_IMAGE_TYPE is array (0 to MEM_SIZE - 1) of STD_LOGIC_VECTOR(31 downto 0);
--- INIT MEMORY IMAGE ---
-----------------------------------------------------------------
constant RAM_IMAGE : RAM_IMAGE_TYPE :=
(
-- ############################################
-- # PLACE YOUR PROGRAM HERE #
-- ############################################
);
-----------------------------------------------------------------
 
--- Init RAM function ---
function load_mem(IMAGE : RAM_IMAGE_TYPE; j : natural) return RAM_8 is
variable TEMP_MEM : RAM_8;
begin
for i in 0 to MEM_SIZE - 1 loop
TEMP_MEM(i) := IMAGE(i)(8*j+7 downto 8*j);
end loop;
return TEMP_MEM;
end load_mem;
 
--- Internal Working Memory ---
signal MEM_FILE_HH : RAM_8 := load_mem(RAM_IMAGE, 3);
signal MEM_FILE_HL : RAM_8 := load_mem(RAM_IMAGE, 2);
signal MEM_FILE_LH : RAM_8 := load_mem(RAM_IMAGE, 1);
signal MEM_FILE_LL : RAM_8 := load_mem(RAM_IMAGE, 0);
 
--- Dummy memory for simulation ---
signal SIM_MEM : RAM_IMAGE_TYPE;
 
begin
 
-- STORM data/instruction memory -----------------------------------------------------------------------
-- --------------------------------------------------------------------------------------------------------
MEM_FILE_ACCESS: process(WB_CLK_I)
begin
--- Sync Write ---
if rising_edge(WB_CLK_I) then
if (WB_RST_I = '1') then
WB_ACK_O_INT <= '0';
else
 
--- Data Read/Write ---
if (WB_STB_I = '1') then
if (WB_WE_I = '1') then
if (WB_SEL_I(0) = '1') then
MEM_FILE_LL(to_integer(unsigned(WB_ADR_I))) <= WB_DATA_I(8*0+7 downto 8*0);
end if;
if (WB_SEL_I(1) = '1') then
MEM_FILE_LH(to_integer(unsigned(WB_ADR_I))) <= WB_DATA_I(8*1+7 downto 8*1);
end if;
if (WB_SEL_I(2) = '1') then
MEM_FILE_HL(to_integer(unsigned(WB_ADR_I))) <= WB_DATA_I(8*2+7 downto 8*2);
end if;
if (WB_SEL_I(3) = '1') then
MEM_FILE_HH(to_integer(unsigned(WB_ADR_I))) <= WB_DATA_I(8*3+7 downto 8*3);
end if;
end if;
WB_DATA_O(8*0+7 downto 8*0) <= MEM_FILE_LL(to_integer(unsigned(WB_ADR_I)));
WB_DATA_O(8*1+7 downto 8*1) <= MEM_FILE_LH(to_integer(unsigned(WB_ADR_I)));
WB_DATA_O(8*2+7 downto 8*2) <= MEM_FILE_HL(to_integer(unsigned(WB_ADR_I)));
WB_DATA_O(8*3+7 downto 8*3) <= MEM_FILE_HH(to_integer(unsigned(WB_ADR_I)));
end if;
 
--- ACK Control ---
if (WB_CTI_I = "000") or (WB_CTI_I = "111") then
WB_ACK_O_INT <= WB_STB_I and (not WB_ACK_O_INT);
else
WB_ACK_O_INT <= WB_STB_I;
end if;
end if;
end if;
end process MEM_FILE_ACCESS;
 
--- ACK Signal ---
WB_ACK_O <= WB_ACK_O_INT;
 
--- Throttle ---
WB_HALT_O <= '0'; -- yeay, we're at full speed!
 
 
 
-- Dummy memory for simulation -----------------------------------------------------------------------
-- --------------------------------------------------------------------------------------------------------
-- use this memory dummy for simulation output
DEBUG_SIM_MEM:
if (IS_SIM = TRUE) generate
GEN_DEBUG_MEM:
for i in 0 to MEM_SIZE - 1 generate
SIM_MEM(i) <= MEM_FILE_HH(i) & MEM_FILE_HL(i) & MEM_FILE_LH(i) & MEM_FILE_LL(i);
end generate;
end generate;
 
 
end Behavioral;
/storm_core/sim/Xilinx ISIM/storm_core_debug_wave.wcfg
0,0 → 1,395
<?xml version="1.0" encoding="UTF-8"?>
<wave_config>
<wave_state>
</wave_state>
<db_ref_list>
<db_ref path="N:/N/STORM Core/syn_xilinx/STORM_core_TB_isim_beh.wdb" id="1" type="auto">
<top_modules>
<top_module name="numeric_std" />
<top_module name="std_logic_1164" />
<top_module name="storm_core_package" />
<top_module name="storm_core_tb" />
</top_modules>
</db_ref>
</db_ref_list>
<WVObjectSize size="43" />
<wvobject fp_name="divider7" type="divider">
<obj_property name="label">STORMcore globals</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">#3e3e3e</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/core_clk_i" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">core_clk_i</obj_property>
<obj_property name="ObjectShortName">core_clk_i</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/bus_clk_i" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">bus_clk_i</obj_property>
<obj_property name="ObjectShortName">bus_clk_i</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/halt" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">halt</obj_property>
<obj_property name="ObjectShortName">halt</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/rst_i" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">rst_i</obj_property>
<obj_property name="ObjectShortName">rst_i</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/f_rst_o" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">f_rst_o</obj_property>
<obj_property name="ObjectShortName">f_rst_o</obj_property>
</wvobject>
<wvobject fp_name="divider7" type="divider">
<obj_property name="label">STORMcore interrupt</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">#3e3e3e</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Machine_Control_System/ext_int_req_sync" type="array" db_ref_id="1">
<obj_property name="ElementShortName">ext_int_req_sync[3:0]</obj_property>
<obj_property name="ObjectShortName">ext_int_req_sync[3:0]</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Machine_Control_System/cont_exe" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">cont_exe</obj_property>
<obj_property name="ObjectShortName">cont_exe</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Machine_Control_System/new_mode" type="array" db_ref_id="1">
<obj_property name="ElementShortName">new_mode[4:0]</obj_property>
<obj_property name="ObjectShortName">new_mode[4:0]</obj_property>
</wvobject>
<wvobject fp_name="divider7" type="divider">
<obj_property name="label">STORMcore pipeline</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">#3e3e3e</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Operation_Flow_Control/of_ctrl_o" type="array" db_ref_id="1">
<obj_property name="ElementShortName">of_ctrl_o[45:0]</obj_property>
<obj_property name="ObjectShortName">of_ctrl_o[45:0]</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Operation_Flow_Control/ms_ctrl_o" type="array" db_ref_id="1">
<obj_property name="ElementShortName">ms_ctrl_o[45:0]</obj_property>
<obj_property name="ObjectShortName">ms_ctrl_o[45:0]</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Operation_Flow_Control/ex1_ctrl_o" type="array" db_ref_id="1">
<obj_property name="ElementShortName">ex1_ctrl_o[45:0]</obj_property>
<obj_property name="ObjectShortName">ex1_ctrl_o[45:0]</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Operation_Flow_Control/mem_ctrl_o" type="array" db_ref_id="1">
<obj_property name="ElementShortName">mem_ctrl_o[45:0]</obj_property>
<obj_property name="ObjectShortName">mem_ctrl_o[45:0]</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Operation_Flow_Control/wb_ctrl_o" type="array" db_ref_id="1">
<obj_property name="ElementShortName">wb_ctrl_o[45:0]</obj_property>
<obj_property name="ObjectShortName">wb_ctrl_o[45:0]</obj_property>
</wvobject>
<wvobject fp_name="divider7" type="divider">
<obj_property name="label">STORMcore registers</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">#3e3e3e</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file" type="array" db_ref_id="1">
<obj_property name="ElementShortName">reg_file[0:31]</obj_property>
<obj_property name="ObjectShortName">reg_file[0:31]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[0]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[0]</obj_property>
<obj_property name="ObjectShortName">reg_file[0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[1]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[1]</obj_property>
<obj_property name="ObjectShortName">reg_file[1]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[2]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[2]</obj_property>
<obj_property name="ObjectShortName">reg_file[2]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[3]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[3]</obj_property>
<obj_property name="ObjectShortName">reg_file[3]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[4]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[4]</obj_property>
<obj_property name="ObjectShortName">reg_file[4]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[5]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[5]</obj_property>
<obj_property name="ObjectShortName">reg_file[5]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[6]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[6]</obj_property>
<obj_property name="ObjectShortName">reg_file[6]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[7]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[7]</obj_property>
<obj_property name="ObjectShortName">reg_file[7]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[8]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[8]</obj_property>
<obj_property name="ObjectShortName">reg_file[8]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[9]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[9]</obj_property>
<obj_property name="ObjectShortName">reg_file[9]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[10]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[10]</obj_property>
<obj_property name="ObjectShortName">reg_file[10]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[11]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[11]</obj_property>
<obj_property name="ObjectShortName">reg_file[11]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[12]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[12]</obj_property>
<obj_property name="ObjectShortName">reg_file[12]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[13]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[13]</obj_property>
<obj_property name="ObjectShortName">reg_file[13]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[14]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[14]</obj_property>
<obj_property name="ObjectShortName">reg_file[14]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[15]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[15]</obj_property>
<obj_property name="ObjectShortName">reg_file[15]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[16]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[16]</obj_property>
<obj_property name="ObjectShortName">reg_file[16]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[17]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[17]</obj_property>
<obj_property name="ObjectShortName">reg_file[17]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[18]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[18]</obj_property>
<obj_property name="ObjectShortName">reg_file[18]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[19]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[19]</obj_property>
<obj_property name="ObjectShortName">reg_file[19]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[20]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[20]</obj_property>
<obj_property name="ObjectShortName">reg_file[20]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[21]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[21]</obj_property>
<obj_property name="ObjectShortName">reg_file[21]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[22]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[22]</obj_property>
<obj_property name="ObjectShortName">reg_file[22]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[23]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[23]</obj_property>
<obj_property name="ObjectShortName">reg_file[23]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[24]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[24]</obj_property>
<obj_property name="ObjectShortName">reg_file[24]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[25]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[25]</obj_property>
<obj_property name="ObjectShortName">reg_file[25]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[26]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[26]</obj_property>
<obj_property name="ObjectShortName">reg_file[26]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[27]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[27]</obj_property>
<obj_property name="ObjectShortName">reg_file[27]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[28]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[28]</obj_property>
<obj_property name="ObjectShortName">reg_file[28]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[29]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[29]</obj_property>
<obj_property name="ObjectShortName">reg_file[29]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[30]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[30]</obj_property>
<obj_property name="ObjectShortName">reg_file[30]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Register_File/reg_file[31]" type="array" db_ref_id="1">
<obj_property name="ElementShortName">[31]</obj_property>
<obj_property name="ObjectShortName">reg_file[31]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Machine_Control_System/mcr_pc" type="array" db_ref_id="1">
<obj_property name="ElementShortName">mcr_pc[31:0]</obj_property>
<obj_property name="ObjectShortName">mcr_pc[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property>
<obj_property name="CustomSignalColor">#ff0000</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Operation_Flow_Control/instr_reg" type="array" db_ref_id="1">
<obj_property name="ElementShortName">instr_reg[31:0]</obj_property>
<obj_property name="ObjectShortName">instr_reg[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property>
<obj_property name="CustomSignalColor">#0000ff</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/PROCESSOR_CORE/Machine_Control_System/mcr_cmsr" type="array" db_ref_id="1">
<obj_property name="ElementShortName">mcr_cmsr[31:0]</obj_property>
<obj_property name="ObjectShortName">mcr_cmsr[31:0]</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property>
<obj_property name="CustomSignalColor">#ffffff</obj_property>
</wvobject>
<wvobject fp_name="divider7" type="divider">
<obj_property name="label">DATA CACHE</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">#3e3e3e</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/D_CACHE_INST/cache_mem_ll" type="array" db_ref_id="1">
<obj_property name="ElementShortName">cache_mem_ll[0:7]</obj_property>
<obj_property name="ObjectShortName">cache_mem_ll[0:7]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/D_CACHE_INST/cache_mem_lh" type="array" db_ref_id="1">
<obj_property name="ElementShortName">cache_mem_lh[0:7]</obj_property>
<obj_property name="ObjectShortName">cache_mem_lh[0:7]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/D_CACHE_INST/cache_mem_hl" type="array" db_ref_id="1">
<obj_property name="ElementShortName">cache_mem_hl[0:7]</obj_property>
<obj_property name="ObjectShortName">cache_mem_hl[0:7]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/D_CACHE_INST/cache_mem_hh" type="array" db_ref_id="1">
<obj_property name="ElementShortName">cache_mem_hh[0:7]</obj_property>
<obj_property name="ObjectShortName">cache_mem_hh[0:7]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="divider7" type="divider">
<obj_property name="label">INSTRUCTION CACHE</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">#3e3e3e</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/I_CACHE_INST/cache_mem_ll" type="array" db_ref_id="1">
<obj_property name="ElementShortName">cache_mem_ll[0:511]</obj_property>
<obj_property name="ObjectShortName">cache_mem_ll[0:511]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/I_CACHE_INST/cache_mem_lh" type="array" db_ref_id="1">
<obj_property name="ElementShortName">cache_mem_lh[0:511]</obj_property>
<obj_property name="ObjectShortName">cache_mem_lh[0:511]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/I_CACHE_INST/cache_mem_hl" type="array" db_ref_id="1">
<obj_property name="ElementShortName">cache_mem_hl[0:511]</obj_property>
<obj_property name="ObjectShortName">cache_mem_hl[0:511]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/I_CACHE_INST/cache_mem_hh" type="array" db_ref_id="1">
<obj_property name="ElementShortName">cache_mem_hh[0:511]</obj_property>
<obj_property name="ObjectShortName">cache_mem_hh[0:511]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="divider7" type="divider">
<obj_property name="label">BUS UNIT</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">#3e3e3e</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/STORM_TOP_INST/BUS_UNIT_INST/arb_state" type="other" db_ref_id="1">
<obj_property name="ElementShortName">arb_state</obj_property>
<obj_property name="ObjectShortName">arb_state</obj_property>
</wvobject>
<wvobject fp_name="divider7" type="divider">
<obj_property name="label">WISHBONE BUS</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">#3e3e3e</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/core_wb_stb_o" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">core_wb_stb_o</obj_property>
<obj_property name="ObjectShortName">core_wb_stb_o</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/core_wb_adr_o" type="array" db_ref_id="1">
<obj_property name="ElementShortName">core_wb_adr_o[31:0]</obj_property>
<obj_property name="ObjectShortName">core_wb_adr_o[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/core_wb_we_o" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">core_wb_we_o</obj_property>
<obj_property name="ObjectShortName">core_wb_we_o</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/core_wb_data_o" type="array" db_ref_id="1">
<obj_property name="ElementShortName">core_wb_data_o[31:0]</obj_property>
<obj_property name="ObjectShortName">core_wb_data_o[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/core_wb_data_i" type="array" db_ref_id="1">
<obj_property name="ElementShortName">core_wb_data_i[31:0]</obj_property>
<obj_property name="ObjectShortName">core_wb_data_i[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/core_wb_ack_i" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">core_wb_ack_i</obj_property>
<obj_property name="ObjectShortName">core_wb_ack_i</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/core_wb_halt_i" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">core_wb_halt_i</obj_property>
<obj_property name="ObjectShortName">core_wb_halt_i</obj_property>
</wvobject>
<wvobject fp_name="divider7" type="divider">
<obj_property name="label">INTERNAL MEMORY</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">#3e3e3e</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/storm_core_tb/INTERNAL_MEMORY/sim_mem" type="array" db_ref_id="1">
<obj_property name="ElementShortName">sim_mem[0:511]</obj_property>
<obj_property name="ObjectShortName">sim_mem[0:511]</obj_property>
</wvobject>
</wave_config>

powered by: WebSVN 2.1.0

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