verilog文件操作代码(转)

verilog文件操作代码(转)

一、verilog 读文件,与写文件操作

`timescale 1 ns/1 ns
module FileIO_tb;

integer fp_r, fp_w, cnt;
reg [9:0] reg3;

initial begin
fp_r = $fopen("yuz.txt", "r");//被读取的文件名
fp_w = $fopen("data_out.txt", "w");

while(!$feof(fp_r)) begin
cnt = $fscanf(fp_r, "%b", reg3);
$display("%b",reg3);
$fwrite(fp_w, "%b\n", reg3);
end

$fclose(fp_r);
$fclose(fp_w);
end

endmodule

二、读取文件,用作测试

module word_aligner_test;
reg lock,bypass,nrst,clk;
reg [9:0]datain;
reg [9:0] memory [0:2047];//声明有2048个10位的数据
wire bypass_out,lock_next,comma;
wire [9:0] dataout;
//reg[9:0] datain_rev;
integer i;
word_aligner U0(lock,bypass,datain,clk,nrst,dataout,bypass_out,lock_next,comma);

initial
begin
i=0;
lock=1;
bypass=0;
nrst=0;
clk=0;
#2 nrst=1;
end
always #2 clk=~clk;

initial
begin
//读取存储器文件yuzhen.dat到存储器中的给定地址
$readmemb ("yuzhen_rev.dat",memory);
//显示存储器中的内容
repeat(2)
for (i=0;i<2048;i=i+1)
begin
# 2
begin
$display("Memory[%d]=%b",i,memory[i]);
{datain[0],datain[1],datain[2],datain[3],datain[4],datain[5],datain[6],datain[7],datain[8],datain[9]}=memory[i];
end
end

#30 $stop;
end

endmodule

三、模块输出数据实时存储于文件中

`timescale 1 ns/1 ns
module FileIO_tb;
reg lock,bypass,nrst,clk;
reg [9:0]datain;
reg [9:0] memory [0:2047];//声明有2048个10位的数据
wire bypass_out,lock_next,comma;
wire [9:0] dataout;
//reg[9:0] datain_rev;
integer i;
//初始化对齐模块的输出激励信号
initial
begin
i=0;
lock=1;
bypass=0;
nrst=0;
clk=0;
#2 nrst=1;
end
always #2 clk=~clk;
word_aligner U1(lock,bypass,datain,clk,nrst,dataout,bypass_out,lock_next,comma);

/写指针的定义

integer fp_w;
initial
begin
//读取存储器文件yuzhen.dat到存储器中的给定地址
$readmemb ("yuzhen.txt",memory);
//打开待写入数据文件夹
fp_w = $fopen("data_out.txt", "w");
//显示存储器中的内容
repeat(1)
for (i=0;i<2048;i=i+1)

# 2 begin
$display("Memory[%d]=%b",i,memory[i]);
datain=memory[i];
$display("%b", datain);
$fwrite(fp_w, "%b\n", datain);
end
$fclose(fp_w);
#30 $stop;
end
endmodule


转自:http://hi.baidu.com/aigorenxiu/item/027679162e3382552b3e222f

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值