cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Participant
Participant
9,312 Views
Registered: ‎03-10-2009

PC <----> FPGA SATA communication

Hello, I need to establish communication between a computer and an FPGA using SATA.

My questions are:

 

                  1) There aren't any drivers, right?

                  2) There is not a lot of information on the subject... can you recommend me something to read?

                  3) Do the FPGAs from Xilinx provide a SATA controller, or do I have to make it on my own? I saw a project using USB communication. They were using the EZ-USB FX2 USB                           that contains a transceiver USB. In my case it seems that I have to use the GTP transceiver. Is that right?

 

I'm sorry if my questions sound stupid, but I am still not seeing the big picture here. No need to recommend other types of communication. I really need the speed.

 

I'd appreciate your answers.

Thank You

 

0 Kudos
2 Replies
Highlighted
Observer
Observer
9,292 Views
Registered: ‎02-27-2009

Re: PC <----> FPGA SATA communication

Hi,

 

I'll answer your questions in order the best I can.

 

1) With regard to 'drivers', I'm not sure what you mean.  The PC side, of course, has SATA drivers; the FPGA side needs a bitfile to do anything at all, so it doesn't have the bits you want by default.  (Well, actually, it does have the GTP, but...) If you're looking for a solution to plop down on the FPGA, you might want some IP to do it for you; I'm not sure if that IP exists or where to get it if it does. It appears that there does exist IP for Virtex4 to do this (google for 'xilinx sata ip'), but I'm not sure if that's compatible with the GTPs on the Virtex5.  I'm also not sure if there exists IP to behave as a SATA device, instead of a SATA host.

 

2) I'd recommend starting with the SATA specification, which details everything about how to talk SATA from the cable level through the PHY level all the way up through the application level.  I think that it costs $25 or something stupid like that (side rant: who charges $25 for a spec? They're obviously not trying to restrict it to the big players or trying to keep hobbyists out with that cost; it just seems like they're trying to bother everyone involved...), but potentially Google can find an older version of the spec for you.  Read also the Xilinx RocketIO user guide (UG196).

 

3) The Virtex5 has one or more RocketIO GTP/GTX controllers, depending on which V5 you get.  The RocketIO will talk some of the line protocol for you (in particular, it will do the 8B/10B encoding/decoding, and the deserialization), but it won't do all the work for you -- certainly it won't give you a MMIO interface or some such through which you can just magically talk SATA.

 

If you find free IP to do this, let me know; I'm also working on a SATA host controller right now.

 

joshua

Tags (4)
0 Kudos
Participant
Participant
9,249 Views
Registered: ‎03-10-2009

Re: PC <----> FPGA SATA communication


joshua_ wrote:

Hi,

 

I'll answer your questions in order the best I can.

 

1) With regard to 'drivers', I'm not sure what you mean.  The PC side, of course, has SATA drivers; the FPGA side needs a bitfile to do anything at all, so it doesn't have the bits you want by default.  (Well, actually, it does have the GTP, but...) If you're looking for a solution to plop down on the FPGA, you might want some IP to do it for you; I'm not sure if that IP exists or where to get it if it does. It appears that there does exist IP for Virtex4 to do this (google for 'xilinx sata ip'), but I'm not sure if that's compatible with the GTPs on the Virtex5.  I'm also not sure if there exists IP to behave as a SATA device, instead of a SATA host.

 


 

You were clear in your answer and I'm thankfull for it.

 

             "The PC side, of course, has SATA drivers; the FPGA side needs a bitfile to do anything at all, so it doesn't have the bits you want by default."

 

              Ok. Having put some thought on it, I realize that the FPGA doesn't need software running there. So the hardware will do it all. But from the PC side, do you know if the SATA drivers are "disk-oriented" or they can manage the communication with the FPGA?

 

              "If you're looking for a solution to plop down on the FPGA, you might want some IP to do it for you;

 

                That's what I'm looking for, indeed.

 

                 "I'm not sure if that IP exists or where to get it if it does. It appears that there does exist IP for Virtex4 to do this (google for 'xilinx sata ip'), but I'm not sure if that's compatible with the GTPs on the Virtex5."

 

         You mean you're not sure if free IP exists or IP available to purchase at all?

         Why are you assuming I'm using Virtex5? 

 

         "I'm also not sure if there exists IP to behave as a SATA device, instead of a SATA host."

 

                 I'm only interested in the PC to be able to read information from the FPGA. So if the FPGA would behave as a device it would be better.

 

 

There are some more issues on your post that I would like to discuss with you, but I want to do some research first.

 

Message Edited by dxaves on 03-12-2009 08:17 AM
Message Edited by dxaves on 03-12-2009 08:18 AM
0 Kudos