Visible to Intel only — GUID: hco1416493036632
Ixiasoft
1. Functional Description—UniPHY
2. Functional Description— Intel® MAX® 10 EMIF IP
3. Functional Description—Hard Memory Interface
4. Functional Description—HPS Memory Controller
5. Functional Description—HPC II Controller
6. Functional Description—QDR II Controller
7. Functional Description—RLDRAM II Controller
8. Functional Description—RLDRAM 3 PHY-Only IP
9. Functional Description—Example Designs
10. Introduction to UniPHY IP
11. Latency for UniPHY IP
12. Timing Diagrams for UniPHY IP
13. External Memory Interface Debug Toolkit
14. Upgrading to UniPHY-based Controllers from ALTMEMPHY-based Controllers
1.1. I/O Pads
1.2. Reset and Clock Generation
1.3. Dedicated Clock Networks
1.4. Address and Command Datapath
1.5. Write Datapath
1.6. Read Datapath
1.7. Sequencer
1.8. Shadow Registers
1.9. UniPHY Interfaces
1.10. UniPHY Signals
1.11. PHY-to-Controller Interfaces
1.12. Using a Custom Controller
1.13. AFI 3.0 Specification
1.14. Register Maps
1.15. Ping Pong PHY
1.16. Efficiency Monitor and Protocol Checker
1.17. UniPHY Calibration Stages
1.18. Document Revision History
1.7.1.1. Nios® II-based Sequencer Function
1.7.1.2. Nios® II-based Sequencer Architecture
1.7.1.3. Nios® II-based Sequencer SCC Manager
1.7.1.4. Nios® II-based Sequencer RW Manager
1.7.1.5. Nios® II-based Sequencer PHY Manager
1.7.1.6. Nios® II-based Sequencer Data Manager
1.7.1.7. Nios® II-based Sequencer Tracking Manager
1.7.1.8. Nios® II-based Sequencer Processor
1.7.1.9. Nios® II-based Sequencer Calibration and Diagnostics
1.17.1. Calibration Overview
1.17.2. Calibration Stages
1.17.3. Memory Initialization
1.17.4. Stage 1: Read Calibration Part One—DQS Enable Calibration and DQ/DQS Centering
1.17.5. Stage 2: Write Calibration Part One
1.17.6. Stage 3: Write Calibration Part Two—DQ/DQS Centering
1.17.7. Stage 4: Read Calibration Part Two—Read Latency Minimization
1.17.8. Calibration Signals
1.17.9. Calibration Time
4.1. Features of the SDRAM Controller Subsystem
4.2. SDRAM Controller Subsystem Block Diagram
4.3. SDRAM Controller Memory Options
4.4. SDRAM Controller Subsystem Interfaces
4.5. Memory Controller Architecture
4.6. Functional Description of the SDRAM Controller Subsystem
4.7. SDRAM Power Management
4.8. DDR PHY
4.9. Clocks
4.10. Resets
4.11. Port Mappings
4.12. Initialization
4.13. SDRAM Controller Subsystem Programming Model
4.14. Debugging HPS SDRAM in the Preloader
4.15. SDRAM Controller Address Map and Register Definitions
4.16. Document Revision History
10.7.1. DDR2, DDR3, and LPDDR2 Resource Utilization in Arria V Devices
10.7.2. DDR2 and DDR3 Resource Utilization in Arria II GZ Devices
10.7.3. DDR2 and DDR3 Resource Utilization in Stratix III Devices
10.7.4. DDR2 and DDR3 Resource Utilization in Stratix IV Devices
10.7.5. DDR2 and DDR3 Resource Utilization in Arria V GZ and Stratix V Devices
10.7.6. QDR II and QDR II+ Resource Utilization in Arria V Devices
10.7.7. QDR II and QDR II+ Resource Utilization in Arria II GX Devices
10.7.8. QDR II and QDR II+ Resource Utilization in Arria II GZ, Arria V GZ, Stratix III, Stratix IV, and Stratix V Devices
10.7.9. RLDRAM II Resource Utilization in Arria® V Devices
10.7.10. RLDRAM II Resource Utilization in Arria® II GZ, Arria® V GZ, Stratix® III, Stratix® IV, and Stratix® V Devices
13.1. User Interface
13.2. Setup and Use
13.3. Operational Considerations
13.4. Troubleshooting
13.5. Debug Report for Arria V and Cyclone V SoC Devices
13.6. On-Chip Debug Port for UniPHY-based EMIF IP
13.7. Example Tcl Script for Running the Legacy EMIF Debug Toolkit
13.8. Document Revision History
Visible to Intel only — GUID: hco1416493036632
Ixiasoft
5.4.3.1. Enabling the AXI Interface
This section provides guidance for enabling the AXI interface.
- To enable the AXI interface, first open in an editor the file appropriate for the required flow, as indicated below:
- For synthesis flow: <working_dir>/<variation_name>/<variation_name>_c0.v
- For simulation flow: <working_dir>/<variation_name>_sim/<variation_name>/<variation_name>_c0.v
- Example design fileset for synthesis: <working_dir>/<variation_name>_example_design/example_project/<variation_name>_example/submodules/<variation_name>_example_if0_c0.v
- Example design fileset for simulation: <working_dir>/<variation_name>_example_design/simulation/verilog/submodules/<variation_name>_example_sim_e0_if0_c0.v
- Locate and remove the alt_mem_ddrx_mm_st_converter instantiation from the .v file opened in the preceding step.
- Instantiate the alt_mem_ddrx_axi_st_converter module into the open .v file. Refer to the following code fragment as a guide:
module ? # ( parameter // AXI parameters AXI_ID_WIDTH = <replace parameter value>, AXI_ADDR_WIDTH = <replace parameter value>, AXI_LEN_WIDTH = <replace parameter value>, AXI_SIZE_WIDTH = <replace parameter value>, AXI_BURST_WIDTH = <replace parameter value>, AXI_LOCK_WIDTH = <replace parameter value>, AXI_CACHE_WIDTH = <replace parameter value>, AXI_PROT_WIDTH = <replace parameter value>, AXI_DATA_WIDTH = <replace parameter value>, AXI_RESP_WIDTH = <replace parameter value> ) ( // Existing ports ... // AXI Interface ports // Write address channel input wire [AXI_ID_WIDTH - 1 : 0] awid, input wire [AXI_ADDR_WIDTH - 1 : 0] awaddr, input wire [AXI_LEN_WIDTH - 1 : 0] awlen, input wire [AXI_SIZE_WIDTH - 1 : 0] awsize, input wire [AXI_BURST_WIDTH - 1 : 0] awburst, input wire [AXI_LOCK_WIDTH - 1 : 0] awlock, input wire [AXI_CACHE_WIDTH - 1 : 0] awcache, input wire [AXI_PROT_WIDTH - 1 : 0] awprot, input wire awvalid, output wire awready, // Write data channel input wire [AXI_ID_WIDTH - 1 : 0] wid, input wire [AXI_DATA_WIDTH - 1 : 0] wdata, input wire [AXI_DATA_WIDTH / 8 - 1 : 0] wstrb, input wire wlast, input wire wvalid, output wire wready, // Write response channel output wire [AXI_ID_WIDTH - 1 : 0] bid, output wire [AXI_RESP_WIDTH - 1 : 0] bresp, output wire bvalid, input wire bready, // Read address channel input wire [AXI_ID_WIDTH - 1 : 0] arid, input wire [AXI_ADDR_WIDTH - 1 : 0] araddr, input wire [AXI_LEN_WIDTH - 1 : 0] arlen, input wire [AXI_SIZE_WIDTH - 1 : 0] arsize, input wire [AXI_BURST_WIDTH - 1 : 0] arburst, input wire [AXI_LOCK_WIDTH - 1 : 0] arlock, input wire [AXI_CACHE_WIDTH - 1 : 0] arcache, input wire [AXI_PROT_WIDTH - 1 : 0] arprot, input wire arvalid, output wire arready, // Read data channel output wire [AXI_ID_WIDTH - 1 : 0] rid, output wire [AXI_DATA_WIDTH - 1 : 0] rdata, output wire [AXI_RESP_WIDTH - 1 : 0] rresp, output wire rlast, output wire rvalid, input wire rready ); // Existing wire, register declaration and instantiation ... // AXI interface instantiation alt_mem_ddrx_axi_st_converter # ( .AXI_ID_WIDTH (AXI_ID_WIDTH ), .AXI_ADDR_WIDTH (AXI_ADDR_WIDTH ), .AXI_LEN_WIDTH (AXI_LEN_WIDTH ), .AXI_SIZE_WIDTH (AXI_SIZE_WIDTH ), .AXI_BURST_WIDTH (AXI_BURST_WIDTH ), .AXI_LOCK_WIDTH (AXI_LOCK_WIDTH ), .AXI_CACHE_WIDTH (AXI_CACHE_WIDTH ), .AXI_PROT_WIDTH (AXI_PROT_WIDTH ), .AXI_DATA_WIDTH (AXI_DATA_WIDTH ), .AXI_RESP_WIDTH (AXI_RESP_WIDTH ), .ST_ADDR_WIDTH (ST_ADDR_WIDTH ), .ST_SIZE_WIDTH (ST_SIZE_WIDTH ), .ST_ID_WIDTH (ST_ID_WIDTH ), .ST_DATA_WIDTH (ST_DATA_WIDTH ), .COMMAND_ARB_TYPE (COMMAND_ARB_TYPE) ) a0 ( .ctl_clk (afi_clk), .ctl_reset_n (afi_reset_n), .awid (awid), .awaddr (awaddr), .awlen (awlen), .awsize (awsize), .awburst (awburst), .awlock (awlock), .awcache (awcache), .awprot (awprot), .awvalid (awvalid), .awready (awready), .wid (wid), .wdata (wdata), .wstrb (wstrb), .wlast (wlast), .wvalid (wvalid), .wready (wready), .bid (bid), .bresp (bresp), .bvalid (bvalid), .bready (bready), .arid (arid), .araddr (araddr), .arlen (arlen), .arsize (arsize), .arburst (arburst), .arlock (arlock), .arcache (arcache), .arprot (arprot), .arvalid (arvalid), .arready (arready), .rid (rid), .rdata (rdata), .rresp (rresp), .rlast (rlast), .rvalid (rvalid), .rready (rready), .itf_cmd_ready (ng0_native_st_itf_cmd_ready), .itf_cmd_valid (a0_native_st_itf_cmd_valid), .itf_cmd (a0_native_st_itf_cmd), .itf_cmd_address (a0_native_st_itf_cmd_address), .itf_cmd_burstlen (a0_native_st_itf_cmd_burstlen), .itf_cmd_id (a0_native_st_itf_cmd_id), .itf_cmd_priority (a0_native_st_itf_cmd_priority), .itf_cmd_autoprecharge (a0_native_st_itf_cmd_autopercharge), .itf_cmd_multicast (a0_native_st_itf_cmd_multicast), .itf_wr_data_ready (ng0_native_st_itf_wr_data_ready), .itf_wr_data_valid (a0_native_st_itf_wr_data_valid), .itf_wr_data (a0_native_st_itf_wr_data), .itf_wr_data_byte_en (a0_native_st_itf_wr_data_byte_en), .itf_wr_data_begin (a0_native_st_itf_wr_data_begin), .itf_wr_data_last (a0_native_st_itf_wr_data_last), .itf_wr_data_id (a0_native_st_itf_wr_data_id), .itf_rd_data_ready (a0_native_st_itf_rd_data_ready), .itf_rd_data_valid (ng0_native_st_itf_rd_data_valid), .itf_rd_data (ng0_native_st_itf_rd_data), .itf_rd_data_error (ng0_native_st_itf_rd_data_error), .itf_rd_data_begin (ng0_native_st_itf_rd_data_begin), .itf_rd_data_last (ng0_native_st_itf_rd_data_last), .itf_rd_data_id (ng0_native_st_itf_rd_data_id) );
- Set the required parameters for the AXI interface. The following table lists the available parameters.
- Export the AXI interface to the top-level wrapper, making it accessible to the AXI master.
- To add the AXI interface to the Quartus Prime project:
- On the Assignments > Settings menu in the Quartus Prime software, open the File tab.
- Add the alt_mem_ddrx_axi_st_converter.v file to the project.