1.4.1.1. 同期メモリーブロックの使用
1.4.1.2. サポートされないリセットおよびコントロール条件の回避
1.4.1.3. Read-During-Write動作の確認
1.4.1.4. RAMの推論と実装の制御
1.4.1.5. シングルクロック同期RAM (古いデータでのRead-During-Write動作)
1.4.1.6. シングルクロック同期RAM (新しいデータでのRead-During-Write動作)
1.4.1.7. シンプル・デュアルポート、デュアルクロック同期RAM
1.4.1.8. トゥルー・デュアルポート同期RAM
1.4.1.9. 混合幅デュアルポートRAM
1.4.1.10. バイト・イネーブル信号を備えるRAM
1.4.1.11. 電源投入時の初期のメモリーコンテンツの指定
2.2.2.4. 同期パルス・ジェネレーターの使用
同期手法を使用してパルス・ジェネレーターを設計します。
図 9. 非同期パルス・ジェネレーター次の図は、非同期パルス生成の2つの方法を示しています。1番目の方法では、遅延チェーンを使用して単一のパルスを生成します (パルス・ジェネレーター)。2番目の方法では、一連のパルスを生成します (マルチバイブレーター)。
1番目の方法では、トリガー信号を2入力ANDゲートの両方の入力に供給しています。デザインでは、入力の1つにインバーターを追加して遅延チェーンを作成しています。パルスの幅は、ゲートに直接供給するパスと遅延チェーンを通過するパスの時間差によって異なります。これは、入力値の変化に続いて組み合わせロジックでグリッチの生成を担うメカニズムと同じです。この手法では、グリッチの幅を人為的に増やします。
2番目の方法では、レジスターの出力で非同期リセット信号を遅延チェーンを介して駆動します。レジスターは、一定の遅延後に非同期でリセットされます。コンパイラーによるパルス幅の決定は、配置配線後に配線遅延と伝播遅延が分かってからのみ行うことができます。HDLコードの作成時に、信頼性のある特定のパルス幅を作成することはできません。また、EDAツールで設定することもできません。パルスは、すべてのPVT条件でアプリケーションに十分な幅にはならない可能性があります。また、異なるデバイスに変更すると、パルス幅は変化します。さらに、スタティック・タイミング解析ではパルス幅を検証できないため、検証は困難です。
マルチバイブレーターは、グリッチ・ジェネレーターと、回路をオシレーターに変える組み合わせループを使用してパルスを生成します。この方法では、含まれるパルス数のために問題がさらに発生します。また、構造で複数のパルスを生成する場合、人工的なクロックが新たにデザインに作成されます。これはデザインツールで解析する必要があります。
図 10. 推奨される同期パルス生成手法