Visible to Intel only — GUID: wgm1515037594029
Ixiasoft
1. Introduction to Intel® FPGA Design Flow for AMD* Xilinx* Users
2. Technology Comparison
3. FPGA Tools Comparison
4. AMD* Xilinx* to Intel® FPGA Design Conversion
5. Conclusion
6. AN 307: Intel® FPGA Design Flow for AMD* Xilinx* Users Archives
7. Document Revision History for Intel® FPGA Design Flow for AMD* Xilinx* Users
3.3.1. Project Creation
3.3.2. Design Entry
3.3.3. IP Status
3.3.4. Design Constraints
3.3.5. Synthesis
3.3.6. Design Implementation
3.3.7. Finalize Pinout
3.3.8. Viewing and Editing Design Placement
3.3.9. Static Timing Analysis
3.3.10. Generation of Device Programming Files
3.3.11. Power Analysis
3.3.12. Simulation
3.3.13. Hardware Verification
3.3.14. View Netlist
3.3.15. Design Optimization
3.3.16. Techniques to Improve Productivity
3.3.17. Partial Reconfiguration
3.3.18. Cross-Probing in the Quartus® Prime Pro Edition Software
4.2.1.2.1. Memory Mode
4.2.1.2.2. Clocking Mode
4.2.1.2.3. Write and Read Operation Triggering
4.2.1.2.4. Read-During-Write Operation at the Same Address
4.2.1.2.5. Error Correction Code (ECC)
4.2.1.2.6. Byte Enable
4.2.1.2.7. Address Clock Enable
4.2.1.2.8. Parity Bit Support
4.2.1.2.9. Memory Initialization
4.2.1.2.10. Output Synchronous Set/Reset
Visible to Intel only — GUID: wgm1515037594029
Ixiasoft
4.2.1.4. Memory Port Mapping
The following table lists the memory ports that the Vivado* ’s IP Catalog generates, and their corresponding mapping to Intel® FPGA memory ports for different memory modes.
Port Description | AMD* Xilinx* Ports | Port-Mapping to Intel® FPGA Ports in Different Memory Modes | ||||
---|---|---|---|---|---|---|
Single-Port RAM | Simple Dual-Port RAM | True Dual-Port RAM | Single-Port ROM | Dual-Port ROM | ||
Port A: address | addra | address | wraddress | wraddress/ address_a | address | address_a |
Port A: data input | dina | data | data | data/ data_a | — | — |
Port A: parity data input | dinpa | — | ||||
Port A: clock enable for the input register | ena | inclocken/ clken | inclocken/ wrclocken/ enable | inclocken/ wrclocken/ enable | inclocken/ clken | enable |
Port A: clock enable for the last output register | regcea, ena | outclocken/ clken | enable | outclocken/ enable | outclocken/clken | enable |
Port A: write enable | NA | wren | wren | wren/ wren_a | NA | NA |
Port A: byte enable19 | wea | byteena | byteena_a | byteena_a | NA | NA |
Port A: asynchronous clear | NA | outaclr/ aclr | NA | out_aclr/ rd_aclr/ aclr | outaclr/aclr | aclr |
Port A: synchronous set/reset | rsta/ rstrega | sclr | NA | sclr | sclr | sclr |
Port A: read enable | ena (in SDP 20 mode) | rden | NA | rden_a/ rden | rden | rden_a |
Port A: in clock | clka | inclock/ clock | inclock/ wrclock/ clock | inclock/ wrclock/ clock | inclock/ clock | clock |
Port A: out clock | NA | outclock/ clock | NA | NA | outclock/ clock | NA |
Port A: data output | douta | q | NA | q/ q_a | q | q_a |
Port A: parity data output | doutpa | — | ||||
Port A: address enable | addrena 21 | addressstall_a | wr_addressstall | wr_addressstall/ addressstall_a | addressstall_a | addressstall_a |
Port B: address | addrb | NA | rdaddress | rdaddress/ address_b | NA | address_b |
Port B: data input | dinb | NA | NA | data_b | NA | NA |
Port B: parity data input | dinpb | — | ||||
Port B: clock enable for the input register | enb | NA | NA | inclocken/enable | NA | enable |
Port B: clock enable for the last output register | regceb, enb | NA | outclocken/ rdoutclocken | outclocken/enable | NA | enable |
Port B: write enable | enb (in SDP20 mode) | NA | NA | wren_b | NA | NA |
Port B: byte enable | web | NA | NA | byteena_b | NA | NA |
Port B: asynchronous clear | — | NA | out_aclr/ rd_aclr/ aclr | rd_aclr/ out_aclr | NA | aclr |
Port B: synchronous set/reset | rstb/ rstregb | NA | sclr | sclr | NA | sclr |
Port B: read enable | — | NA | rden | rden_b | NA | rden_b |
Port B: clock | clkb | outclock/ clock | outclock/ rdclock/ clock | outclock/ rdclock | outclock/ clock | clock |
Port B: data output | doutb | NA | q | q/ q_b | NA | q_b |
Port B: address enable | addrenb | NA | rd_addressstall | rd_addressstall/ addressstall_b | NA | addressstall_b |
Port B: parity data output | doutpb | — | ||||
Single bit error | sbiterr | NA | eccstatus[1:0] | NA | NA | NA |
Double bit error | dbiterr | NA | NA | NA | NA | |
ECC encoder bypass port | ‒ | NA | eccencbypass | NA | NA | NA |
ECC parity flip port | ‒ | NA | eccncparity[7:0] | NA | NA | NA |
Inject single bit error | injectsberr | NA | ||||
Inject double bit error | injectdbiterr | NA |
You can also infer RAM in HDL. For more information, refer to the Recommended HDL Coding Styles in Quartus® Prime Pro Edition User Guide: Design Recommendations.
19 For configurations less that two bytes wide, AMD* Xilinx* write enable signals (wea and web) are equivalent to Intel® FPGA write enable signals (wren, wren_a, or wren_b) signals, depending on the memory mode used. For configurations of more than two bytes, AMD* Xilinx* 's write enable buses (wea[] and web[]) are equivalent to Intel® FPGA byte enable buses(byteena[], byteena_a[], or byteena_b[]), depending on the memory mode used. Also, the Intel® FPGA write enable signal needs to be asserted for the write operation.
20 AMD* Xilinx* simple dual-port RAM generated through Block Memory Generator
21 Port mappings denoted with NA are not applicable for that memory mode; port-mappings denoted with — are not supported in Intel® FPGA memory.