23use ieee.std_logic_1164.
all;
24use ieee.numeric_std.
all;
147 report "assert(AWIDTH>=4 and AWIDTH<=7): unsupported AWIDTH"
208 if rising_edge(CLK) then
221 end process proc_regs;
228 variable idout : slv16 := (others=>'0');
229 variable ibreq : slbit := '0';
230 variable iback : slbit := '0';
231 variable ibrd : slbit := '0';
232 variable ibw0 : slbit := '0';
233 variable ibw1 : slbit := '0';
234 variable ilam : slbit := '0';
235 variable irbufce : slbit := '0';
236 variable irbufwe : slbit := '0';
237 variable irbufrst : slbit := '0';
238 variable irrlimsta : slbit := '0';
239 variable ipbufce : slbit := '0';
240 variable ipbufwe : slbit := '0';
241 variable iprlimsta : slbit := '0';
247 idout := (others=>'0');
249 iback := r.ibsel and ibreq;
256 irbufrst := RESET or r.rerr;
270 if r.ibsel = '1' then
271 case IB_MREQ.addr(2 downto 1) is
286 (r.rerr='1' or r.rdone='1') then
321 and r.rerr='0' and r.rie = '1' then
338 if r.rdone = '1' then
344 if r.rdone = '1' then
378 (r.perr='1' or r.prdy='1') then
447 if r.rbusy = '1' then
452 r.rerr='0' and r.rie='1' then
464 if r.perr='0' and r.pie='1' then
500 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)
slv( AWIDTH- 1 downto 0) :=( others => '0') RBUF_FUSE
integer := 15 pbuf_ibf_pval
slv8 :=( others => '0') RBUF_DO
integer := 1 rcsr_ibf_fclr
integer range AWIDTH- 1 downto 0 rbuf_ibf_pfuse
integer := 15 rcsr_ibf_rerr
slv( AWIDTH- 1 downto 0) := slv( to_unsigned( 1, AWIDTH) ) c_fuse1
integer := 0 rcsr_ibf_renb
regs_type := regs_init N_REGS
integer := 5 rcsr_ibf_rir
integer := 3 rcsr_ibf_ique
integer := 2 rcsr_ibf_iack
integer := 15 pcsr_ibf_perr
slv16 := slv( to_unsigned( 8#177550#, 16) ) ibaddr_pc11
integer := 5 pcsr_ibf_pir
integer range 7 downto 0 rbuf_ibf_data
integer := 4 pcsr_ibf_rlb
integer := 4 rcsr_ibf_rlb
integer := 11 rcsr_ibf_rbusy
integer range 14 downto 12 pcsr_ibf_rlim
integer := 7 rcsr_ibf_rdone
regs_type := regs_init R_REGS
integer := 6 pcsr_ibf_pie
integer range 10 downto 8 rcsr_ibf_type
integer := 6 rcsr_ibf_rie
integer range 7 downto 0 pbuf_ibf_data
regs_type :=( '0', '1', "000", '0', '0', '0', '0', '0', '0', '1', "000", '1', '0', '0') regs_init
integer range AWIDTH- 1+ 8 downto 8 rbuf_ibf_rfuse
integer range 14 downto 12 rcsr_ibf_rlim
integer := 15 rbuf_ibf_rbusy
integer := 7 pcsr_ibf_prdy
integer range AWIDTH- 1+ 8 downto 8 pbuf_ibf_fuse
slv8 :=( others => '0') PBUF_DO
slv( AWIDTH- 1 downto 0) :=( others => '0') PBUF_FUSE
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