博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
testbench——文件读入输出
阅读量:5154 次
发布时间:2019-06-13

本文共 1860 字,大约阅读时间需要 6 分钟。

注:仿真工具为ISE自带simulation

1.读入.txt中的文件

待读入文件为photo.txt,位于所建工程文件夹中。

代码:

integer cnt,i;reg [7:0] mem[31:0];reg [5:0] address;integer fp;initialbegin	fp = $fopen("photo.txt","rb");	address = 0;    while(!$feof(fp))  begin         for(i=0; i<16; i=i+1)  begin            cnt = $fscanf (fp, "%d",mem[address]);            address=address+1;        end    end    $fclose(fp);end
注释:

使用句柄fp定位文件之后操作即可;

代码中i < 16的值原则上可以为任意值,一般小于文件中数据总数就好了,因为有 while(!$feof(fp)) 在控制;

以二进制方式读入的;

待读入数据:

结果图:

另外一种写法

reg [7:0] mem[31:0];initialbegin    $readmemh("photo.txt",mem);end
注:$readmemh和$readmemb分别用来读入源文件为16进制和2进制的文件

结果图:

2.写出.txt文件

代码:

integer fp_write;reg [5:0] write_address;initialbegin	fp_write =  $fopen("output.txt");	write_address = 0;	while(write_address != 32)	begin		$fwrite(fp_write, "%d ", mem[write_address]);		write_address = write_address + 1;		if(write_address%8 == 0) $fwrite(fp_write, "\n");	end	$fclose(fp_write);end
注:

if(write_address%8 == 0) $fwrite(fp_write, "\n"); 为了给文件中加入换行

结果:

整体代码:

`timescale 1 ns / 1 psmodule testbench;reg clk, rst, start;initial begin     clk = 0;    forever #5 clk = ~clk;endinitial begin    rst = 0;	#8 rst = 1;endinitial begin    start = 0;    #502 start = 1;endinteger cnt,i;reg [7:0] mem[31:0];reg [5:0] address;integer fp;initialbegin	fp = $fopen("photo.txt","rb");	address = 0;    while(!$feof(fp))  begin         for(i=0; i<16; i=i+1)  begin            cnt = $fscanf (fp, "%d",mem[address]);            address=address+1;        end    end    $fclose(fp);endinteger fp_write;reg [5:0] write_address;initialbegin	fp_write =  $fopen("output.txt");	write_address = 0;	while(write_address != 32)	begin		$fwrite(fp_write, "%d ", mem[write_address]);		write_address = write_address + 1;		if(write_address%8 == 0) $fwrite(fp_write, "\n");	end	$fclose(fp_write);endendmodule

转载于:https://www.cnblogs.com/mingmingruyue99/p/7202007.html

你可能感兴趣的文章
HDU 2076 夹角有多大(题目已修改,注意读题)
查看>>
洛谷P3676 小清新数据结构题(动态点分治)
查看>>
九校联考-DL24凉心模拟Day2T1 锻造(forging)
查看>>
Attributes.Add用途与用法
查看>>
L2-001 紧急救援 (dijkstra+dfs回溯路径)
查看>>
javascript 无限分类
查看>>
spring IOC装配Bean(注解方式)
查看>>
[面试算法题]有序列表删除节点-leetcode学习之旅(4)
查看>>
SpringBoot系列五:SpringBoot错误处理(数据验证、处理错误页、全局异常)
查看>>
kubernetes_book
查看>>
侧边栏广告和回到顶部
查看>>
https://blog.csdn.net/u012106306/article/details/80760744
查看>>
海上孤独的帆
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
01: socket模块
查看>>
mysql触发器
查看>>
淌淌淌
查看>>
win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法
查看>>
C++有关 const & 内敛 & 友元&静态成员那些事
查看>>
函数积累
查看>>