FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 10-26-2008, 08:28 AM
samliu
Guest
 
Posts: n/a
Default "Out of Order" problem in Xilinx V5 used as a PCI Express Endpoint


The problem is strange.
Our platform is ML555 with Xilinx V5. We need transport data from PC t
DRAM on the board through PCI Express Edge. And we successfully did this o
DELL XPS with nForce 680i motherboard. But when we set up to do it on DEL
t5400 workstation with Intel 5400 we got random errors that the data w
loopback from the SDRAM on the board were wrong and out of order.
I just wondering that which part can produce such errors, PCI Express DM
app or DDR2 Controller? By the way, what we using are all sampl
application provided by Xilinx.

Thanks,
Sam Liu
Reply With Quote
  #2 (permalink)  
Old 10-26-2008, 09:51 PM
PatC
Guest
 
Posts: n/a
Default Re: "Out of Order" problem in Xilinx V5 used as a PCI Express Endpoint

samliu wrote:
> The problem is strange.
> Our platform is ML555 with Xilinx V5. We need transport data from PC to
> DRAM on the board through PCI Express Edge. And we successfully did this on
> DELL XPS with nForce 680i motherboard. But when we set up to do it on DELL
> t5400 workstation with Intel 5400 we got random errors that the data we
> loopback from the SDRAM on the board were wrong and out of order.
> I just wondering that which part can produce such errors, PCI Express DMA
> app or DDR2 Controller? By the way, what we using are all sample
> application provided by Xilinx.
>
> Thanks,
> Sam Liu


Hi,

This problem bit me some months ago, and it's actually documented in
the PCIe specification. The completions coming back to the board
responding to non-posted requests, are split in several smaller packets.
This small packets can 'pass' other packets.

ie.
Requests NPA, NPB, NPC come back on some motherboards like you'd expect:

CA1, CA2, CA3, CB1, CB2, CB3, CC1, CC2, CC3

But, on other mo-bos:

CA1, CB1, CC1, CA2, CB2, CC2, CA3, CB3, CC3.

I know it looks crazy. If you were stacking the data as it comes (ie.
into a FIFO), you'd need to sort it before storing it. I used an array
of 8 FIFOs to hold the data temporarily until all pieces of a completion
were received.
Another approach would be to store the data by their packet address,
so it orders it as it is received. This way is how I perceive they
intended the interface to be used, ie. mapped into memory.

HTH,
-P@


Reply With Quote
  #3 (permalink)  
Old 10-27-2008, 02:23 AM
Rube Bumpkin
Guest
 
Posts: n/a
Default Re: "Out of Order" problem in Xilinx V5 used as a PCI Express Endpoint

PatC wrote:
> samliu wrote:
>> The problem is strange.
>> Our platform is ML555 with Xilinx V5. We need transport data from PC to
>> DRAM on the board through PCI Express Edge. And we successfully did
>> this on
>> DELL XPS with nForce 680i motherboard. But when we set up to do it on
>> DELL
>> t5400 workstation with Intel 5400 we got random errors that the data we
>> loopback from the SDRAM on the board were wrong and out of order.
>> I just wondering that which part can produce such errors, PCI Express DMA
>> app or DDR2 Controller? By the way, what we using are all sample
>> application provided by Xilinx.
>>
>> Thanks,
>> Sam Liu

>
> Hi,
>
> This problem bit me some months ago, and it's actually documented in
> the PCIe specification. The completions coming back to the board
> responding to non-posted requests, are split in several smaller packets.
> This small packets can 'pass' other packets.
>
> ie.
> Requests NPA, NPB, NPC come back on some motherboards like you'd expect:
>
> CA1, CA2, CA3, CB1, CB2, CB3, CC1, CC2, CC3
>
> But, on other mo-bos:
>
> CA1, CB1, CC1, CA2, CB2, CC2, CA3, CB3, CC3.
>
> I know it looks crazy. If you were stacking the data as it comes (ie.
> into a FIFO), you'd need to sort it before storing it. I used an array
> of 8 FIFOs to hold the data temporarily until all pieces of a completion
> were received.
> Another approach would be to store the data by their packet address,
> so it orders it as it is received. This way is how I perceive they
> intended the interface to be used, ie. mapped into memory.
>
> HTH,
> -P@
>
>


Each request gets a Tag value, and the completions have matching Tag
values. You need to match up the tags to see which completions are
connected to which requests.

If you had a real-time PCI Express Analyzer, admittedly a lot of money,
you would see this.

RB
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Is "Insight IJC-02" and "Xilinx parallel download cable" the same? kgll8ss@yahoo.com FPGA 0 11-10-2007 04:43 AM
how to represent "inout" data type in testbenches in "verilog" linuxczar Verilog 2 03-21-2007 06:28 PM
"clean" or "unprotected" versions of AHDL2X, SYNTHX from Xilinx (ABL2XNF sub tools) Bill Smith FPGA 0 11-10-2003 11:17 PM
mismateched "by order" port connection in Verilog Bin Li Verilog 2 09-14-2003 02:49 AM


All times are GMT +1. The time now is 09:49 PM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved