44use ieee.std_logic_1164.
all;
45use ieee.numeric_std.
all;
140 if rising_edge(CLK) then
150 end process proc_regs;
155 variable idout : slv16 := (others=>'0');
156 variable ibreq : slbit := '0';
157 variable ibrd : slbit := '0';
158 variable ibw0 : slbit := '0';
159 variable ibw1 : slbit := '0';
160 variable ilam : slbit := '0';
161 variable irrlimsta : slbit := '0';
167 idout := (others=>'0');
183 if r.ibsel = '1' then
184 case IB_MREQ.addr(2 downto 1) is
194 if r.rdone='1' and r.rie='0' then
217 if ibrd='1' and r.rdone='1' then
241 if r.xrdy='1' and r.xie='0' then
257 n.xbuf := IB_MREQ.din(n.xbuf'range);
264 idout(r.xbuf'range) := r.xbuf;
294 if r.rdone='0' and r.rie='1' then
304 IB_SRES.ack <= r.ibsel and ibreq;
311 end process proc_next;
integer := 0 rbuf_ibf_xsize0
integer := 8 xbuf_ibf_xval8
integer := 7 xcsr_ibf_xrdy
regs_type := regs_init N_REGS
integer := 5 rcsr_ibf_rir
integer range 7 downto 0 rbuf_ibf_data
integer := 6 xcsr_ibf_xie
integer := 8 rbuf_ibf_rsize0
regs_type :=( '0',( others => '0'), '0', '0',( others => '0'), '0', '0', '1', '0',( others => '0'), '0') regs_init
integer := 7 rcsr_ibf_rdone
integer range 14 downto 12 rcsr_ibf_rrlim
regs_type := regs_init R_REGS
integer := 6 rcsr_ibf_rie
integer := 15 xbuf_ibf_xval
integer := 5 xcsr_ibf_xir
IB_ADDR slv16 := slv( to_unsigned( 8#177560#, 16) )
std_logic_vector( 2 downto 0) slv3
std_logic_vector( 15 downto 0) slv16
std_logic_vector( 7 downto 0) slv8
std_logic_vector( 1 downto 0) slv2