📄 arm.tfw
字号:
// E:\ISE6.1\TST
// Verilog Test fixture created by
// HDL Bencher 6.1i
// Sun May 06 09:28:57 2007
//
// Notes:
// 1) This test fixture has been automatically generated from
// your Test Bench Waveform
// 2) To use this as a user modifiable test fixture do the following:
// - Save it as a file with a .tf extension (i.e. File->Save As...)
// - Add it to your project as a testbench source (i.e. Project->Add Source...)
//
`timescale 1ns/1ns
`define F_ASSERT 2
`define s3 3
`define N 5
`define IF1 2
`define F_IDLE 1
`define C_L_MODE 0
`define C_REFRSH 1
`define FCWIDTH 2
`define RES 5
`define F_DEASSERT 4
`define FWIDTH 32
`define state_delay 6
`define D 10
`define D 10
`define C_P_CHRG 2
`define s1 1
`define C_NOP 7
`define C_NOP 7
`define s0 0
`define IF0 1
`define s2 2
`define BR0 0
`define IF2 3
`define IF2 3
`define OD 4
`define FDEPTH 4
`define Q 25
`define s4 4
`define TCKO 0
`define C_READ 5
`define C_READ 5
`define C_WRITE 4
`define C_ACTIVE 3
`define C_ACTIVE 3
`define F_IDLE 1
`define F_IDLE 1
`define F_ASSERT 2
module arm;
reg clkin;
reg rst;
reg NCS3_n;
reg NWE_n;
reg [4:0] addr;
reg [15:0] DataIN;
wire [15:0] out;
wire [7:0] dout;
wire clk_out;
defparam UUT.wordwidth_data = 16;
defparam UUT.memsize_data = 32;
armtst UUT (
.clkin(clkin),
.rst(rst),
.NCS3_n(NCS3_n),
.NWE_n(NWE_n),
.addr(addr),
.DataIN(DataIN),
.out(out),
.dout(dout),
.clk_out(clk_out)
);
integer TX_FILE;
integer TX_ERROR;
always
begin //clock process
clkin = 1'b0;
#2
clkin = 1'b1;
#2
#8
clkin = 1'b0;
#8
clkin = 1'b0;
end
initial
begin
TX_ERROR=0;
TX_FILE=$fopen("results.txt");
// --------------------
rst = 1'b1;
NCS3_n = 1'b1;
NWE_n = 1'b1;
addr = 5'b00000; //0
DataIN = 16'b0000000000000000; //0
// --------------------
#20 // Time=20 ns
rst = 1'b0;
// --------------------
#20 // Time=40 ns
rst = 1'b1;
// --------------------
#40 // Time=80 ns
rst = 1'b0;
// --------------------
#20 // Time=100 ns
rst = 1'b0;
// --------------------
#260 // Time=360 ns
NCS3_n = 1'b1;
// --------------------
#120 // Time=480 ns
NCS3_n = 1'b0;
addr = 5'b00000; //0
DataIN = 16'b1010100000000000; //A800
// --------------------
#20 // Time=500 ns
NWE_n = 1'b0;
addr = 5'b00000; //0
DataIN = 16'b1010100000000000; //A800
// --------------------
#20 // Time=520 ns
addr = 5'b00000; //0
DataIN = 16'b1010100000000000; //A800
// --------------------
#20 // Time=540 ns
NWE_n = 1'b1;
addr = 5'b00000; //0
DataIN = 16'b1010100000000000; //A800
// --------------------
#20 // Time=560 ns
NCS3_n = 1'b1;
addr = 5'b00000; //0
DataIN = 16'b1010100000000000; //A800
// --------------------
#4 // Time=564 ns
// --------------------
if (TX_ERROR == 0) begin
$display("No errors or warnings");
$fdisplay(TX_FILE,"No errors or warnings");
end else begin
$display("%d errors found in simulation",TX_ERROR);
$fdisplay(TX_FILE,"%d errors found in simulation",TX_ERROR);
end
$fclose(TX_FILE);
$stop;
end
task CHECK_out;
input [15:0] NEXT_out;
#0 begin
if (NEXT_out !== out) begin
$display("Error at time=%dns out=%b, expected=%b",
$time, out, NEXT_out);
$fdisplay(TX_FILE,"Error at time=%dns out=%b, expected=%b",
$time, out, NEXT_out);
TX_ERROR = TX_ERROR + 1;
end
end
endtask
task CHECK_dout;
input [7:0] NEXT_dout;
#0 begin
if (NEXT_dout !== dout) begin
$display("Error at time=%dns dout=%b, expected=%b",
$time, dout, NEXT_dout);
$fdisplay(TX_FILE,"Error at time=%dns dout=%b, expected=%b",
$time, dout, NEXT_dout);
TX_ERROR = TX_ERROR + 1;
end
end
endtask
task CHECK_clk_out;
input NEXT_clk_out;
#0 begin
if (NEXT_clk_out !== clk_out) begin
$display("Error at time=%dns clk_out=%b, expected=%b",
$time, clk_out, NEXT_clk_out);
$fdisplay(TX_FILE,"Error at time=%dns clk_out=%b, expected=%b",
$time, clk_out, NEXT_clk_out);
TX_ERROR = TX_ERROR + 1;
end
end
endtask
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -