1. Agilex™ 3 Embedded Memory Overview
2. Agilex™ 3 Embedded Memory Architecture and Features
3. Agilex™ 3 Embedded Memory Design Considerations
4. Agilex™ 3 Embedded Memory IP References
5. Agilex™ 3 Embedded Memory Debugging
6. Document Revision History for the Embedded Memory User Guide: Agilex™ 3 FPGAs and SoCs
2.1. Byte Enable in Agilex™ 3 Embedded Memory Blocks
2.2. Address Hold Support
2.3. Asynchronous Clear and Synchronous Clear
2.4. Memory Blocks Error Correction Code Support
2.5. Agilex™ 3 Embedded Memory Clocking Modes
2.6. Agilex™ 3 Embedded Memory Configurations
2.7. Force-to-Zero
2.8. Coherent Read Memory
2.9. Freeze Logic
2.10. True Dual Port Dual Clock Emulator
2.11. Initial Value of Read and Write Address Registers
2.12. Automatic Timing/Power Optimization in M20K Blocks
3.1. Consider the Memory Block Selection
3.2. Consider the Concurrent Write Behavior
3.3. Read-During-Write
3.4. Consider Power-Up State and Memory Initialization
3.5. Reduce Power Consumption
3.6. Avoid Providing Non-Deterministic Input
3.7. Avoid Changing Clock Signals and Other Control Signals Simultaneously
3.8. Advanced Settings in Quartus® Prime Software for Memory
3.9. Consider the Memory Depth Setting
3.10. Consider Registering the Memory Output
4.2.5.1. FIFO Functional Timing Requirements
4.2.5.2. SCFIFO ALMOST_EMPTY Functional Timing
4.2.5.3. FIFO Output Status Flag and Latency
4.2.5.4. FIFO Metastability Protection and Related Options
4.2.5.5. FIFO Synchronous Clear and Asynchronous Clear Effect
4.2.5.6. SCFIFO and DCFIFO Show-Ahead Mode
4.2.5.7. Different Input and Output Width
4.2.5.8. DCFIFO Timing Constraint Setting
4.2.5.9. Gray-Code Counter Transfer at the Clock Domain Crossing
4.2.5.10. Guidelines for Embedded Memory ECC Feature
4.2.5.11. Reset Scheme
3.3.1.3. Read-During-Write Data Output and Memory Location Behaviors
The following table shows the data output and the memory location behaviors of true dual-port (TDP) and simple quad-port (SQP) when multiple read and write operations happen on the same address. The data output behavior of each scenario either provides the same-port RDW or mixed-port RDW output depending on the input signal. When both port A and port B are writing data to the same address, the content of the memory location is either corrupted or the input data from port A is written if the option "ENA_NON_CORRUPT=1" is enabled. Refer to Consider the Concurrent Write Behavior for more details.
Port A Write | Port A Read | Port B Write | Port B Read | Port A Data Output | Port B Data Output | Data at Memory Location |
---|---|---|---|---|---|---|
Yes | Yes | Yes | Yes | New data from port A data input. 8 | New data from port B data input. 8 | Memory corruption or port A data input is written. |
Yes | Yes | Yes | No | New data from port A data input. 8 | Unchanged | Memory corruption or port A data input is written. |
Yes | Yes | No | Yes | New data from port A data input. 8 | Don't care or new data from port A data input. 9 | Memory corruption or port A data input is written. |
Yes | Yes | No | No | New data from port A data input. 8 | Unchanged | Memory corruption or port A data input is written. |
Yes | No | Yes | Yes | Unchanged | New data from port B data input. 8 | Memory corruption or port A data input is written. |
Yes | No | Yes | No | Unchanged | Unchanged | Memory corruption or port A data input is written. |
Yes | No | No | Yes | Unchanged | Don't care or new data from port A data input. 9 | Memory corruption or port A data input is written. |
Yes | No | No | No | Unchanged | Unchanged | Memory corruption or port A data input is written. |
No | Yes | Yes | Yes | Don't care or new data from port B data input 9 | New data from port B data input. 8 | Memory corruption or port A data input is written. |
No | Yes | Yes | No | Don't care or new data from port B data input. 9 | Unchanged | Memory corruption or port A data input is written. |
No | Yes | No | Yes | Data from memory | Data from memory | Unchanged |
No | Yes | No | No | Data from memory | Unchanged | Unchanged |
No | No | Yes | Yes | Unchanged | New data from port B data input. 8 | Memory corruption or port A data input is written. |
No | No | Yes | No | Unchanged | Unchanged | Memory corruption or port A data input is written. |
No | No | No | Yes | Unchanged | Data from memory. | Unchanged |
No | No | No | No | Unchanged | Unchanged | Unchanged |
Port A Write | Port A Read | Port B Write | Port B Read | Port A Data Output | Port B Data Output | Data at Memory Location |
---|---|---|---|---|---|---|
Yes | Yes | Yes | Yes | Don't care 10 | Don't care10 | Memory corruption or port A data input is written. |
Yes | Yes | Yes | No | Don't care10 | Unchanged | Memory corruption or port A data input is written. |
Yes | Yes | No | Yes | Don't care10 | Old data11 | Memory corruption or port A data input is written. |
Yes | Yes | No | No | Don't care10 | Unchanged | Memory corruption or port A data input is written. |
Yes | No | Yes | Yes | Unchanged | Don't care10 | Memory corruption or port A data input is written. |
Yes | No | Yes | No | Unchanged | Unchanged | Memory corruption or port A data input is written. |
Yes | No | No | Yes | Unchanged | Old data11 | Memory corruption or port A data input is written. |
Yes | No | No | No | Unchanged | Unchanged | Memory corruption or port A data input is written. |
No | Yes | Yes | Yes | New data from port B data input 11 | Don't care10 | Memory corruption or port A data input is written. |
No | Yes | Yes | No | New data from port B data input11 | Unchanged | Memory corruption or port A data input is written. |
No | Yes | No | Yes | Data from memory | Data from memory | Unchanged |
No | Yes | No | No | Data from memory | Unchanged | Unchanged |
No | No | Yes | Yes | Unchanged | Don't care10 | Memory corruption or port A data input is written. |
No | No | Yes | No | Unchanged | Unchanged | Memory corruption or port A data input is written. |
No | No | No | Yes | Unchanged | Data from memory | Unchanged |
No | No | No | No | Unchanged | Unchanged | Unchanged |
8 Indicates same-port RDW output behavior.
9 Indicates mixed-port RDW output behavior.
10 Indicates same-port RDW output behavior.
11 Indicates mixed-port RDW output behavior.