アプリ版:「スタンプのみでお礼する」機能のリリースについて

Verilogのinoutをシミュレートする方法について

わからないので質問させてください。
SRAMのシミュレーションモデルを書いてみて、いざ、シミュレータで
シミュレーションしようと思ったのですが、テストモジュールから
inoutであるdataへ接続する方法をwireでやるべきか、regでやるべきか不明で
困っています。


良い方法があれば教えていただけますでしょうか?
(できれば、シミュレーション対象のソースを変更しない方法がいいです)
また、Verilogのシミュレーションモデルを配布しているHPなどありましたら教えていただけますか?

よろしくお願いします。

A 回答 (2件)

> ということは、O2海シミュレーションをかけなくてはならないのでしょうか?


質問の意図がよく分かりませんが, "2回"シミュレーションを実施しなければならないか?という疑問であれば, 1度で済みますがシミュレーションは必要な確認項目をすべて実施しなければなりません.
満たすべき仕様に応じて検討し, initial構文内に列挙すれば事足りるでしょう.

> 出力を見るときはそのままで、入力波形を見るときは出力をHi_Zするということでしょうか?
入出力の用語定義があいまいですが, 検証対象である擬似SRAMからの出力を見る場合(READ), テストベンチ内のregと信号が衝突しますのでregを事前にHi-zにしておく必要があります.
擬似SRAMへのWRITEを行う場合は入力値をregに書き込んであれげばwireを経由し検証対象へ入力される仕組みです.

誰が信号線をドライブしているのか?をイメージできると割と簡単に理解できると思います.
    • good
    • 0

inout信号のシミュレーションはwireとregを組み合わせて実施可能.


出力値を取得する場合, regをHi-zにする必要があります.
以下, 参考(ただし未検証. 適当にインデントが必要)

module tb_target()

paramter STEP = 10;
wire DIO;
reg DO;

target U1( .DIO(DIO), ... );

assign DIO = DO;

initial begin
//-- WRITE
DO = 1'b0;
#STEPDO = 1'b1;

//-- READ
#STEPDO = 1'bz;
#STEPif ( DIO == ... ) ...

end

end module
「Verilogのinoutをシミュレート」の回答画像1
    • good
    • 0
この回答へのお礼

お礼が遅れてしまい申し訳ありません。
図も入れていただき丁寧な説明ありがとうございました。

ということは、O2海シミュレーションをかけなくてはならないのでしょうか?
出力を見るときはそのままで、入力波形を見るときは出力をHi_Zするということでしょうか?

お礼日時:2009/12/10 17:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!