08-23-2010 05:45 PM
I am simulating PCIE on modelsim SE6.5. I connect my own PCIE (X8) DMA design to downsport (provided by IP core).
When I transmit Memory write, CPLD,memory read from downsport to my design, and transmit CPLD or Memory read from my design to downsport, everything works correctly.
However,when transmit Memory read with data from my own design to downsport, strange things happens. The data transmitted on the PCIE's locallink interface of my design is correct,but downsport never receive anything. (I connect txp,txn ,rxp,rxn of my deign to rxp,rxn,txp,txn of downsport). Of course,when I use TSK_EXPECT_MEMWR,it returns nothing.In the error.dat file,no error is recorded.
In the configuration space ,I set Base Address register,command register and device control register.
I don't know why,why the downsport can't receive DMA's memory write request. Please help.
08-23-2010 08:32 PM
08-24-2010 07:04 PM
Thank you very much for your quick reply. It is quite helpful to me .
I have found where my problem comes from. In my PCIe DMA project, I send memory write TLP with 128DW data. However,the max payload in device control register of downsport is "000",which represent that the max payload is 32DW.
I tried your suggestion,but I still can not change the device control register of downsport to 'h285f. When implement TSK_READ_CFG_DW, it work correctly,and cfg_rd_wr_done_n of downsport will set 0. But when implement TSK_WRITE_CFG_DW, nothing changed in downsport's configuration space,and cfg_rd_wr_done_n never goes 0.
It seems the downsport doesn't support configuration write.
Additional,in AR#33918,the first step is to change file pcie_2_0_rport_v6.v, but the IP core "Endpoint block plus for PCI Express" doesn't generate this file.
What should I do ,Please help.