1.1. Using Provided HDL Templates 1.2. Instantiating IP Cores in HDL 1.3. Inferring Multipliers and DSP Functions 1.4. Inferring Memory Functions from HDL Code 1.5. Register and Latch Coding Guidelines 1.6. General Coding Guidelines 1.7. Designing with Low-Level Primitives 1.8. Cross-Module Referencing (XMR) in HDL Code 1.9. Using force Statements in HDL Code 1.10. Recommended HDL Coding Styles Revision History
184.108.40.206. Use Synchronous Memory Blocks 220.127.116.11. Avoid Unsupported Reset and Control Conditions 18.104.22.168. Check Read-During-Write Behavior 22.214.171.124. Controlling RAM Inference and Implementation 126.96.36.199. Single-Clock Synchronous RAM with Old Data Read-During-Write Behavior 188.8.131.52. Single-Clock Synchronous RAM with New Data Read-During-Write Behavior 184.108.40.206. Simple Dual-Port, Dual-Clock Synchronous RAM 220.127.116.11. True Dual-Port Synchronous RAM 18.104.22.168. Mixed-Width Dual-Port RAM 22.214.171.124. RAM with Byte-Enable Signals 126.96.36.199. Specifying Initial Memory Contents at Power-Up
188.8.131.52. If Performance is Important, Optimize for Speed 184.108.40.206. Use Separate CRC Blocks Instead of Cascaded Stages 220.127.116.11. Use Separate CRC Blocks Instead of Allowing Blocks to Merge 18.104.22.168. Take Advantage of Latency if Available 22.214.171.124. Save Power by Disabling CRC Blocks When Not in Use 126.96.36.199. Initialize the Device with the Synchronous Load (sload) Signal
3.4.1. Apply Complete System-Centric Timing Constraints for the Timing Analyzer 3.4.2. Force the Identification of Synchronization Registers 3.4.3. Set the Synchronizer Data Toggle Rate 3.4.4. Optimize Metastability During Fitting 3.4.5. Increase the Length of Synchronizers to Protect and Optimize 3.4.6. Increase the Number of Stages Used in Synchronizers 3.4.7. Select a Faster Speed Grade Device
188.8.131.52. Avoid Delay Chains in Clock Paths
Delays in PLD designs can change with each placement and routing cycle. Effects such as rise and fall time differences and on-chip variation mean that delay chains, especially those placed on clock paths, can cause significant problems in your design. Avoid using delay chains to prevent these kinds of problems.
You require delay chains when you use two or more consecutive nodes with a single fan-in and a single fan-out to cause delay. Inverters are often chained together to add delay. Delay chains are sometimes used to resolve race conditions created by other asynchronous design practices.
In some ASIC designs, delays are used for buffering signals as they are routed around the device. This functionality is not required in FPGA devices because the routing structure provides buffers throughout the device.
Did you find the information on this page useful?