Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Visitor
0004231010
Posts: 7
Registered: ‎04-07-2009
0

FIFO in IPIF and interrupt

Hello,

I need to write a state machine to control ReadFIFO in user_logic.vhd.

 

Here is the snippet code which I use:

 

  READ_FIFO_SM_COMB : process(RFIFO2IP_WrAck, read_fifo_cntl_cs, Valid) is
  begin
      
    ip2rfifo_wrreq_cmb <= '0';
    read_fifo_cntl_ns  <= read_fifo_cntl_cs;

    case read_fifo_cntl_cs is
      when IDLE =>       
        if (Valid = '1') then
          ip2rfifo_wrreq_cmb <= '1';
          read_fifo_cntl_ns <= WR_REQ;
        end if;     
      when WR_REQ =>      
        if (RFIFO2IP_WrAck = '1') then
          read_fifo_cntl_ns <= IDLE;
        end if;
      when others =>
        read_fifo_cntl_ns <= IDLE;
    end case;

  end process READ_FIFO_SM_COMB;

 

Valid is a signal which tells us that the data are ready and can be written to ReadFIFO (IP2RFIFO_Data are ready).

 

I also need to generate an interrupt and I decided to use signal RFIFO2IP_WrAck as an interrupt

for the first time (only for debugging). So it looks like:

 

IP2Bus_IntrEvent(0) <= RFIFO2IP_WrAck;

 

So it means that when I have a first word in ReadFIFO written IP is generating interrupt to

read from that FIFO with PowerPC. I use device and IP interrupt controlers.

 

The problem is that in device interrupt controler Transaction Error bit is set. But I can NOT see

why. This bit is generating interrupts continuously so I must clear this bit in service routine. But after

this there is no interrupt being generated.

 

Does anyone know where is the problem? Is a snippet code wrong? If it's wrong then where? Or

is the problem in signal  RFIFO2IP_WrAck which I'm using for generating interrupts?

 

Please help

Thanks

Contributor
tarzandavid
Posts: 48
Registered: ‎06-13-2008
0

Re: FIFO in IPIF and interrupt

hi,

 

Have you solve your problem? I think you can use CIP to generate the WR/RD FIFO logic, which contains a loopback logic from WRFIFO to RDFIFO.

 

I am also trying to implement FIFO but I just need the WRFIFO , so I removed the RDFIFO part inside my USER Logic. And I run the selftest.c and tried to write 4 data to WRFIFO and then connect the output to the external pins to observe. But I found a weird problem that I can get the first 3 data correctly but failed to get the 4th one. was thinking something maybe wrong in my userlogic.vhd.

 

I Any ideas on this? Thanks.

 

tarzan 

Visitor
0004231010
Posts: 7
Registered: ‎04-07-2009
0

Re: FIFO in IPIF and interrupt

Hi,

I have just created a page where I'm dealing with the FIFOs. You can try to read it and if you will not find a solution write a comment either on my web page or here in a forum.


http://www.techsite.ic.cz/?page_id=2
Contributor
tarzandavid
Posts: 48
Registered: ‎06-13-2008
0

Re: FIFO in IPIF and interrupt

Hi 0004231010,

 

Thanks for your kind reply, the web link you provided is very very useful to me, I will look into it in details. Thanks a lot :)

 

Regards,

tarzan

Regular Contributor
ahmetg
Posts: 52
Registered: ‎03-19-2009
0

Re: FIFO in IPIF and interrupt

Hi tarzan,

 

you can also have a look at http://www.xilinx.com/support/documentation/application_notes/xapp967.pdf

 

It is the documentation for a design with FIFO and Interrupt. 

 

Good luck!

Contributor
tarzandavid
Posts: 48
Registered: ‎06-13-2008
0

Re: FIFO in IPIF and interrupt

Hi ahmetg,

 

I have looked at the app notes before, yes it is very helpful, but I still need to think more on the big picture of my design, anyway thanks for your kind suggestion.

 

tarzan

Contributor
tarzandavid
Posts: 48
Registered: ‎06-13-2008
0

Re: FIFO in IPIF and interrupt

Hi 0004231010,

 

I have commented on your webpage, please have a look, thanks.