32use ieee.std_logic_1164.
all;
33use ieee.numeric_std.
all;
65 signal R_MMR1 : mmu_mmr1_type := mmu_mmr1_init;
67 signal N_MMR1 : mmu_mmr1_type := mmu_mmr1_init;
90 variable mmr1out : slv16 := (others=>'0');
91 variable mmr2out : slv16 := (others=>'0');
94 mmr1out := (others=>'0');
102 mmr2out := (others=>'0');
107 IB_SRES.dout <= mmr1out or mmr2out;
112 end process proc_ibres;
116 if rising_edge(CLK) then
120 end process proc_regs;
125 variable nmmr1 : mmu_mmr1_type := mmu_mmr1_init;
126 variable nmmr2 : slv16 := (others=>'0');
127 variable delta : slv5 := (others=>'0');
133 delta := "0" & MONI.delta;
136 nmmr1 := mmu_mmr1_init;
137 nmmr2 := (others=>'0');
150 elsif TRACE = '1' then
152 if MONI.istart='1' or MONI.vstart='1' then
153 nmmr1 := mmu_mmr1_init;
156 elsif MONI.regmod = '1' then
157 if R_MMR1.ra_delta = "00000" then
158 nmmr1.ra_num := MONI.regnum;
159 if MONI.isdec = '0' then
160 nmmr1.ra_delta := delta;
162 nmmr1.ra_delta := slv(-signed(delta));
165 nmmr1.rb_num := MONI.regnum;
166 if MONI.isdec = '0' then
167 nmmr1.rb_delta := delta;
169 nmmr1.rb_delta := slv(-signed(delta));
179 end process proc_comb;
integer range 2 downto 0 mmr1_ibf_ra_num
slv16 :=( others => '0') N_MMR2
mmu_mmr1_type := mmu_mmr1_init R_MMR1
slv16 := slv( to_unsigned( 8#177576#, 16) ) ibaddr_mmr2
integer range 15 downto 11 mmr1_ibf_rb_delta
mmu_mmr1_type := mmu_mmr1_init N_MMR1
integer range 10 downto 8 mmr1_ibf_rb_num
slv16 := slv( to_unsigned( 8#177574#, 16) ) ibaddr_mmr1
integer range 7 downto 3 mmr1_ibf_ra_delta
slv16 :=( others => '0') R_MMR2
std_logic_vector( 4 downto 0) slv5
std_logic_vector( 15 downto 0) slv16