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

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

3天内不再提示

Testbench编写指南(2)读取txt文件数据

FPGA之家 来源:CSDN 2023-09-02 09:21 次阅读

读取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`,都会在数据后插入一个换行符。







审核编辑:刘清

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

    关注

    38

    文章

    7154

    浏览量

    162022
  • 二进制
    +关注

    关注

    2

    文章

    709

    浏览量

    41266
  • HDL
    HDL
    +关注

    关注

    8

    文章

    324

    浏览量

    47107
  • 十六进制
    +关注

    关注

    2

    文章

    31

    浏览量

    36711
  • Verilog语言
    +关注

    关注

    0

    文章

    113

    浏览量

    8162

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

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

收藏 人收藏

    评论

    相关推荐

    关于labview读取EXCEL文件数据的问题

    我遇到的问题是在labview读取excel文件数据后输出的是数组,怎样把数组里的每个数与已知数做比较输出布尔量。求指导。
    发表于 05-13 22:19

    读取txt文件中的二维数据,小程序

    读取txt文件数据
    发表于 03-15 10:52

    关于txt文件读取问题

    我写了个小程序是批量读取txt文件的,每个txt文件里有一列数据,13行,
    发表于 10-14 17:00

    怎样用Labview自动读取多个TXT文件数据放到一个EXCEL文件内?

    求助怎样用Labview自动读取多个TXT文件数据放到一个EXCEL文件内?
    发表于 04-01 13:54

    求大神指导labview如何读取text文件数据??

    求大神指导labview如何读取text文件数据生成正弦波形??
    发表于 05-20 12:11

    分别存入和读取文件数据的两个程序 LV2009编写

    两个程序分别存入和读取文件数据的两个程序 LV2009编写的。
    发表于 02-28 14:15

    用matlab读取txt文件数据

    我查到的资料都是可以读取行或列数据的函数,但是我想读取的是关于不知道有多少行,在若干位数据后会有一位校验位,然后处理这若干位数据,就类似于1
    发表于 04-25 16:15

    labview存储txt文件数据

    本帖最后由 asdfgh12211 于 2016-10-31 10:35 编辑 这个是我模仿着书上的例子写的程序,但是运行后发现在相应的路径并未出现txt文件下图的探针里面已经显示存储的路径
    发表于 10-26 16:27

    如何读取TXT文件数据并还原为波形

    `文件数据如图所示,请各位大神帮忙`
    发表于 10-16 10:16

    如何实现自动读取不同时间节点的txt文件

    循环读取txt文件 运行过程中txt文件数据更改并保存如何自动再次读取
    发表于 04-05 16:26

    读取文件数据不显示

    读取文件数据不显示
    发表于 10-23 11:45

    编写高效率的testbench

    编写高效率的testbench,学习编写测试文件的小伙伴们。
    发表于 05-11 16:40 16次下载

    LabVIEW读取两列txt文件的工程文件免费下载

    本文档的主要内容详细介绍的是LabVIEW读取两列txt文件的工程文件免费下载。
    发表于 12-04 15:21 58次下载
    LabVIEW<b class='flag-5'>读取</b>两列<b class='flag-5'>txt</b><b class='flag-5'>文件</b>的工程<b class='flag-5'>文件</b>免费下载

    Verilog Testbench怎么写 Verilog Testbench文件编写要点

    熟练了一点、但是整体编写下来比较零碎不成体系,所以在这里简要记录一下一般情况下、针对小型的verilog模块进行测试时所需要使用到的testbench文件编写要点。
    的头像 发表于 08-01 12:44 1517次阅读
    Verilog <b class='flag-5'>Testbench</b>怎么写 Verilog <b class='flag-5'>Testbench</b><b class='flag-5'>文件</b>的<b class='flag-5'>编写</b>要点

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

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