This application note describes a module that adds dualport read/write access to the host-side port of the XESS SDRAM controller.
The dualport module attaches to the host-side port of the XESS SDRAM controller and splits it into two identical host-side ports. Each of these ports operates identically to the orignal host-side port so no modifications are needed in any applications that used the original SDRAM controller. An application performs memory read/write operations on its port independently of any operations that occur on the other port. The total SDRAM bandwidth can be allocated between the two ports to match the data rates of the attached applications. Dualport modules can be cascaded to build SDRAM interfaces with three or more independent ports.
An example with two independent modules that each write random data to separate sections of the SDRAM and then verify it is provided to show how the dualport module is used.
S6 +====+ S5| S3 |S4 |====| S2| |S1 +====+ S0
The meaning of the LED segment activations is as follows:
Lower Memory Status S0 S1 S2 =============================================== Initialization ON OFF OFF ----------------------------------------------- Writing RNG sequence to the OFF ON OFF lower half of SDRAM
----------------------------------------------- Reading data from the lower OFF OFF ON half of the SDRAM and comparing it to RNG sequence ----------------------------------------------- Passed - no mismatches found OFF OFF OFF ----------------------------------------------- Failed - mismatches found ON ON ON -----------------------------------------------
Upper Memory Status S3 S4 S5 =============================================== Initialization ON OFF OFF ----------------------------------------------- Writing RNG sequence to the OFF ON OFF upper half of SDRAM
----------------------------------------------- Reading data from the upper OFF OFF ON half of the SDRAM and comparing it to RNG sequence ----------------------------------------------- Passed - no mismatches found OFF OFF OFF ----------------------------------------------- Failed - mismatches found ON ON ON -----------------------------------------------
The memory test will run repeatedly as long as pushbutton SW2 on the XSA Board is pressed. You should see that the S4-S5 LEDs flash more quickly than the S1-S2 LEDs. Because port 1 is allocated more time slots than port 0, the upper half of memory can be tested in less time so the associated LEDs flash more quickly than those for the lower half.
This example design was developed using the following version of software:
Xilinx WebPACK : 6.3.03i
You can download the source files for this example design from the XESS website at /projects/dualporttst-1_1.zip .
Dave Vanden Bout, X Engineering Software Systems Corp.
Send bug reports to bugs@xess.com.
Copyright 2006 by X Engineering Software Systems Corporation.
This application can be freely distributed and modified as long as you do not remove the attributions to the author or his employer.
04/06/2006 - Initial release.