Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
15339 Discussions

PCIe MCDMA Gen3x16 Simulation : D2H not fetching data as per descriptor size

heeralk
Employee
267 Views

Hi , 

       I'm using Intel's Pcie MCDMA gen3x16. 

 

For D2H descriptor , I'm requesting for 1600 bytes as my payload size. I have enabled Msi interrupt at the end of transfer. I see an issue that , the msix interrupt is coming after transfer of 1154 bytes itself. Can you help me resolve this issue. 

 

Attached here is the screenshot of the waveform. the device has not issued eof , still msi interrupt has come. 

 

heeralk_0-1620646659227.png

 

Thanks and Regards

Heeral 

0 Kudos
5 Replies
KhaiChein_Y_Intel
254 Views

Hi Heeral,


According to the UG https://www.intel.cn/content/dam/www/programmable/us/en/pdfs/literature/ug/ug20297.pdf (Section 2.1), the Max Payload Size supported is 512 bytes. Could you try to reduce the size and see if it works?


Thanks

Best regards,

KhaiY


heeralk
Employee
248 Views

Hi KhaiY ,

                  Thanks for your response. So the device is suppose to give back to host 1600 bytes, that's why my d2h payload size is 1600 byte.  So I have split into 4 descriptor as below : 

# rx desc addr 00000000000a0000 , size 512 , msix en bit 0 , descriptor count 0
# rx desc addr 00000000000a0200 , size 512 , msix en bit 0 , descriptor count 1
# rx desc addr 00000000000a0400 , size 512 , msix en bit 0 , descriptor count 2
# rx desc addr 00000000000a0600 , size 64 , msix en bit 1 , descriptor count  3

 

I have enabled msix only for the last descriptor. still I see the msix interrupt coming after 1154 bytes of data. 

One note : 

My device (ip ) which is giving the data is not giving it continously. it gives 1154 bytes continuously , then it gives the remaining bytes after 1.6us . I have captured my device data waveform in standalone test as below : 

 

heeralk_0-1620736885886.png

 

The userguide doesnt mention if the data from device has to be continuous or not. 

Please help me resolve the issue.

 

Thanks and Regards

heeral 

 

 

KhaiChein_Y_Intel
227 Views

Hi Heeral,


In the latest waveform, there is no signal name. Could you share a waveform with signal name? Does this happen if you transfer a smaller d2h payload size or less than 1154 bytes?


Thanks

Best regards,

KhaiY


KhaiChein_Y_Intel
225 Views

Hi,


Besides this, could you share the IP settings?



Thanks.

Best regards,

KhaiY


KhaiChein_Y_Intel
203 Views

Hi,

We do not receive any response from you to the previous question/reply/answer that I have provided. This thread will be transitioned to community support. If you have a new question, feel free to open a new thread to get the support from Intel experts. Otherwise, the community users will continue to help you on this thread. Thank you.


Thanks

Best regards,

KhaiY


Reply