ケイデンスのイーサネット eVC を使用しており、エージェントのモニターは次の信号でタップされます。
. ____________ _____
.clk _____| |__________________|
. ________ _______ ________________ _________
.data __0a____X___07__X_______0b_______X_________
. ^ ^
クロックの立ち上がりエッジと立ち下がりエッジでデータをサンプリングします。上記の例では、データ 0x07 はガベージ データであり、有効な値は 0xa (clk 立ち上がり) と 0xb (clk 立ち下がり) です。ただし、モニターは (clk フォールの場合) 0x7 をサンプリングしています。
これは、Specman とシミュレーターの同期の問題であると思われます。もしそうなら、これはどのように解決できますか?
- シミュレーター - IES 13.10
irun 13.10 のオプション - (ここでは、この問題に関係があると思われるものと、その目的が何なのかまだわからないもののみをここに含めます)
-nomxindr -vhdlsync +neg_tchk -nontcglitch +transport_path_delays -notimezeroasrtmsg -pli_export -snstubelab
言語 - VHDL (トップ テストベンチ)、Verilog (DUT)、Specman (仮想シーケンス、Enet および OCP eVC)
- 0x07 (上の波形の左 ^) からクロックの立ち下がりエッジ (右 ^) までの時間 = 0.098ns
同僚の 1 人が を使用することを提案し-sntimescale
ましたが、それがどのように問題を引き起こしているのか、または解決するのか、まだ想像できません。Cadence の記事「specman tick synchronization delta delay timescale precision」でさえ、これらの検索文字列のいずれも有用なヒントを示していませんでした。