FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6355 Discussions

Issues using ST-Avalon on Stratix 10 MX development Kit

AKhel1
Beginner
831 Views

Hello,

I am porting an endpoint PCIe IP on my Stratix 10 MX development kit (1SM21BHU2F53E1VG) and I have some issues.

When using a test IP (xillybus) with ST-Avalon PCIE gen2 x8 and a correct pin assignement tooked from the exemple design provided wih the board I got this error messages in Fitter step:

Error(16400): Transceiver channel data signal < pcie_tx[0] > is assigned to pin < PIN_BH45 >, but the specified pin is not compatible with the data signal. Assign the specified data signal to pin < PIN_BL47 >. 

Error(16400): Transceiver channel data signal < pcie_tx[1] > is assigned to pin < PIN_BJ47 >, but the specified pin is not compatible with the data signal. Assign the specified data signal to pin < PIN_BK49 >. 

Error(16400): Transceiver channel data signal < pcie_tx[2] > is assigned to pin < PIN_BG47 >, but the specified pin is not compatible with the data signal. Assign the specified data signal to pin < PIN_BH49 >. 

...

Error(16400): Transceiver channel data signal < pcie_tx[15] > is assigned to pin < PIN_AP45 >, but the specified pin is not compatible with the data signal. Assign the specified data signal to pin < PIN_AR51 >. 

Error(15307): Cannot apply project assignments to the design due to illegal or conflicting assignments. Refer to the other messages for corrective action. 

 

When I remove the PCIe TX assignement I get this error message:

Error(14566): The Fitter cannot place 1 periphery component(s) due to conflicts with existing constraints (1 pin(s)). Fix the errors described in the submessages, and then rerun the Fitter. The Intel FPGA Knowledge Database may also contain articles with information on how to resolve this periphery placement failure. Review the errors and then visit the Knowledge Database at https://www.altera.com/support/support-resources/knowledge-base/search.html and search for this specific error message number. 

Error(175020): The Fitter cannot place logic pin in region (3, 30) to (3, 31), to which it is constrained, because there are no valid locations in the region for logic of this type. 

Error(16234): No legal location could be found out of 2 considered location(s). Reasons why each location could not be used are summarized below: 

Error(184016): There were not enough differential input pin locations available (2 locations affected) 

 

I attached the project if some one want to try.

Thanks a lot for your help

Best regards

Amine

0 Kudos
11 Replies
BoonT_Intel
Moderator
635 Views

Hello, can you just follow the error message instruction to assign the pin accordingly? eg. Assign the specified data signal < pcie_tx[0] > to pin < PIN_BL47 >.

You need to follow the error message instruction to assign all 16 pins accordingly.

 

Anyway, from the attached design, I found it already compiled successful. Is there some misunderstanding here? I guess the design is working previously. but after you changed something and you get the fitter error? if yes, please clarify what change that you did. 😃

0 Kudos
AKhel1
Beginner
635 Views

Hello, Thank you for your answer.

The problem is the PIN_BL47 is for RX PCIe signal, not the TX, and it is the same as defined in the assignment of the example design qts_pcie_ep of the board and in the user guide ...

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug-intel-s10-mx-devl-kit.pdf

It's maybe a constraint to add or something?

 

I recompiled the project that I attached to be sure, and it stops in the Fitter step. Maybe it's due to the Quartus version, I use the Quartus Prime Pro 19.4 which one do you use for your compilation?

I didn't make a lot of modifications, I just change the FPGA to the one I have, regenerate ST-Avalon and reset release IP and change the assignments to the correct one for my board.

 

Yes, the design was made for a different board (also a stratix 10). I can send you the original version of the project if it help?

0 Kudos
BoonT_Intel
Moderator
635 Views

Maybe you can open the IP GUI (platform manager), generate the example design (top right corner), compile the example design without any location assignment and see if the fitter is pass.

0 Kudos
AKhel1
Beginner
635 Views

I generate the example design and it compiles well, then I added the pin locations and I got the same error message (16400) then I permute RX and TX pin location and the design compile well. Is it correct to permute the TX and RX location ? in the example design of the board and in the documentation they didn't permute ... how PCIe would work if the TX became an RX and the RX a TX?

 

I also tried to permute the TX and RX in my original design, now I have only the Error(14566) and after 

0 Kudos
BoonT_Intel
Moderator
635 Views

I don't think we can permute (I presume you mean swap) the TX and RX. Is there some misunderstanding? Can you list out you assign the Rx=? and Tx=? when there is fitter error?

0 Kudos
AKhel1
Beginner
635 Views

This is the pin assignment that doesn't make errors (16400)

pcie_rx[0] PIN_BH45

pcie_rx[1] PIN_BJ47

pcie_rx[2] PIN_BG47

pcie_rx[3] PIN_BF45

pcie_rx[4] PIN_BE47

pcie_rx[5] PIN_BD45

pcie_rx[6] PIN_BB45

pcie_rx[7] PIN_BC47

pcie_rx[8] PIN_BA47

pcie_rx[9] PIN_AY45

pcie_rx[10] PIN_AW47

pcie_rx[11] PIN_AV45

pcie_rx[12] PIN_AU47

pcie_rx[13] PIN_AT45

pcie_rx[14] PIN_AR47

pcie_rx[15] PIN_AP45

 

pcie_tx[0] PIN_BL47

pcie_tx[1] PIN_BK49

pcie_tx[2] PIN_BH49

pcie_tx[3] PIN_BG51

pcie_tx[4] PIN_BF49

pcie_tx[5] PIN_BE51

pcie_tx[6] PIN_BD49

pcie_tx[7] PIN_BC51

pcie_tx[8] PIN_BB49

pcie_tx[9] PIN_BA51

pcie_tx[10] PIN_AY49

pcie_tx[11] PIN_AW51

pcie_tx[12] PIN_AV49

pcie_tx[13] PIN_AU51

pcie_tx[14] PIN_AT49

pcie_tx[15] PIN_AR51

0 Kudos
BoonT_Intel
Moderator
635 Views

According to pin-out file, these assignment is the correct one and no need to swap.

for example:

PIN_BH45 is the RX pin = GXBL1C_RX_CH0p,GXBL1C_REFCLK0p

PIN_BL47 is the TX pin = GXBL1C_TX_CH0p

 

If you swap, you are permute it. So the error is expected.

0 Kudos
AKhel1
Beginner
635 Views

Thank you :-)

This documentation need a correction then (page 31, 32 and 33): https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug-intel-s10-mx-devl-kit.pdf

Can you tell me also please what reset do I need to use for PCIe EP because I have the same problem ...

0 Kudos
BoonT_Intel
Moderator
635 Views

Noted.

What problem with the reset? I will suggest just follow the Quartus auto fit. Eg, compile the example design without location assignment and see it assign the rest to which pin. If you need further help, I hope you can create a new thread for this. It can help every single issue is track under independent thread. Ease the other to search if they are facing same issue.

0 Kudos
AKhel1
Beginner
635 Views

Thank you very much, everything works now. I just restart Quartus and everything worked ! for reset you need to use PIN_AH39

 

Have a nice day :-)

0 Kudos
BoonT_Intel
Moderator
635 Views

Glad to know 😄

0 Kudos
Reply