DUTとテストベンチの競合状態を避けるため、SystemVerilogでプログラムブロックを使用していることがわかりました。 SystemVerilogが登場する前に検証エンジニアは何をしましたか?私は手ぶれの信号を使うことしか考えられません。systemverilogのプログラムブロックを使用しない競合条件の回避
答えて
デザイナーがRTLの競合状態を防止するのと同じセマンティクスを使用します。ノンブロッキング割り当て、または代替クロックエッジ。
プログラムブロックは、SystemVerilogでは不要な構成要素です。 http://go.mentor.com/programblocks
プログラムブロックを使用せずに競合状態を回避することができます。
レースコンディションは、式のために作成されたもので、割り当ては同じ信号に同時にアクセスしようとしています。
異なる信号で同じ信号に2つの信号がアクセスしようとすると、ユーザーは競合状態を取り除くことができます。
実際には、コードはVerilogで記述されているか、Verilogはアクティブ領域、反応領域などの異なる時間領域で実行されています。
以下のものを使用して、競技状態を取り除くことができます。
(1)プログラムブロック
(2)ブロック
クロッキング(3)非プログラムブロックの前にassigment
をブロックおよびブロック競合状態が非ブロッキング割り当てを使用して除去される計時。
VerilogコードまたはシステムVerilogコードで記述された上記の説明は、同じ時間で同じコードを実行するものではありません。ツールによって特定の構文が実行される地域は異なります。
ここでは主にアクティブ領域とリアクティブ領域について説明しました。 アクティブな領域は、割り当てをブロックする連続的な割り当てを考慮します。 リアクティブ領域リバース領域では、非ブロッキング割り当てのLHSがこの領域で評価されます。
第1の活性領域が評価され、次に反応性領域が評価される。
したがって、競合状態を解消するプログラムブロックの前に、検証エンジニアがこの問題(実行領域)を処理します。
システムのVerilogでは、プリオン領域、観測領域、延期領域のような多くの領域が追加されています。
- 1. Java AWT drawImage競合条件 - 同期を使用して回避する方法
- 2. 複雑な条件でDBにモデルを挿入するための競合条件の回避
- 3. 条件文を使用したOpenMP競合条件
- 4. プロセスRedirectStandardErrorとRedirectStandardOutputを使用した場合の競合条件
- 5. 競合状態の回避
- 6. 流星の競合条件
- 7. シェルコマンドリストの競合条件
- 8. データベースの競合条件
- 9. C#スタティックコンストラクタの競合条件
- 10. スレッドスタートアップの競合条件
- 11. ConcurrentBitSetの競合条件
- 12. dequeを使用したC++タスクスレッドの競合条件
- 13. NSUrlConnectionを使用して競合条件でビートを取得
- 14. SQL Serverと競合条件
- 15. PHP mysql session_set_save_handler競合条件
- 16. スプラッシュスクリーン、スレッディング、競合条件
- 17. systemverilogの回避策 `if if compiler directive
- 18. 私のPOSIXシグナルハンドラの競合条件
- 19. キャッシュの一貫性と競合条件
- 20. Rethinkdb競合条件テーブルの作成
- 21. 共有変数の競合条件
- 22. JavaScriptイベント処理の競合条件?
- 23. JavaScript非同期競合条件
- 24. 変数セットと取得、競合条件
- 25. C - pthread関数の再利用 - ローカル変数と競合条件
- 26. Mysqlレースの条件を正しく回避する方法
- 27. Cの競争条件
- 28. 春の競争条件コントローラ
- 29. QThread:最も単純なコードの競合条件
- 30. RequireJSはブラウザの競合条件を定義します