テストベンチでの双方向端子処理
ターゲット回路に双方向端子があり、テストベンチ内で双方向端子処理する場合です。
例えば、
外部にマイコンがあり、データバスが双方向端子でリード/ライトを行うLSI製品になります。
構成例
どのようなテストベンチ構成になるか、以下に示します。
D[31:0]が双方向端子(Inout)になります。
この端子は、LSI TopでDE=1の時、DOを出力し、DE=0の時、Hi-Zになります。
( CS_N=0 且つ RD_N=0の時、DE=1になります。)
テストベンチ記述例
テストベンチの記述例を以下に示します。
45~46行目はテストベンチでの双方向の記述となります。
60行目からライトとリードタスクになります。
テストベンチでは、Logicのように双方向切替信号(DE)のようなものは必要ありません。
これは、DI[31:0]がreg宣言した信号のため、Hi-Zにしたい時には{32{1'bZ}}を代入すれば良いためです。
タイミング
テストベンチのタスクWrCPU(ライトタスク)とタスクRdCPU(リードタスク)を実行した時のタイミング図を示します。
最後に
製品になる場合は論理回路をイメージして記述する必要がありますが、テストベンチでは、reg宣言してしまえば好きな所で Hi-Zや不定値を代入できます。
それを利用してしまえば、双方向端子と繋がる信号だけwire宣言した信号と繋げれば良いだけです。