0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Testbench编写文件的读写操作

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2020-11-20 11:33 次阅读

Testbench编写指南(2)文件的读写操作

读取txt文件数据

将数据写入txt文件

第2篇的题材是文件的读写控制,仿真时经常需要从文件中读取测试激励,还要将仿真结果存取在文件中供其它程序读取调用。

读取txt文件数据

示例代码如下:

integer i; //数组坐标 reg [9:0] stimulus[1:data_num]; //数组形式存储读出的数据 initial begin $readmemb("SinIn.txt", stimulus); //将txt文件中的数据存储在数组中 i = 0; repeat(data_num) begin //重复读取数组中的数据 i = i + 1; din = stimulus[i]; #clk_period; //每个时钟读取一次 end end

用“数组”来表述Verilog HDL中的定义并不准确,但对大多数人来说应该更好理解。可以将stimulus视作一个存储器,[9:0]定义了数据的位宽,[1:data_num]定义了存储器的深度。stimulus的定义应该与txt文件中的数据相匹配。txt文件中每行存储一个数据,则上述定义对应的是txt中存储了data_num个数据,每个数据的最大位宽为10bit。
  读取二进制格式的文件是用系统任务readmemb;读取十六进制格式文件使用readmemb;读取十六进制格式文件使用readmemh。其命令为$readmemb(“filename”, mem_name),将filename中的内容读取到mem_name中。
  注意filename文件路径中应该用反斜杠“/”,与windows系统中的文件路径使用的“”不同。如果不指定路径,向上面程序一样直接写文件名字,那么该文件必须和testbench文件在同一路径下。
  repeat(n) begin … end中的内容应该根据设计的需要编写。

将数据写入txt文件

示例代码如下:

integer file_out; initial begin file_out = $fopen("mixer_out.txt"); if (!file_out) begin $display("can't open file"); $finish; end end wire signed [19:0] dout_s = dout; wire rst_write = clk & rst_n; //复位期间不应写入数据 always @ (posedge rst_write) $fdisplay(file_out, "%d", dout_s);

写入文件需要先用$fopen系统任务打开文件,这个系统任务在打开文件的同时会清空文件,并返回一个句柄,如果句柄为0则表示打开文件失败。
  如果原来不存在该文件,则会自动创建该文件。
  打开文件之后便可以用得到的句柄和KaTeX parse error: Expected 'EOF', got '&' at position 55: …printf函数的用法很像。

上面的程…fdisplay`,都会在数据后插入一个换行符。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7378

    浏览量

    163191
  • 函数
    +关注

    关注

    3

    文章

    4245

    浏览量

    62055
  • 数组
    +关注

    关注

    1

    文章

    411

    浏览量

    25843

原文标题:Testbench编写指南(2)文件的读写操作

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    eeprom存储原理、存储结构及读写操作

    操作。EEPROM具有数据保存时间长、可重复擦写、读写速度快等优点,广泛应用于各种电子设备中。本文将详细介绍EEPROM的存储原理、存储结构、读写操作、编程接口以及应用场景。 一、EE
    的头像 发表于 08-05 17:03 1077次阅读

    Verilog testbench问题求助

    这是我在HDLbits网站上做到的一道题,是testbench,请问这个代码为什么input都是低电平0?我设置的时钟就是周期10ns,占空比50%的时钟信号啊?怎么会出现这种情况......
    发表于 07-21 11:14

    如何实现Python复制文件操作

    Python 中有许多“开盖即食”的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在这篇文章中,你将会看到一些用 Python 实现文件复制的特殊方法。下面我们开始学习这九种不同的方法来实现
    的头像 发表于 07-18 14:53 277次阅读

    读写分离怎么保证数据同步

    读写分离是一种常见的数据库架构设计,用于提高数据库的并发处理能力。在读写分离架构中,数据库的读操作和写操作被分离到不同的服务器上,从而实现负载均衡和性能优化。然而,
    的头像 发表于 07-12 09:49 649次阅读

    读写分离解决什么问题

    读写分离是一种数据库架构设计策略,主要解决数据库在高并发场景下的读写性能瓶颈问题。在这种架构中,数据库的读操作和写操作被分离到不同的服务器上,以提高数据库的并发处理能力和稳定性。 一、
    的头像 发表于 07-12 09:47 294次阅读

    鸿蒙开发文件管理:【@ohos.fileio (文件管理)】

    该模块提供文件存储管理能力,包括文件基本管理、文件目录管理、文件信息统计、文件流式读写等常用功能
    的头像 发表于 06-12 18:12 952次阅读
    鸿蒙开发<b class='flag-5'>文件</b>管理:【@ohos.fileio (<b class='flag-5'>文件</b>管理)】

    STM8L的EERPOM是使用内部FLASH吗?用那个库文件操作读写

    STM8L的EERPOM 是使用内部FLASH吗?用那个库文件操作读写
    发表于 05-15 07:12

    FPGA入门必备:Testbench仿真文件编写实例详解

    编写完HDL代码后,往往需要通过仿真软件Modelsim或者Vivadao自带的仿真功能对HDL代码功能进行验证,此时我们需要编写Testbench文件对HDL功能进行测试验证。
    发表于 04-29 10:43 1563次阅读

    AOSP源码定制-内核驱动编写

    有时候为了分析一些壳的检测,需要在内核层面对读写相关的操作进行监控,每次去修改对应的内核源码编译重刷过于耗时耗力,这里就来尝试编写一个内核驱动,载入后监控读写
    的头像 发表于 04-23 11:15 861次阅读
    AOSP源码定制-内核驱动<b class='flag-5'>编写</b>

    linuxvi无法打开并写入文件

    在Linux系统中,Vi是一种文本编辑器,它可以用来创建和编辑文件。如果你遇到了无法打开并写入文件的问题,可能是由于以下几个原因: 权限问题:请确保你对所需操作文件具有
    的头像 发表于 11-28 15:10 2664次阅读

    ROS编写参数配置文件示例程序

    _config.yaml这三个文件中,这三个文件均位于下图所示的目录下,下面依次进行详细的介绍 1、编写user_config.yaml参数配置文件 首先,我们来看作者提供的示例程序
    的头像 发表于 11-26 17:35 1307次阅读
    ROS<b class='flag-5'>编写</b>参数配置<b class='flag-5'>文件</b>示例程序

    【ELF 1开发板试用】+ TF 卡读写及使用

    /media,并支持热插拔,通过指令可查看TF 卡挂载后的设备名,其操作如图3所示,查看 TF 卡内文件操作则如图4所示。 图3查看内存文件 图4 查看卡内
    发表于 11-24 00:43

    体验紫光PCIE之使用官方驱动在Windows下进行DMA读写操作/PIO读写操作

    的PICE驱动是最佳选择。 官方也提供了一个在Windows的驱动例程,该例程能够完成PCIE的DMA读写操作和PIO内存读写操作,但是该驱动并未完全适配IP生成的官方例程,官方提供另
    发表于 11-17 14:55

    什么是头文件?头文件编写的一般格式要求是怎样?

    本文介绍头文件的定义、编写、保存及引用等方面的内容,包括了一般的格式要求、例程等。
    的头像 发表于 11-08 16:25 1475次阅读
    什么是头<b class='flag-5'>文件</b>?头<b class='flag-5'>文件</b><b class='flag-5'>编写</b>的一般格式要求是怎样?

    基于RL78-FDL库实现RL78G13 Data Flash的读写操作

    基于RL78-FDL库实现RL78G13 Data Flash的读写操作
    的头像 发表于 10-27 09:19 2073次阅读
    基于RL78-FDL库实现RL78G13 Data Flash的<b class='flag-5'>读写</b><b class='flag-5'>操作</b>