Success! Subscription added.
Success! Subscription removed.
Sorry, you must verify to complete this action. Please click the verification link in your email. You may re-send via your profile.
Initial Release – Jan 2016 – Max10 LPDDR2 SDRAM UniPHY 200MHz Half Rate, Quartus II v15.1, LPDDR2 SDRAM Controller with UniPHY.
This design is meant as a demo style lab. It very briefly covers the steps required to design a 16-bit wide, 200-MHz LPDDR2 SDRAM interface working with a Max10 FPGA Evaluation Kit. This kit is equipped with a ISSI IS43LD16640A LPDDR2 SDRAM components. The purpose of the lab is for the reader to get a basic feel for what steps are involved in getting an external memory working with an Altera FPGA and the UniPHY IP. The lab will not cover any of the steps in detail but simply show an overview of the design process.
The UniPHY IP also generates an example top level file, an example driver, and a test bench including an external memory model. All these will be used to demonstrate the LPDDR2 SDRAM functionality.
The table below lists the specifications for this design:
Attribute | Specification |
---|---|
Quartus version | QuartusII v15.1.2 |
FPGA | 10M50DAF484C6GES |
Kit | Evaluation Kit |
Memory device | LPDDR2 SDRAM (IS43LD16640A-3BL) |
Memory speed | 400MHz |
Memory topology | X16-bit |
IP used | LPDDR2 SDRAM Controller II with UniPHY IP and generated example top Quartus project |
The lab uses Quartus II v15.1.2 and has Modelsim set up for simulation. The lab assumes the reader is a competent user of these tools and many of their features.
A Quartus archive for the final project is also included for reference. Files for this lab are located in this – zip file Create a new folder for the project and place the files in it.
1. In the Quartus II software, create a Quartus II project using the New Project Wizard available from the File menu. For this lab, use following information to setup the project accordingly:
2. Launch the IP Catalog from the Tools menu
3. Double click LPDDR2 SDRAM Controller with UniPHY IP from the Memory Interfaces and Controllers > Memory Interfaces with UniPHY folder in the Library list.
4. Set parameters for Memory Controller with UniHY
1. Set Speed grade to 6.
2. Set Memory clock frequency to 200 MHz
3. Set PLL reference clock frequency to 100 MHz.
4. Select Half for half-rate Avalon-MM interface.
1. Select Discrete Device for Memory format.
2. Select 400 MHz for Memory device speed grade.
3. Type 16 for Total interface width.
4. Type 13 for Row address width.
5. Type 10 for Column address width.
6. Type 3 for Bank address width.
7. Select 8 for Burst Length.
8. Select Sequential for Read Burst Type.
9. Select 4 for Read latency setting.
10. Select 40 for output drive strength setting.
1. Set tIS (base) to 70ps
2. Set tIH (base) to 160ps
3. Set tDS(base) to 50ps
4. Set tDH(base) to 140ps
5. Set tDQSQ to 240ps
6. Set tQHS to 280ps
7. Set tDQSCK(max) to 5500ps
8. Set tDQSCK Delta Short to 450ps
9. Set tDQSCK Delta Medium to 900ps
10. Set tDQSCK Delta Long to 1200ps
11. Set tDQSS to 1.25 cycles
12. Set tDQSH to 0.4 cycles
13. Set tDSH to 0.2 cycles
14. Set tDSS to 0.2 cycles
15. Set tINIT to 500us
16. Set tMRW to 5 cycles
17. Set tRAS to 42.0ns
18. Set tRCD to 18.0ns
19. Set tRP to 21.0ns
20. Set tREFIab to 7.8us
21. Set tRFCab to 130ns
22. Set tWR to 15.0ns
23. Set tWTR to 2 cycles
24. Set tFAW to 50.0ns
25. Set tRRD to 10.0ns
26. Set tRTP to 7.5ns
1. Users should do board simulation for proper values in this page:
- In the Board Settings tab, set the slew rate parameters to the specified values below:
Select Use Altera’s default settings
CK/CK# slew rate (Differential): 2.0V/ps
Address and command slew rate: 1.0V/ns
DQS/DQS# slew rate (Differential): 2.0V/ns
DQ slew rate: 1.0V/ns
- Set the Intersymbol Interference/Crosstalk parameters to the specified value below:
Select Use Altera’s default settings
Address and command eye reduction (setup) = 0.0ns
Address and command eye reduction (hold) = 0.0ns
Write DQ eye reduction = 0.0ns
Write Delta DQS arrival time = 0.0ns
Read DQ eye reduction = 0.0ns
Read Delta DQS arrival time = 0.0ns
- Set the Board Skews parameters to the below value:
Select Use Altera’s default settings
Maximum CK delay to DIMM/device : 0.6ns
Maximum CK delay to DIMM/device : 0.6ns
Minimum delay difference between CK and DQS : -0.01ns
Maximum delay difference between CK and DQS : 0.01ns
Minimum skew within DQS group : 0.02ns
Minimum skew between DQS group : 0.02ns
Average delay difference between DQ and DQS : 0.0ns
Maximum skew within address and command bus: 0.02ns
Average delay difference between address and command and CK: 0.0ns
- Set 4 for Maximum Avalon-MM burst length under Avalon Interface
- Check the box for Enable Avalon-MM byte-enable signal
5. Click on the Finish button and the pop-up window appear. Check the box for Generate Example Design and click on Generate.
6. Once the generation completed, click Exit.
1. Set Top-Level Entity
The Megawizard generates a Quartus example top project. This project connects an example driver to the controller interface so users can quickly compile and test their UniPHY IP configuration on hardware.
2. Perform Analysis and Synthesis
This step is required so Quartus can determine the names of the external ports connected to the UniPHY for when the I/O assignments are created in the next step.
3. Assign the pin and DQ group settings
Run the tcl script <variation_name>_pin_assignments.tcl to assign the pin and DQ group assignments. This tcl script is generated for you by the IP megawizard
4. Assign the pin locations
Pin locations for external memory systems are not automatically created.
5. Do a Full Compile
- Note: Make sure the design does not have timing violation.
- Note: To improve timing you can go to Assignments > Settings > Compiler Settings >
Select the option Performance (High effort - increases runtime)
- Note: To improve timing you can go to Assignments > Settings > Compiler Settings > Advanced Settings (Synthesis)
Select "Speed" for the Optimization Technique.
1. In the Quartus II software, launch SignalTap II Logic Analyzer from Tools menu.
-ddr3_example_if0:if0|local_cal_fail
-ddr3_example_if0:if0|local_cal_success
-ddr3_example_if0:if0|local_init_done
-driver_avl_use_be_avl_use_burstbegin:traffic_generator_0|pass
-driver_avl_use_be_avl_use_burstbegin:traffic_generator_0|fail
-driver_avl_use_be_avl_use_burstbegin:traffic_generator_0|test_complete
-ddr3_example_if0_p0:p0|phy_cal_debug_info[31..0]
1. Timing Analysis results
In the Compilation Report, Time Quest Timing Analyzer folder expand the three VT model folders, and the Report DDR folder
Note: there will be some unconstrained paths in the design. These are associated with the example driver that will not be part of a fully integrated HP controller design.
1. On board debug with Signal Tap
Open the Signal Tap file and reset the .sof file to the one just created with the full compilation
- Reset the design by pushing the press button for CPU reset on the development kit
- Ensure that test complete goes high (signal tap is trigger on this), this is the end of the driver testing, check the driver's pass signal is high.
- Also check that calibration was successful and that the PLL is locked
- Also the LED1 on the board will light up and turn to green colour
The Quartus II software creates a complete design example for functional simulation in the <variation_name>_example_design/simulation/ directory. To run the RTL simulation, perform the following steps:
Initial Release – Feb 2016 – Max10 LPDDR3 SDRAM x16 200MHz, Quartus II v15.1.2, LPDDR2 SDRAM Controller with UniPHY, Max10 Evaluation Kit.
1. List of designs using Altera External Memory IP
1. Altera's External Memory Interface Solutions Center
2. Altera's External Memory Interface Handbook
UniPHY, LPDDR2 SDRAM, Design Example, External Memory , Max 10
Community support is provided during standard business hours (Monday to Friday 7AM - 5PM PST). Other contact methods are available here.
Intel does not verify all solutions, including but not limited to any file transfers that may appear in this community. Accordingly, Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.
For more complete information about compiler optimizations, see our Optimization Notice.