49use ieee.std_logic_1164.
all;
50use ieee.numeric_std.
all;
161 if rising_edge(CLK) then
168 end process proc_regs;
174 variable ibreq : slbit := '0';
175 variable ibbusy : slbit := '0';
176 variable iback : slbit := '0';
177 variable idout : slv16 := (others=>'0');
178 variable ififo_rst : slbit := '0';
179 variable ififo_ce : slbit := '0';
180 variable ififo_we : slbit := '0';
181 variable bsyok : slbit := '0';
182 variable dobsy : slbit := '0';
183 variable wrok : slbit := '0';
184 variable rdok : slbit := '0';
190 idout := (others=>'0');
193 iback := r.ibsel and ibreq;
219 n.req_1 := r.ibsel and (ibreq);
220 n.rwm_1 := r.ibsel and (ibreq or IB_MREQ.rmw);
223 if r.ibsel = '1' then
224 if (ibreq or IB_MREQ.rmw) = '1' and
226 if r.rwm_1 = '0' then
242 if r.ibsel='1' and ibreq='1' and bsyok='1' then
243 if r.req_1 = '0' then
247 if r.dcnt /= "000" then
248 n.dcnt := slv(unsigned(r.dcnt) - 1);
255 if r.ibsel = '1' then
256 case IB_MREQ.addr(2 downto 1) is
292 n.data(ibf_byte1) := IB_MREQ.din(ibf_byte1);
295 n.data(ibf_byte0) := IB_MREQ.din(ibf_byte0);
304 if r.datto = '1' then
325 if r.datto = '1' then
376 if r.ibsel = '1' then
377 case IB_MREQ.addr(2 downto 1) is
415 end process proc_next;
out DO slv( DWIDTH- 1 downto 0)
in DI slv( DWIDTH- 1 downto 0)
out SIZE slv( AWIDTH- 1 downto 0)
integer := 4 cntl_ibf_bsyr
integer := 4 stat_ibf_be1
integer := 0 cntl_ibf_locr
integer := 15 cntl_ibf_fclr
slv4 :=( others => '0') FIFO_SIZE
regs_type := regs_init N_REGS
integer := 2 stat_ibf_rmw
integer := 6 stat_ibf_racc
slv16 :=( others => '0') FIFO_DO
regs_type :=( '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0',( others => '0'),( others => '0'), '0', '0') regs_init
integer := 5 cntl_ibf_bsyw
integer := 5 stat_ibf_cacc
integer := 1 cntl_ibf_locw
integer := 6 cntl_ibf_nobyt
integer := 3 cntl_ibf_remw
regs_type := regs_init R_REGS
integer := 3 stat_ibf_be0
integer := 7 cntl_ibf_datto
integer range 15 downto 12 stat_ibf_fsize
integer := 2 cntl_ibf_remr
integer := 8 cntl_ibf_datab
IB_ADDR slv16 := slv( to_unsigned( 8#170000#, 16) )
std_logic_vector( 3 downto 0) slv4
std_logic_vector( 2 downto 0) slv3
std_logic_vector( 15 downto 0) slv16
std_logic_vector( 1 downto 0) slv2