Visible to Intel only — GUID: fuy1597768784311
Ixiasoft
1. About the External Memory Interfaces Intel® Agilex™ FPGA IP
2. Intel® Agilex™ FPGA EMIF IP – Introduction
3. Intel® Agilex™ FPGA EMIF IP – Product Architecture
4. Intel® Agilex™ FPGA EMIF IP – End-User Signals
5. Intel® Agilex™ FPGA EMIF IP – Simulating Memory IP
6. Intel® Agilex™ FPGA EMIF IP – DDR4 Support
7. Intel® Agilex™ FPGA EMIF IP – QDR-IV Support
8. Intel® Agilex™ FPGA EMIF IP – Timing Closure
9. Intel® Agilex™ FPGA EMIF IP – I/O Timing Closure
10. Intel® Agilex™ FPGA EMIF IP – Controller Optimization
11. Intel® Agilex™ FPGA EMIF IP – Debugging
12. External Memory Interfaces Intel® Agilex™ FPGA IP User Guide Archives
13. Document Revision History for External Memory Interfaces Intel® Agilex™ FPGA IP User Guide
3.1. Intel® Agilex™ EMIF Architecture: Introduction
3.2. Intel® Agilex™ EMIF Sequencer
3.3. Intel® Agilex™ EMIF Calibration
3.4. Intel® Agilex™ EMIF Controller
3.5. User-requested Reset in Intel® Agilex™ EMIF IP
3.6. Intel® Agilex™ EMIF for Hard Processor Subsystem
3.7. Using a Custom Controller with the Hard PHY
3.1.1. Intel® Agilex™ EMIF Architecture: I/O Subsystem
3.1.2. Intel® Agilex™ EMIF Architecture: I/O SSM
3.1.3. Intel® Agilex™ EMIF Architecture: I/O Bank
3.1.4. Intel® Agilex™ EMIF Architecture: I/O Lane
3.1.5. Intel® Agilex™ EMIF Architecture: Input DQS Clock Tree
3.1.6. Intel® Agilex™ EMIF Architecture: PHY Clock Tree
3.1.7. Intel® Agilex™ EMIF Architecture: PLL Reference Clock Networks
3.1.8. Intel® Agilex™ EMIF Architecture: Clock Phase Alignment
3.3.4.3.1. Debugging Calibration Failure Using Information from the Calibration report
3.3.4.3.2. Debugging Address and Command Leveling Calibration Failure
3.3.4.3.3. Debugging Address and Command Deskew Failure
3.3.4.3.4. Debugging DQS Enable Failure
3.3.4.3.5. Debugging Read Deskew Calibration Failure
3.3.4.3.6. Debugging VREFIN Calibration Failure
3.3.4.3.7. Debugging LFIFO Calibration Failure
3.3.4.3.8. Debugging Write Leveling Failure
3.3.4.3.9. Debugging Write Deskew Calibration Failure
3.3.4.3.10. Debugging VREFOUT Calibration Failure
4.1.1.1. local_reset_req for DDR4
4.1.1.2. local_reset_status for DDR4
4.1.1.3. pll_ref_clk for DDR4
4.1.1.4. pll_locked for DDR4
4.1.1.5. ac_parity_err for DDR4
4.1.1.6. oct for DDR4
4.1.1.7. mem for DDR4
4.1.1.8. status for DDR4
4.1.1.9. afi_reset_n for DDR4
4.1.1.10. afi_clk for DDR4
4.1.1.11. afi_half_clk for DDR4
4.1.1.12. afi for DDR4
4.1.1.13. emif_usr_reset_n for DDR4
4.1.1.14. emif_usr_clk for DDR4
4.1.1.15. ctrl_amm for DDR4
4.1.1.16. ctrl_amm_aux for DDR4
4.1.1.17. ctrl_auto_precharge for DDR4
4.1.1.18. ctrl_user_priority for DDR4
4.1.1.19. ctrl_ecc_user_interrupt for DDR4
4.1.1.20. ctrl_ecc_readdataerror for DDR4
4.1.1.21. ctrl_ecc_status for DDR4
4.1.1.22. ctrl_mmr_slave for DDR4
4.1.1.23. hps_emif for DDR4
4.1.1.24. emif_calbus for DDR4
4.1.1.25. emif_calbus_clk for DDR4
4.1.2.1. local_reset_req for QDR-IV
4.1.2.2. local_reset_status for QDR-IV
4.1.2.3. pll_ref_clk for QDR-IV
4.1.2.4. pll_locked for QDR-IV
4.1.2.5. oct for QDR-IV
4.1.2.6. mem for QDR-IV
4.1.2.7. status for QDR-IV
4.1.2.8. afi_reset_n for QDR-IV
4.1.2.9. afi_clk for QDR-IV
4.1.2.10. afi_half_clk for QDR-IV
4.1.2.11. afi for QDR-IV
4.1.2.12. emif_usr_reset_n for QDR-IV
4.1.2.13. emif_usr_clk for QDR-IV
4.1.2.14. ctrl_amm for QDR-IV
4.1.2.15. emif_calbus for QDR-IV
4.1.2.16. emif_calbus_clk for QDR-IV
4.4.1. ctrlcfg0
4.4.2. ctrlcfg1
4.4.3. dramtiming0
4.4.4. sbcfg1
4.4.5. caltiming0
4.4.6. caltiming1
4.4.7. caltiming2
4.4.8. caltiming3
4.4.9. caltiming4
4.4.10. caltiming9
4.4.11. dramaddrw
4.4.12. sideband0
4.4.13. sideband1
4.4.14. sideband4
4.4.15. sideband6
4.4.16. sideband7
4.4.17. sideband9
4.4.18. sideband11
4.4.19. sideband12
4.4.20. sideband13
4.4.21. sideband14
4.4.22. dramsts
4.4.23. niosreserve0
4.4.24. niosreserve1
4.4.25. sideband16
4.4.26. ecc3: ECC Error and Interrupt Configuration
4.4.27. ecc4: Status and Error Information
4.4.28. ecc5: Address of Most Recent SBE/DBE
4.4.29. ecc6: Address of Most Recent Correction Command Dropped
4.4.30. ecc7: Extension for Address of Most Recent SBE/DBE
4.4.31. ecc8: Extension for Address of Most Recent Correction Command Dropped
6.1.1. Intel Agilex EMIF IP DDR4 Parameters: General
6.1.2. Intel Agilex EMIF IP DDR4 Parameters: Memory
6.1.3. Intel Agilex EMIF IP DDR4 Parameters: Mem I/O
6.1.4. Intel Agilex EMIF IP DDR4 Parameters: FPGA I/O
6.1.5. Intel Agilex EMIF IP DDR4 Parameters: Mem Timing
6.1.6. Intel Agilex EMIF IP DDR4 Parameters: Controller
6.1.7. Intel Agilex EMIF IP DDR4 Parameters: Diagnostics
6.1.8. Intel Agilex EMIF IP DDR4 Parameters: Example Designs
6.5.1. Terminations for DDR4 with Intel® Agilex™ Devices
6.5.2. Clamshell Topology
6.5.3. General Layout Routing Guidelines
6.5.4. Reference Stackup
6.5.5. Intel® Agilex™ EMIF-Specific Routing Guidelines for Various DDR4 Topologies
6.5.6. DDR4 Routing Guidelines: Discrete (Component) Topologies
6.5.7. Intel® Agilex™ EMIF Pin Swapping Guidelines
6.5.5.1. One DIMM per Channel (1DPC) for UDIMM, RDIMM, LRDIMM, and SODIMM DDR4 Topologies
6.5.5.2. Two DIMMs per Channel (2DPC) for UDIMM, RDIMM, and LRDIMM DDR4 Topologies
6.5.5.3. Two DIMMs per Channel (2DPC) for SODIMM Topology
6.5.5.4. Skew Matching Guidelines for DIMM Configurations
6.5.5.5. Power Delivery Recommendations for the Memory / DIMM Side
6.5.6.1. Single Rank x 8 Discrete (Component) Topology
6.5.6.2. Single Rank x 16 Discrete (Component) Topology
6.5.6.3. ADDR/CMD Reference Voltage/RESET Signal Routing Guidelines for Single Rank x 8 and R Rank x 16 Discrete (Component) Topologies
6.5.6.4. Skew Matching Guidelines for DDR4 Discrete Configurations
6.5.6.5. Power Delivery Recommendations for DDR4 Discrete Configurations
7.1.1. Intel Agilex EMIF IP QDR-IV Parameters: General
7.1.2. Intel Agilex EMIF IP QDR-IV Parameters: Memory
7.1.3. Intel Agilex EMIF IP QDR-IV Parameters: FPGA I/O
7.1.4. Intel Agilex EMIF IP QDR-IV Parameters: Mem Timing
7.1.5. Intel Agilex EMIF IP QDR-IV Parameters: Controller
7.1.6. Intel Agilex EMIF IP QDR-IV Parameters: Diagnostics
7.1.7. Intel Agilex EMIF IP QDR-IV Parameters: Example Designs
7.3.3.1. Intel® Agilex™ FPGA EMIF IP Banks
7.3.3.2. General Guidelines
7.3.3.3. QDR IV SRAM Commands and Addresses, AP, and AINV Signals
7.3.3.4. QDR IV SRAM Clock Signals
7.3.3.5. QDR IV SRAM Data, DINV, and QVLD Signals
7.3.3.6. Specific Pin Connection Requirements
7.3.3.7. Resource Sharing Guidelines (Multiple Interfaces)
9.1. I/O Timing Closure Overview
9.2. Collateral Generated with Your EMIF IP
9.3. SPICE Decks
9.4. File Organization
9.5. Top-level Parameterization File
9.6. IP-Supplied Parameters that You Might Need to Override
9.7. Understanding the *_ip_parameters.dat File and Making a Mask Polygon
9.8. Multi-Rank Topology
9.9. Pin Parasitics
9.10. Mask Evaluation
10.4.1. Auto-Precharge Commands
10.4.2. Additive Latency
10.4.3. Bank Interleaving
10.4.4. Additive Latency and Bank Interleaving
10.4.5. User-Controlled Refresh
10.4.6. Frequency of Operation
10.4.7. Series of Reads or Writes
10.4.8. Data Reordering
10.4.9. Starvation Control
10.4.10. Command Reordering
10.4.11. Bandwidth
10.4.12. Enable Command Priority Control
10.4.13. Controller Pre-pay and Post-pay Refresh (DDR4 Only)
11.1. Interface Configuration Performance Issues
11.2. Functional Issue Evaluation
11.3. Timing Issue Characteristics
11.4. Verifying Memory IP Using the Signal Tap Logic Analyzer
11.5. Hardware Debugging Guidelines
11.6. Categorizing Hardware Issues
11.7. Debugging with the External Memory Interface Debug Toolkit
11.8. Using the Default Traffic Generator
11.9. Using the Configurable Traffic Generator (TG2)
11.10. EMIF On-Chip Debug Port
11.11. Efficiency Monitor
11.5.1. Create a Simplified Design that Demonstrates the Same Issue
11.5.2. Measure Power Distribution Network
11.5.3. Measure Signal Integrity and Setup and Hold Margin
11.5.4. Vary Voltage
11.5.5. Operate at a Lower Speed
11.5.6. Determine Whether the Issue Exists in Previous Versions of Software
11.5.7. Determine Whether the Issue Exists in the Current Version of Software
11.5.8. Try A Different PCB
11.5.9. Try Other Configurations
11.5.10. Debugging Checklist
11.7.4.3.1. Debugging Calibration Failure Using Information from the Calibration report
11.7.4.3.2. Debugging Address and Command Leveling Calibration Failure
11.7.4.3.3. Debugging Address and Command Deskew Failure
11.7.4.3.4. Debugging DQS Enable Failure
11.7.4.3.5. Debugging Read Deskew Calibration Failure
11.7.4.3.6. Debugging VREFIN Calibration Failure
11.7.4.3.7. Debugging LFIFO Calibration Failure
11.7.4.3.8. Debugging Write Leveling Failure
11.7.4.3.9. Debugging Write Deskew Calibration Failure
11.7.4.3.10. Debugging VREFOUT Calibration Failure
11.9.1. Enabling the Traffic Generator in a Design Example
11.9.2. Traffic Generator Block Description
11.9.3. Default Traffic Pattern
11.9.4. Configuration and Status Registers
11.9.5. User Pattern
11.9.6. Traffic Generator Status
11.9.7. Starting Traffic with the Traffic Generator
11.9.8. Traffic Generator Configuration User Interface
Visible to Intel only — GUID: fuy1597768784311
Ixiasoft
6.1.5. Intel Agilex EMIF IP DDR4 Parameters: Mem Timing
These parameters should be read from the table in the datasheet associated with the speed bin of the memory device (not necessarily the frequency at which the interface is running).
Display Name | Description |
---|---|
Speed bin | The speed grade of the memory device used. This parameter refers to the maximum rate at which the memory device is specified to run. (Identifier: MEM_DDR4_SPEEDBIN_ENUM) |
tIS (base) | tIS (base) refers to the setup time for the Address/Command/Control (A) bus to the rising edge of CK. (Identifier: MEM_DDR4_TIS_PS) |
tIS (base) AC level | tIS (base) AC level refers to the voltage level which the address/command signal must cross and remain above during the setup margin window. The signal is considered stable only if it remains above this voltage level (for a logic 1) or below this voltage level (for a logic 0) for the entire setup period. (Identifier: MEM_DDR4_TIS_AC_MV) |
tIH (base) | tIH (base) refers to the hold time for the Address/Command (A) bus after the rising edge of CK. Depending on what AC level you have chosen for a design, the hold margin can vary (this variance is determined automatically when you choose the "tIH (base) AC level"). (Identifier: MEM_DDR4_TIH_PS) |
tIH (base) DC level | tIH (base) DC level refers to the voltage level which the address/command signal must not cross during the hold window. The signal is considered stable only if it remains above this voltage level (for a logic 1) or below this voltage level (for a logic 0) for the entire hold period. (Identifier: MEM_DDR4_TIH_DC_MV) |
TdiVW_total | TdiVW_total describes the minimum horizontal width of the DQ eye opening required by the receiver (memory device/DIMM). It is measured in UI (1UI = half the memory clock period). (Identifier: MEM_DDR4_TDIVW_TOTAL_UI) |
VdiVW_total | VdiVW_total describes the Rx Mask voltage, or the minimum vertical width of the DQ eye opening required by the receiver (memory device/DIMM). It is measured in mV. (Identifier: MEM_DDR4_VDIVW_TOTAL) |
tDQSQ | tDQSQ describes the latest valid transition of the associated DQ pins for a READ. tDQSQ specifically refers to the DQS, DQS# to DQ skew. It is the length of time between the DQS, DQS# crossing to the last valid transition of the slowest DQ pin in the DQ group associated with that DQS strobe. (Identifier: MEM_DDR4_TDQSQ_UI) |
tQH | tQH specifies the output hold time for the DQ in relation to DQS, DQS#. It is the length of time between the DQS, DQS# crossing to the earliest invalid transition of the fastest DQ pin in the DQ group associated with that DQS strobe. (Identifier: MEM_DDR4_TQH_UI) |
tDVWp | Data valid window per device per pin (Identifier: MEM_DDR4_TDVWP_UI) |
tDQSCK | tDQSCK describes the skew between the memory clock (CK) and the input data strobes (DQS) used for reads. It is the time between the rising data strobe edge (DQS, DQS#) relative to the rising CK edge. (Identifier: MEM_DDR4_TDQSCK_PS) |
tDQSS | tDQSS describes the skew between the memory clock (CK) and the output data strobes used for writes. It is the time between the rising data strobe edge (DQS, DQS#) relative to the rising CK edge. (Identifier: MEM_DDR4_TDQSS_CYC) |
tQSH | tQSH refers to the differential High Pulse Width, which is measured as a percentage of tCK. It is the time during which the DQS is high for a read. (Identifier: MEM_DDR4_TQSH_CYC) |
tDSH | tDSH specifies the write DQS hold time. This is the time difference between the rising CK edge and the falling edge of DQS, measured as a percentage of tCK. (Identifier: MEM_DDR4_TDSH_CYC) |
tDSS | tDSS describes the time between the falling edge of DQS to the rising edge of the next CK transition. (Identifier: MEM_DDR4_TDSS_CYC) |
tWLS | tWLS describes the write leveling setup time. It is measured from the rising edge of CK to the rising edge of DQS. (Identifier: MEM_DDR4_TWLS_CYC) |
tWLH | tWLH describes the write leveling hold time. It is measured from the rising edge of DQS to the rising edge of CK. (Identifier: MEM_DDR4_TWLH_CYC) |
tINIT | tINIT describes the time duration of the memory initialization after a device power-up. After RESET_n is de-asserted, wait for another 500us until CKE becomes active. During this time, the DRAM begins internal initialization; this occurs independently of external clocks. (Identifier: MEM_DDR4_TINIT_US) |
tMRD | The mode register set command cycle time, tMRD is the minimum time period required between two MRS commands. (Identifier: MEM_DDR4_TMRD_CK_CYC) |
tRAS | tRAS describes the activate to precharge duration. A row cannot be deactivated until the tRAS time has been met. Therefore tRAS determines how long the memory has to wait after a activate command before a precharge command can be issued to close the row. (Identifier: MEM_DDR4_TRAS_NS) |
tRCD | tRCD, row command delay, describes the active to read/write time. It is the amount of delay between the activation of a row through the RAS command and the access to the data through the CAS command. (Identifier: MEM_DDR4_TRCD_NS) |
tRP | tRP refers to the Precharge (PRE) command period. It describes how long it takes for the memory to disable access to a row by precharging and before it is ready to activate a different row. (Identifier: MEM_DDR4_TRP_NS) |
tWR | tWR refers to the Write Recovery time. It specifies the amount of clock cycles needed to complete a write before a precharge command can be issued. (Identifier: MEM_DDR4_TWR_NS) |
Display Name | Description |
---|---|
tRRD_S | tRRD_S refers to the Activate to Activate Command Period (short). It is the minimum time interval between two activate commands to the different bank groups. For 3DS devices, this parameter is the same as tRRD_S_slr (i.e. tRRD_S within the same logical rank) in the memory data sheet. (Identifier: MEM_DDR4_TRRD_S_CYC) |
tRRD_L | tRRD_L refers to the Activate to Activate Command Period (long). It is the minimum time interval (measured in memory clock cycles) between two activate commands to the same bank group. For 3DS devices, this parameter is the same as tRRD_L_slr (i.e. tRRD_L within the same logical rank) in the memory data sheet. (Identifier: MEM_DDR4_TRRD_L_CYC) |
tRRD_dlr | tRRD_dlr refers to the Activate to Activate Command Period to Different Logical Ranks. It is the minimum time interval (measured in memory clock cycles) between two activate commands to different logical ranks within a 3DS DDR4 device. (Identifier: MEM_DDR4_TRRD_DLR_CYC) |
tFAW | tFAW refers to the four activate window time. It describes the period of time during which only four banks can be active. For 3DS devices, this parameter is the same as tFAW_slr (i.e. tFAW within the same logical rank) in the memory data sheet. (Identifier: MEM_DDR4_TFAW_NS) |
tCCD_S | tCCD_S refers to the CAS_n-to-CAS_n delay (short). It is the minimum time interval between two read/write (CAS) commands to different bank groups. (Identifier: MEM_DDR4_TCCD_S_CYC) |
tCCD_L | tCCD_L refers to the CAS_n-to-CAS_n delay (long). It is the minimum time interval between two read/write (CAS) commands to the same bank group. (Identifier: MEM_DDR4_TCCD_L_CYC) |
tWTR_S | tWTR_S or Write Timing Parameter refers to the Write to Read period for different bank groups. It describes the delay from start of internal write transaction to internal read command, for accesses to the different bank group. The delay is measured from the first rising memory clock edge after the last write data is received to the rising memory clock edge when a read command is received. (Identifier: MEM_DDR4_TWTR_S_CYC) |
tWTR_L | tWTR_L or Write Timing Parameter refers to the Write to Read period for the same bank group. It describes the delay from start of internal write transaction to internal read command, for accesses to the same bank group. The delay is measured from the first rising memory clock edge after the last write data is received to the rising memory clock edge when a read command is received. (Identifier: MEM_DDR4_TWTR_L_CYC) |
Display Name | Description |
---|---|
tRFC | tRFC refers to the Refresh Cycle Time. It is the amount of delay after a refresh command before an activate command can be accepted by the memory. This parameter is dependent on the memory density and is necessary for proper hardware functionality. For 3DS devices, this parameter is the same as tRFC_slr (i.e. tRFC within the same logical rank) in the memory data sheet. (Identifier: MEM_DDR4_TRFC_NS) |
tREFI | tREFI refers to the average periodic refresh interval. It is the maximum amount of time the memory can tolerate in between each refresh command (Identifier: MEM_DDR4_TREFI_US) |