インテルのみ表示可能 — GUID: mwh1409959634768
Ixiasoft
1.4.1.1. 同期メモリーブロックの使用
1.4.1.2. サポートされていないリセットおよび制御条件の回避
1.4.1.3. Read-During-Write動作の確認
1.4.1.4. RAMの推論と実装の制御
1.4.1.5. 古いデータのRead-During-Write動作を備えたシングルクロック同期RAM
1.4.1.6. 新しいデータのRead-During-Write動作を備えたシングルクロック同期RAM
1.4.1.7. Verilog HDLシンプル・デュアル・ポートおよびデュアル・クロック同期RAM
1.4.1.8. トゥルー・デュアル・ポート同期RAM
1.4.1.9. 混合幅デュアルポートRAM
1.4.1.10. バイトイネーブル信号付きRAM
1.4.1.11. 電源投入時に初期メモリーの内容の指定
2.3.6.1. インテル® Hyperflex™ Retimer Readiness (HRR)のルール
2.3.6.2. Timing Closure (TMC)のルール
2.3.6.3. Clock Domain Crossing (CDC)tルール
2.3.6.4. プラットフォーム・デザイナー Interface (PDI)のルール
2.3.6.5. Clock(CLK)のルール
2.3.6.6. Reset(RES)のルール
2.3.6.7. Non-Synchronous Structure(NSS)のルール
2.3.6.8. Signal Race (SGR)のルール
2.3.6.9. Floorplanning (FLP)のルール
2.3.6.1.1. HRR-10003: Registers on High Fan-Out Non-Global Nets
2.3.6.1.2. HRR-10004: High Fan-out Non-Global Nets
2.3.6.1.3. HRR-10101: Asynchronous Clears
2.3.6.1.4. HRR-10107: Maximum Fan-out for Signal
2.3.6.1.5. HRR-10115: High Fan-out Signal
2.3.6.1.6. HRR-10201: Power Up Don't Care Setting May Prevent Retiming
2.3.6.1.7. HRR-10203: Register Power-Up Settings Conflict with Device Settings
2.3.6.1.8. HRR-10204: Reset Release Instance Count Check
2.3.6.2.1. TMC-20001: Timing Paths With Impossible Hold Requirement
2.3.6.2.2. TMC-20002: Timing Paths with Removal Slack Exceeding Threshold
2.3.6.2.3. TMC-20004: Timing Paths with Setup Slack Exceeding Threshold
2.3.6.2.4. TMC-20005: Timing Paths with Recovery Slack Exceeding Threshold
2.3.6.2.5. TMC-20006: Unregistered User-Partition Inputs
2.3.6.2.6. TMC-20007: Unregistered Paths Between User-Partitions
2.3.6.2.7. TMC-20010: Logic Level Depth
2.3.6.2.8. TMC-20011: Missing Input Delay
2.3.6.2.9. TMC-20012: Missing Output Delay
2.3.6.2.10. TMC-20013: Partial Input Delay
2.3.6.2.11. TMC-20014: Partial Output Delay
2.3.6.2.12. TMC-20015: Inconsistent Min-Max Delay
2.3.6.2.13. TMC-20016: Invalid Reference Pin
2.3.6.2.14. TMC-20017: Loops Detected
2.3.6.2.15. TMC-20018: Latches Detected
2.3.6.2.16. TMC-20019: Partial Multicycle Assignment
2.3.6.2.17. TMC-20020: Invalid Multicycle Assignment
2.3.6.2.18. TMC-20021: Partial Min-Max Delay Assignment
2.3.6.2.19. TMC-20022: Incomplete I/O Delay Assignment
2.3.6.2.20. TMC-20050: RAM Control Signals Driven by LUTs or ALMs instead of DFFs
2.3.6.2.21. TMC-20051: RAM Control Signals Driven by High Fan-Out Net
2.3.6.2.22. TMC-20052: Inferred Latch Count Check
2.3.6.2.23. TMC-20200: Setup-Failing Paths with Impossible Requirements
2.3.6.2.24. TMC-20201: Setup-Failing Paths with High Clock Skew
2.3.6.2.25. TMC-20202: Setup-Failing Paths with High Logic Delay
2.3.6.2.26. TMC-20203: Setup-Failing Paths with High Fabric Interconnect Delay
2.3.6.2.27. TMC-20204: Setup-Failing Path Endpoints with Retiming Restrictions
2.3.6.2.28. TMC-20205: Setup-Failing Path Endpoints with Explicit Power-Up States Can Restrict Retiming
2.3.6.2.29. TMC-20500: Hierarchical Tree Duplication was Shallower than Possible
2.3.6.2.30. TMC-20501: Hierarchical Tree Duplication was Shallower than Requested
2.3.6.2.31. TMC-20550: Automatically-Discovered Duplication Candidate Rejected for Placement Constraint
2.3.6.2.32. TMC-20551: Automatically-Discovered Duplication Candidate Likely Requires More Duplication
2.3.6.2.33. TMC-20552: User-Directed Duplication Candidate was Rejected
2.3.6.2.34. TMC-20601: Registers with High Immediate Fan-Out Tension
2.3.6.2.35. TMC-20602: Registers with High Timing Path Endpoint Tension
2.3.6.2.36. TMC-20603: Registers with High Immediate Fan-Out Span
2.3.6.2.37. TMC-20604: Registers with High Timing Path Endpoint Span
2.3.6.5.1. CLK-30001: Gated Clock is Not Feeding at Least a Predefined Number of Clock Ports to Effectively Save Power
2.3.6.5.2. CLK-30002:クロック・ピン以外のピンをドライブするクロック
2.3.6.5.3. CLK-30026: Missing Clock Assignment
2.3.6.5.4. CLK-30027: Multiple Clock Assignment
2.3.6.5.5. CLK-30028: Invalid Generated Clock
2.3.6.5.6. CLK-30029: Invalid Clock Assignments
2.3.6.5.7. CLK-30030: PLL Setting Violation
2.3.6.5.8. CLK-30031: Input Delay Assigned to Clock
2.3.6.6.1. RES-30131: Reset Nets with Polarity Conflict
2.3.6.6.2. RES-30132: Registers May Not Be Properly Reset
2.3.6.6.3. RES-30133: Embedded Memory Blocks with Initialized Content That Might be Affected by Spurious Writes
2.3.6.6.4. RES-50001: Asynchronous Reset Is Not Synchronized
2.3.6.6.5. RES-50002: Asynchronous Reset is Insufficiently Synchronized
2.3.6.6.6. RES-50003: Asynchronous Reset Missing Timing Constraint
2.3.6.6.7. RES-50004: Multiple Asynchronous Resets within Reset Synchronizer Chain
2.3.6.6.8. RES-50005: RAM Control Signals Driven by Flops with Asynchronous Clears
2.3.6.7.1. NSS-30011: Design Contains Combinational Loops
2.3.6.7.2. NSS-30012: Design Contains Latches
2.3.6.7.3. NSS-30013: Design Contains Ripple Clock Structures
2.3.6.7.4. NSS-30014: Asynchronous Pulse Generators
2.3.6.7.5. NSS-30015: Multiple Pulses Generated in the Design
2.3.6.7.6. NSS-30016: Design Contains SR Latches
2.3.6.7.7. NSS-30017: Register Output Driving Its Own Control Signal Directly or Through Combinational Logic
2.3.6.7.8. NSS-30018: Design Contains Delay Chains
2.3.6.8.1. SGR-30020: Synchronous and Asynchronous Ports of the Same Register Driven by the Same Signal Source
2.3.6.8.2. SGR-30021: More Than One Asynchronous Port of a Register Driven by the Same Signal Source
2.3.6.8.3. SGR-30022: Clock Port and Any Other Port of a Register Driven by the Same Signal Source
インテルのみ表示可能 — GUID: mwh1409959634768
Ixiasoft
1.6.8. カウンターHDLのガイドライン
インテル® Quartus® Prime合成エンジンは、レジスターに続く加算器としてHDLコードのカウンターを実装し、イネーブル( ena )、同期クリア( sclr )、同期ロード( sload )などのレジスター制御信号を使用可能にします。最適なエリア使用率を得るには、アップコントロールまたはダウンコントロールを、2つの個別の加算演算子ではなく、1つの加算演算子で表現するようにしてください。
次のコーディング・スタイルを使用する場合、合成エンジンは追加のために2つの別個のキャリーチェインを実装する場合があります。
out <= count_up? out + 1:out-1;
シンプルなデザインの場合、合成エンジンはこのコーディング・スタイルを識別し、ロジックを最適化します。ただし、複雑なデザイン、またはプラグマを保持するデザインでは、コンパイラはすべてのロジックを最適化できないため、より注意深いコーディングが必要になります。
次のコーディング・スタイルでは、他のロジックとともに1つの加算器のみが必要です。
out <= out +(count_up?1:-1);
このスタイルは、キャリーチェイン加算器を1つだけ使用し、加算器の前にLUTに-1定数ロジックが実装されているため、リソースと領域をより効率的に使用します。