-- $(lic)
-- $(help_generic)
-- $(help_local)
library ieee;
use ieee.std_logic_1164.all;
use work.amba.all;
use work.bus_comp.all;
use work.corelib.all;
use work.cache_comp.all;
use work.genic_lib.all;
use work.gendc_lib.all;
use work.cache_comp.all;
use work.bus_comp.all;
entity armcache is
port (
rst : in std_logic;
clk : in std_logic;
hold : in cli_hold;
ici : in genic_type_in;
ico : out genic_type_out;
dci : in gendc_type_in;
dco : out gendc_type_out;
ahbi : in ahb_mst_in_type;
ahbo : out ahb_mst_out_type;
apbi : in apb_slv_in_type;
apbo : out apb_slv_out_type
);
end armcache;
architecture rtl of armcache is
type armcache_tmp_type is record
dummy : std_logic;
end record;
type armcache_reg_type is record
genic_ctrl : gicl_ctrl;
gendc_ctrl : gdcl_ctrl;
end record;
type armcache_dbg_type is record
dummy : std_logic;
-- pragma translate_off
dbg : armcache_tmp_type;
-- pragma translate_on
end record;
signal r, c : armcache_reg_type;
signal rdbg, cdbg : armcache_dbg_type;
signal mi : ahbmst_mp_in_a(1 downto 0);
signal mo : ahbmst_mp_out_a(1 downto 0);
signal genic_i : genic_type_in;
signal genic_o : genic_type_out;
signal genic_ctrl : gicl_ctrl;
signal genic_icmo : gencmem_type_ic_out;
signal genic_icmi : gencmem_type_ic_in;
signal genic_mcio : ahbmst_mp_out;
signal genic_mcii : ahbmst_mp_in;
signal gendc_i : gendc_type_in;
signal gendc_o : gendc_type_out;
signal gendc_ctrl : gdcl_ctrl;
signal gendc_dcmo : gencmem_type_dc_out;
signal gendc_dcmi : gencmem_type_dc_in;
signal gendc_wbi : genwb_type_in;
signal gendc_wbo : genwb_type_out;
signal genwb_i : genwb_type_in;
signal genwb_o : genwb_type_out;
signal genwb_mcwbo : ahbmst_mp_out;
signal genwb_mcwbi : ahbmst_mp_in;
signal gencmem_i : gencmem_type_in;
signal gencmem_o : gencmem_type_out;
begin
p0: process (clk, rst, r, apbi )
variable v : armcache_reg_type;
variable t : armcache_tmp_type;
variable vdbg : armcache_dbg_type;
begin
-- $(init(t:armcache_tmp_type))
v := r;
-- reset
if ( rst = '0' ) then
v.genic_ctrl.burst := '0';
v.gendc_ctrl.writeback := '0';
v.gendc_ctrl.allocateonstore := '0';
end if;
c <= v;
genic_ctrl <= r.genic_ctrl;
gendc_ctrl <= r.gendc_ctrl;
-- pragma translate_off
vdbg := rdbg;
vdbg.dbg := t;
cdbg <= vdbg;
-- pragma translate_on
end process p0;
pregs : process (clk, c)
begin
if rising_edge(clk) then
r <= c;
-- pragma translate_off
rdbg <= cdbg;
-- pragma translate_on
end if;
end process;
ic0: genic port map ( rst, clk, hold, genic_i, genic_o, genic_ctrl, genic_icmo, genic_icmi,
genic_mcio, genic_mcii );
genic_i <= ici;
ico <= genic_o;
genic_mcio <= mo(0);
mi(0) <= genic_mcii;
dc0: gendc port map ( rst, clk, hold, gendc_i, gendc_o, gendc_ctrl, gendc_dcmo, gendc_dcmi,
gendc_wbi, gendc_wbo );
gendc_i <= dci;
dco <= gendc_o;
wb0: genwb port map ( rst, clk, genwb_i, genwb_o, genwb_mcwbo, genwb_mcwbi );
genwb_i <= gendc_wbi;
gendc_wbo <= genwb_o;
genwb_mcwbo <= mo(1);
mi(1) <= genwb_mcwbi;
cm0: gencmem port map ( rst, clk, gencmem_i, gencmem_o);
gencmem_i.ic <= genic_icmi;
genic_icmo <= gencmem_o.ic;
gencmem_i.dc <= gendc_dcmi;
gendc_dcmo <= gencmem_o.dc;
ahbmast0: ahbmst_mp generic map ( AHBMST_PORTS => 2)
port map ( rst, clk, mi, mo, ahbi, ahbo );
end rtl;
Enum astates defined in /tmp/build_html/vhdl/sparc/mmu_acache.vhd |
Enum rdatatype defined in /tmp/build_html/vhdl/sparc/mmu_icache.vhd |
Type cli_hold defined in /tmp/build_html/vhdl/core/libs/corelib.vhd |
Enum states defined in /tmp/build_html/vhdl/sparc/mmutw.vhd |
Type genic_type_in defined in /tmp/build_html/vhdl/mem/cache/cache_comp.vhd |
Enum txfsmtype defined in /tmp/build_html/vhdl/sparc/dcom_uart.vhd |
Constant CFG_IC_DLINE_SZ defined in /tmp/build_html/vhdl/mem/cache/cache_config.vhd |
Type gcml_ic_dline defined in /tmp/build_html/vhdl/mem/cache/libs/gencmem_lib.vhd |
Type genic_type_out defined in /tmp/build_html/vhdl/mem/cache/cache_comp.vhd |
Enum cpins_type defined in /tmp/build_html/vhdl/sparc/fp1eu.vhd |
Enum lmd_memsize defined in /tmp/build_html/vhdl/libs/memdef.vhd |
Type gdcl_param defined in /tmp/build_html/vhdl/mem/cache/libs/gendc_lib.vhd |
Type gendc_type_in defined in /tmp/build_html/vhdl/mem/cache/cache_comp.vhd |
Type gendc_type_out defined in /tmp/build_html/vhdl/mem/cache/cache_comp.vhd |
Type armcache_tmp_type defined in /tmp/build_html/vhdl/arm/armcache.vhd |
Type gicl_ctrl defined in /tmp/build_html/vhdl/mem/cache/libs/genic_lib.vhd |
Type gdcl_ctrl defined in /tmp/build_html/vhdl/mem/cache/libs/gendc_lib.vhd |
Type armcache_reg_type defined in /tmp/build_html/vhdl/arm/armcache.vhd |
Type armcache_dbg_type defined in /tmp/build_html/vhdl/arm/armcache.vhd |
Constant CFG_IC_SETS defined in /tmp/build_html/vhdl/mem/cache/cache_config.vhd |
Type gencmem_type_ic_out defined in /tmp/build_html/vhdl/mem/cache/cache_comp.vhd |
Constant CFG_IC_ADDR_SZ defined in /tmp/build_html/vhdl/mem/cache/cache_config.vhd |
Constant lin_log2 defined in /tmp/build_html/vhdl/libs/int.vhd |
Constant CFG_IC_SET_SZ defined in /tmp/build_html/vhdl/mem/cache/cache_config.vhd |
Constant GCML_IC_TTAG_BSZ defined in /tmp/build_html/vhdl/mem/cache/libs/gencmem_lib.vhd |
Constant CFG_IC_TLINE_SZ defined in /tmp/build_html/vhdl/mem/cache/cache_config.vhd |
Type gcml_ic_tline defined in /tmp/build_html/vhdl/mem/cache/libs/gencmem_lib.vhd |
Type gencmem_type_ic_in defined in /tmp/build_html/vhdl/mem/cache/cache_comp.vhd |
Enum unit_status_type defined in /tmp/build_html/vhdl/sparc/fp1eu.vhd |
Enum slavestate defined in /tmp/build_html/vhdl/sparc/ahbtest.vhd |
Enum execstate defined in /tmp/build_html/vhdl/sparc/fp1eu.vhd |
Type ahbmst_mp_out defined in /tmp/build_html/vhdl/bus/bus_comp.vhd |
Enum ahbmst_state_type defined in /tmp/build_html/vhdl/sparc/pci_oc.vhd |
Type ahbmst_mp_in defined in /tmp/build_html/vhdl/bus/bus_comp.vhd |
Constant CFG_DC_SETS defined in /tmp/build_html/vhdl/mem/cache/cache_config.vhd |
Type gencmem_type_dc_out defined in /tmp/build_html/vhdl/mem/cache/cache_comp.vhd |
Constant CFG_DC_ADDR_SZ defined in /tmp/build_html/vhdl/mem/cache/cache_config.vhd |
Constant CFG_DC_SET_SZ defined in /tmp/build_html/vhdl/mem/cache/cache_config.vhd |
Constant GCML_DC_TTAG_BSZ defined in /tmp/build_html/vhdl/mem/cache/libs/gencmem_lib.vhd |
Constant CFG_DC_TLINE_SZ defined in /tmp/build_html/vhdl/mem/cache/cache_config.vhd |
Type gcml_dc_tline defined in /tmp/build_html/vhdl/mem/cache/libs/gencmem_lib.vhd |
Constant CFG_DC_DLINE_SZ defined in /tmp/build_html/vhdl/mem/cache/cache_config.vhd |
Constant GCML_DC_DADDR_BSZ defined in /tmp/build_html/vhdl/mem/cache/libs/gencmem_lib.vhd |
Type gcml_dc_dline defined in /tmp/build_html/vhdl/mem/cache/libs/gencmem_lib.vhd |
Type gencmem_type_dc_in defined in /tmp/build_html/vhdl/mem/cache/cache_comp.vhd |
Type gwbl_entry defined in /tmp/build_html/vhdl/mem/cache/libs/genwb_lib.vhd |
Type genwb_type_in defined in /tmp/build_html/vhdl/mem/cache/cache_comp.vhd |
Type genwb_type_out defined in /tmp/build_html/vhdl/mem/cache/cache_comp.vhd |
Type gencmem_type_in defined in /tmp/build_html/vhdl/mem/cache/cache_comp.vhd |
Type gencmem_type_out defined in /tmp/build_html/vhdl/mem/cache/cache_comp.vhd |
If you have question mail to: Konrad Eisele<eiselekd@web.de>, created: Wed Apr 14 13:07:33 WEDT 2004
;
This is part of the Core distribution