スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

UVM書いてみた(テストベンチ)

「UVMを書いてみた」シリーズでテストベンチを書き忘れてました。
実は、UVM1.0p1にてここの記述も大きく関係してくることに気づきました。

ということで、テストベンチの記述になります。
※ここでの記述はUVM1.0EA版になります。

`include "dut.v"
`include "interface.sv"

module tb;

reg CLK;
reg RST;

parameter PERIOD = 4000;
parameter PHASETIME = PERIOD/2;
parameter STB = 50;

//// CLK
initial CLK = 1'b1;
always #(PHASETIME) CLK = ~CLK;

//// RST
integer i;
initial begin
RST = 1'b1; #10ns RST = 1'b0;
for(i=0;i<5;i=i+1) @(posedge CLK) #STB RST=1'b1;
end

assign w0_if.clock = CLK;
assign w1_if.clock = CLK;
assign r0_if.clock = CLK;
assign r1_if.clock = CLK;
assign w0_if.reset = RST;
assign w1_if.reset = RST;
assign r0_if.reset = RST;
assign r1_if.reset = RST;

//-- UVM Library
import uvm_pkg::*;
`include "uvm_macros.svh";

//-- Include UVM Component
`include "seqitem.sv"
`include "sequencer.sv"
`include "sequence.sv"
`include "driver.sv"
`include "monitor.sv"
`include "agent.sv"
`include "env.sv"
//-- Test library
`include "test_lib.sv"

wr_if w0_if();
wr_if w1_if();
rd_if r0_if();
rd_if r1_if();

DUT dut(
.CLK ( CLK ),
.RST ( RST ),
// read port
.R0IF ( r0_if ),
.R1IF ( r1_if ),
// write port
.W0IF ( w0_if ),
.W1IF ( w1_if )
);

// run simulation
initial begin
run_test();
end

endmodule
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。