UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Explorer
Explorer
576 Views
Registered: ‎07-05-2017

How to swap DDR memory Controller pins on ZYNQ FPGA?

On a XC7Z020-1CLG484C FPGA
 
I am using the pre-packaged IP DDR3 memory controller off the Zynq processor. I made a mistake on copying the reference design from the Zedboard on two DDR3 interface pins,  DDR3-DM2 and DDR3-DM3 that are fixed on P1 and AA2 respectively on ZYNQ FPGA IO bank 502. 
 I looked at the I/O ports selection gui in "ELABORATED DESIGN" and it seems like they are fixed. Is there a way to swap the  DDR3-DM2 and DDR3-DM3 pin selection from (P1 , AA2) to (AA2,  P1)?  Where can I find the constraint file?
 
Thanks,
0 Kudos
5 Replies
546 Views
Registered: ‎01-08-2012

Re: How to swap DDR memory Controller pins on ZYNQ FPGA?

You can swap them with a scalpel, some 30 gauge wire and a soldering iron.

These pins are not part of the "PL" FPGA fabric.  They cannot be reprogrammed by any constraints file.

 

Here's something you can do though - configure your FSBL to make the Zynq use 16 bit RAM instead of 32 bit RAM.  I'm reasonably sure that this means it will not drive DM[2] and DM[3], so their swap becomes irrelevant.  You will lose half your RAM capacity (and some speed, due to reduced bus width), but at least you can get your board working well enough to test the rest of it while you wait for your revised PCB design to be manufactured.

BTW, you might want to check chapter 10 of the Zynq 7 TRM ug585 to make sure that 16 bit mode really will work for you.

Explorer
Explorer
510 Views
Registered: ‎07-05-2017

Re: How to swap DDR memory Controller pins on ZYNQ FPGA?

Thanks Allanherriman for your suggestion of configure the DDR memory to 16 bit wide in the FSBL. I will try this at some point soon. Another method I'm thinking of making a small PC board with the two pin correction and stack the DDR3 memory on it and solder the small PCB with the DDR3 memory stacked on it on my main PCB.

0 Kudos
Explorer
Explorer
341 Views
Registered: ‎07-05-2017

Re: How to swap DDR memory Controller pins on ZYNQ FPGA?

Hi allanherriman,

 

Some time ago you suggested "Here's something you can do though - configure your FSBL to make the Zynq use 16 bit RAM instead of 32 bit RAM". I went to the SDK and tried create an new FSBL project. I did not see any configuration parameteres to set the Zynq use 16 bit RAM. How would you configure FSBL to make the Zynq use 16 bit RAM?

 

Thanks,

Aynilian

0 Kudos
305 Views
Registered: ‎01-08-2012

Re: How to swap DDR memory Controller pins on ZYNQ FPGA?

@aynilian  We don't use the SDK here, so I'm not sure how it is done using the SDK.

But googling for "zynq 7 16 bit DDR" gives a ton of hits.  The second hit (when I did it) led to a page that contained this text:

"To emulate a single bank memory I've changed in ZYNQ7 Processing System, under DDR Configuration, the Effective DRAM Bus Width to 16 Bit.  I can see that when exporting the project to the XSDK and creating a new project, the lscript.ld has half size for the ddr."

0 Kudos
Explorer
Explorer
263 Views
Registered: ‎07-05-2017

Re: How to swap DDR memory Controller pins on ZYNQ FPGA?

I just made the Petalinux build out of the 16 bit  DDR memroy width selected ZYNQ 7  (See photo attached) but in the Implemented design still shows all 32 ports active in the I/O Ports Report. I tried to boot the Petalinux build with the 16 bit DDR memory width build in my board and it did throw a Kernal Panic and hung. Even though the same build worked in the Zedboard. I have tested my board DDR memroy extensively and I know it works in 32 and 16 bit access error free. So I know the data interface is okay. One thing to try is to remove one of the memory chips in the Zedboard and see if it still boots on the Zedboard (will be a waste of a Zedboard). 

I'm just wondering why the I/O report still shows 32 pins connected to the DDR?

DDR_Bus_Width 2019-05-20 12-00-10.png

DDR_IO_Ports 2019-05-20 12-02-06.png
DDR_Bus_Width 2019-05-20 12-00-10.png
0 Kudos