Jump to content
  • 0

[Nexys4 DDR] [SDSlot] Pin assignment problem


RemyBlt

Question

Hi,
I'm currently new at the FPGA development field. I'm trying to implement Linux on a SD Card on a Nexys 4 DDR using petalinux and the useful automation tools with the Block Design in Vivado 2020.2. 
The problem that I'm facing is that when I try to add the Onboard Micro SD Slot to the design, it uses the IP made by Digilent named PmodSD_v1_0 made for the Arty board. And when I try to generate the bitstream, it fails with these messages :


Selection_018.png.322cf53dfce0146cf315c63c9833336b.png
Selection_019.thumb.png.bffe366d083090e6f1fbc08eb2162ca0.png

I've also tried to use the answer from this forum made by @jpeyron found here but the IP made for the Nexys 4DDR is for Vivado 2018.3 and he gave the project without the IP source so I can't generate the block with his parameters for my own project. 

Here is the design that I have made :

Selection_017.thumb.png.9a659c723bc6d958647a3348a39e6f77.png

I've also tried to re-generate the IP block from the git with my board as a parameter but it fails to find the correct pins :

Selection_020.png.29aeb0ef7d9042580521d7a6bc9c6bec.png

 

I have also tried to find in the elaborated design where all the pins are connected to manually assign all the pins but some of them are not connected because of these errors so I can't be sure about which pin I've to connect to which part of the SD slot.
 

Does anyone could help me to find a solution for this problem ?
Thank you for reading,
RemyBlt

Edited by RemyBlt
Forgot the link of what I was talking about
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Hi, quick update for those who might have this problem later. I've managed to solve this issue (well, generate a bitstream, not sure if it really works yet) by checking in the digilent boards folder from here. In the "Nexys4 DDR" folder there is a file named "part0_pins.xml". In this you will find what is used to generate the .xdc file from the Block Design for the SD slot.

<pin index="171" name ="SD1" iostandard="LVCMOS33" loc="D2"/>

And from this you write lines in this format in a constraint file that you can create if needed to tell to your wrapper which pin you assign to which pin of the FPGA.

set_property -dict {PACKAGE_PIN D2 IOSTANDARD LVCMOS33} [get_ports sd_pin1_io]

And in the Block Design, double click the PModSD block and set the "Board Parameter" to "Custom" to tell the software that you don't want it to generate an automated constraint file for this block.

I've not yet tried to do a software test to be sure that this trick indeed solved my issue since I've some other issues with petalinux and the SD card (obvious incompatible drivers from the PModSD drivers) but that might be a hint for your own work.

Edited by RemyBlt
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...