verilog testbench中 文本读写的操作
来源:互联网 发布:国内外大数据公司 编辑:程序博客网 时间:2024/06/06 06:32
对文件操作时注意文件数据格式和是否带符号
module nr_decoder_topv2_tb;
// Inputs
reg clk;
reg i_rst_n;
reg i_start;
reg i_frame_flag;
reg signed [7:0] i_nrdata;
// Outputs
wire signed [7:0] o_nr_decoer;
wire o_frame_flag;
wire o_16decoder_finish;
wire o_read_en;
wire s3_en;
reg signed[7:0] o_nr_decoer_mat;
reg [3:0] count;
reg [3:0] flagcount;
reg [3:0] out_num;
reg [12:0] frame_num;
// Instantiate the Unit Under Test (UUT)
nr_decoder_topv2 uut (
.clk(clk),
.i_rst_n(i_rst_n),
.i_start(i_start),
.i_frame_flag(i_frame_flag),
.i_nrdata(i_nrdata),
.o_nr_decoer(o_nr_decoer),
.o_frame_flag(o_frame_flag),
.o_16decoder_finish(o_16decoder_finish),
.o_read_en(o_read_en),
.s3_en(s3_en)
);
integer handle_in,desc_out,handle_out,flag,flag2; // 文件指针和变量的定义
initial
begin
clk=1;
i_rst_n=0;
i_start = 0;
i_frame_flag=0;
i_nrdata=0;
o_nr_decoer_mat=0;
count=0;
flagcount=0;
out_num=0;
frame_num=0;
#10;
// 打开文件
handle_in=$fopen("./../tb/input7488_616_mat.txt","r");
desc_out=$fopen("./../tb/output3744_616_mat.txt","r");
handle_out=$fopen("./../tb/output3744_616_rtl.txt","w");
i_rst_n=1;
i_start = 1;
i_frame_flag=1;
while(!$feof(handle_in)) // 写文件结束标志
begin
@(posedge clk)
begin
flag <= $fscanf(handle_in,"%d ",i_nrdata); // 写文件
i_frame_flag<=0;
if((s3_en==1)&(count<8))
begin
flag2=$fscanf(desc_out,"%d ",o_nr_decoer_mat); // 写文件
count<=count+1;
flagcount<=1;
end
else count<=0;
if(flagcount==1)begin
out_num<=out_num+1;
$display("%d ",o_nr_decoer);// 文件数据显示 带符号时注意:输出格式、变量定义为符号型
$fdisplay(handle_out,"%d ",o_nr_decoer); // 读文件
end
if (out_num==7) begin
out_num<=0;
flagcount<=0;
frame_num<=frame_num+1;
end
end
end
// 关闭文件
$fclose(handle_in);
$fclose(desc_out);
$fclose(handle_out);
#500000 $finish;
end
always #5 clk=~clk;
initial
begin
$fsdbDumpfile ("./../sim/nr_decoder_topv2_tb.fsdb");
$fsdbDumpvars (0, nr_decoder_topv2_tb);
end
endmodule
- verilog testbench中 文本读写的操作
- Verilog中testbench的设计,文件读取和写入操作
- Verilog的testbench入门
- verilog中读写文件操作
- Verilog HDL的Testbench简介
- Verilog编程testbench的注意事项
- testbench的文件读写
- Verilog testbench的写法之输入输出文件
- Verilog十大基本功2(testbench的设计 文件读取和写入操作 源代码)
- verilog存储器读写操作
- Verilog(2): Testbench
- Verilog-testbench笔记
- Verilog testbench总结(一)
- Verilog testbench总结(二)
- verilog testbench编写笔记
- CRichEdit中Rtf格式文本的读写操作
- D型触发器的verilog代码和Testbench的编写
- verilog系统任务对文件的读写操作
- Thinking in Java 笔记(四)
- 医保结余7600亿写
- POJ 1002
- 如何调试makefile
- 杯酒寄哀愁
- verilog testbench中 文本读写的操作
- WatchDog检测到死锁重启分析
- AbstractQueuedSynchronizer实现源码解析(二)
- mysql索引
- Unity3D研究院之在Unity中打开第三方数据库配合Android开发(三十二)
- 心
- LeetCode 31 Longest Valid Parentheses
- Oracle 冷备迁移步骤
- LoadRunner性能测试基础知识问答