hi all,
I'm using the codes generated by the xilinx logicore tool to obtain the
rocketio ip.i did it successfully.now i need to communicate between two
such rocketio's.
can anybody suggest me what is to be done next.....
---------------------------------------
Posted through http://www.FPGARelated.com
Reply by John Stein●December 13, 20072007-12-13
Ed McGettigan wrote:
> John Stein wrote:
>> [RocketIO]
[...]
> I have 2 guesses as to what is likely wrong.
>
> 1) You didn't wait long enough for the MGT PLL and CDR to be fully
> functional and if you run it another 10K+ words things might be OK.
>
> 2) Your special application protocol is not properly aligned as you
> either haven't set the 8B10B comma alignment sequences to the values
> defined in your protocol (along with the correct initialization
> control) or if you have a scrambled protocol you haven't implemented
> an aligner in the fabric.
I double-checked on every bit regarding the alignment and finally found
my (dumb) mistake. One signal for the Phase-alignment was not connected
correctly. You can imagine how I felt when finding that out. Once
connected the simulation does what I expect it to.
Right now the "correct" data is being received after about 50 to 60
clock cycles in the ISE Simulator. (I am aware that this might take a
lot longer when being deployed).
tnx to all who helped
John
Reply by Marc Randolph●December 13, 20072007-12-13
On Dec 12, 8:21 am, John Stein <slime...@fragmasters.net> wrote:
> Hi.
> I am trying to establish a communication between two RocketIO driven
> Virtex2P FPGAs. I am currently simulating the design running into the
> following problem: When I set the RocketIO Transmitters (Xilinx
> GT_CUSTOM) into parallel loopback mode everything is fine (received data
> = sent data). Whenever I set it into serial loopback mode (or try to
> communicate with another RocketIO receiver) I seem to receive strange
> data (which doesn't seem to be connected to sent data in any way). I am
> completely running out of ideas what I might do wrong, even though I am
> just a starter with RocketIO. An yes, I did read the RocketIO Users
> Guide, but I didn't find it very helpful for my problem.
Howdy John,
At the risk of pointing out the obvious, it's pretty much gotta be one
of the following:
1. MGT power (LDO fed, right?)
2. MGT ref clock (tried renting a differential scope probe? Coming
from an XO [not a PLL]? Low jitter?)
3. chip-to-chip problem (board-level signal integrity through traces,
connectors, ac-coupling, etc)
4. Protocol (anything in the digital domain - like byte alignment that
others have hinted at, or not crossing clock domains correctly)
One item to be aware of: the analog loopback (looping TX data to RX
data) is exactly that - analog. While I wouldn't call it useless, it
is VERY sensitive because you end up with a great big stub hanging off
due to the trace to your other FPGA. If you happened to have
connected power to a spare MGT, you might try looping back there.
Good luck,
Marc
Reply by Ed McGettigan●December 12, 20072007-12-12
John Stein wrote:
> [RocketIO]
>
>> Are you trying to implement your own protocol? If you are just
>> transferring data between the devices, why not use the Aurora protocol?
>> It is simple and already debugged, and works quite well.
>
> As a matter of fact, I have to write a conduit for a special application
> protocol already established. I do have the source code for that
> protocol and I basically followed each step which is done, but had no
> success. It seems so strange, that the parallel loopback works, but the
> serial does not. As a matter of fact this is my first high speed
> protocol experience and as far as I understand the synchronization
> (apart from bit alignment) is done by the RocketIO controller. I still
> find no explanation why the bits are changed in that drastic matter
> (input doesn't seem to match output in any way)
> I also had a look at the Aurora protocol, but I am not sure if that is
> really going to help me (even though I'm still looking through it).
> At this point pretty much every idea is welcome.
I have 2 guesses as to what is likely wrong.
1) You didn't wait long enough for the MGT PLL and CDR to be fully
functional and if you run it another 10K+ words things might be OK.
2) Your special application protocol is not properly aligned as you
either haven't set the 8B10B comma alignment sequences to the values
defined in your protocol (along with the correct initialization
control) or if you have a scrambled protocol you haven't implemented
an aligner in the fabric.
When you start something new and foreign, IMHO, it is best to start from
a known working solution that is close to what you are attempting to do.
Then you can verify that your setup is correct, understand how it works,
tweak it, and eventually build your own unique version. In this case
starting with the Aurora 8B10B example designs for Virtex-II Pro would
be a very good first step.
Ed McGettigan
--
Xilinx Inc.
Reply by John Stein●December 12, 20072007-12-12
[RocketIO]
> Are you trying to implement your own protocol? If you are just
> transferring data between the devices, why not use the Aurora protocol?
> It is simple and already debugged, and works quite well.
As a matter of fact, I have to write a conduit for a special application
protocol already established. I do have the source code for that
protocol and I basically followed each step which is done, but had no
success. It seems so strange, that the parallel loopback works, but the
serial does not. As a matter of fact this is my first high speed
protocol experience and as far as I understand the synchronization
(apart from bit alignment) is done by the RocketIO controller. I still
find no explanation why the bits are changed in that drastic matter
(input doesn't seem to match output in any way)
I also had a look at the Aurora protocol, but I am not sure if that is
really going to help me (even though I'm still looking through it).
At this point pretty much every idea is welcome.
John
Reply by Duane Clark●December 12, 20072007-12-12
John Stein wrote:
> Hi.
> I am trying to establish a communication between two RocketIO driven
> Virtex2P FPGAs. I am currently simulating the design running into the
> following problem: When I set the RocketIO Transmitters (Xilinx
> GT_CUSTOM) into parallel loopback mode everything is fine (received data
> = sent data). Whenever I set it into serial loopback mode (or try to
> communicate with another RocketIO receiver) I seem to receive strange
> data (which doesn't seem to be connected to sent data in any way). I am
> completely running out of ideas what I might do wrong, even though I am
> just a starter with RocketIO. An yes, I did read the RocketIO Users
> Guide, but I didn't find it very helpful for my problem.
Are you trying to implement your own protocol? If you are just
transferring data between the devices, why not use the Aurora protocol?
It is simple and already debugged, and works quite well.
Reply by John Stein●December 12, 20072007-12-12
Hi.
I am trying to establish a communication between two RocketIO driven
Virtex2P FPGAs. I am currently simulating the design running into the
following problem: When I set the RocketIO Transmitters (Xilinx
GT_CUSTOM) into parallel loopback mode everything is fine (received data
= sent data). Whenever I set it into serial loopback mode (or try to
communicate with another RocketIO receiver) I seem to receive strange
data (which doesn't seem to be connected to sent data in any way). I am
completely running out of ideas what I might do wrong, even though I am
just a starter with RocketIO. An yes, I did read the RocketIO Users
Guide, but I didn't find it very helpful for my problem.
tnx alot
John