FSL Read Data Out Problem

Hello Everybody.

First of all thanks antti for your FSL File, now I understand the Read in Process.

formatting link

But for me also very important is to write the data out after the calculation is finished. Here is my actual VHDL Code, so the readin should be okay, and then I only assign the output value the input value after this valid. Then I want to read it out, but unfortunately I always get Output =

0, althought I write different values from 1 up to 5 at the data input port! So can perhaps someone give me a hint what is wrong here? Antti do you have a solution for this perhaps?

begin -- architecture IMP FSL0_S_Read

Reply to
Roger Planger
Loading thread data ...

Hi,

The problem is that the Write signal is not a ready signal for MicroBlaze but it's a write signal into a FIFO. So what you have done is to write new values EVERY clock cycle into the FIFO which will get full very fast.

If you only want to write back the value that you read, then you should do this instead. FSL0_M_Write Hello Everybody.

Reply to
Goran Bilski

Thanks for your help, I have updated the file as you said, but unfortunately I have still the same problem, I only get 0 values thats so strange...

Cheers Roger

Reply to
Roger Planger
030705090601060209050609 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit

Hi,

Sorry I didn't look careful enough on your C code. You are using the nonblocking version of the FSL macros but in this case you should do the blocking versions. use "microblaze_bread_datafsl" instead of the "microblaze_nbread_datafsl".

Could you also share the .mhs file so I could see that everything is connected correctly?

Göran

Roger Planger wrote:

Reply to
Goran Bilski

Hi Goeren

Yeah finally, this was the mistake the non blocking Read Statement! Thanks a lot for this hint, now it works! So in the future when I wanna read out from FIFO I should use the blocking statement, shouldn't I?

Cheers Roger!

Sorry I didn't look careful enough on your C code. You are using the nonblocking version of the FSL macros but in this case you should do the blocking versions. use "microblaze_bread_datafsl" instead of the "microblaze_nbread_datafsl".

Could you also share the .mhs file so I could see that everything is connected correctly?

Göran

Roger Planger wrote:

Thanks for your help, I have updated the file as you said, but unfortunately I have still the same problem, I only get 0 values thats so strange...

Cheers Roger

Hi,

The problem is that the Write signal is not a ready signal for MicroBlaze but it's a write signal into a FIFO. So what you have done is to write new values EVERY clock cycle into the FIFO which will get full very fast.

If you only want to write back the value that you read, then you should do this instead. FSL0_M_Write

Reply to
Roger Planger

Hi Roger,

I'm glad that you got it working.

Depending on how long time it take to get the result. If the execution of the FSL modules take too many clock cycle and you want to do something else during that time or just enabling interrupts, you need to use the non blocking versions. But it that case you need to check if the execution of the FSL was successful or not.

But normally the execution of the FSL modules is not that many clock cycles and you can therefore in most cases use the blocking instructions. With the blocking instructions, you don't have to spend instructions and clock cycle to determine if the FSL instruction was successful or not.

Göran

Roger Planger wrote:

Reply to
Goran Bilski

Hi Roger,

I'm glad that you got it working.

Depending on how long time it take to get the result. If the execution of the FSL modules take too many clock cycle and you want to do something else during that time or just enabling interrupts, you need to use the non blocking versions. But it that case you need to check if the execution of the FSL was successful or not.

But normally the execution of the FSL modules is not that many clock cycles and you can therefore in most cases use the blocking instructions. With the blocking instructions, you don't have to spend instructions and clock cycle to determine if the FSL instruction was successful or not.

Göran

Roger Planger wrote:

Reply to
Goran Bilski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.