在进行功能仿真时,经常需要使用外部的数据作为输入,而数据经常存放在.txt,.dat等文本文件中;

本文介绍一种从.txt中读取有符号十进制数的方式和写入有符号数到.txt文件的方式:

代码如下:

一、从.TXT中读取有符号十进制数:

reg signed [8:0] dataa1[1:784];
reg signed [8:0] datab[1:36];
reg signed [8:0] data1;
integer i;
integer s;
integer m;
integer n;
integer fid1;
integer fid2;
initial
beginfid1 = $fopen("C:/Users/Desktop/conv_data.txt","r");//这里的斜杠与计算机里面的斜杠不一样//计算机里面的斜杠为‘\’,这里为‘/’for(i=1;i<=784;i=i+1)begins= $fscanf(fid1,"%d",dataa1[i]);end$fclose(fid1);
endinitial
begin//fid = $fopen("C:\Users\CONV_project2\Wc1_8.dat","r");  这样是会报错的fid2 = $fopen("C:/Users/15003813081/Desktop/ZYK/CONV_project2/core_data.txt","r");for(m=1;m<=36;m=m+1)beginn= $fscanf(fid2,"%d",datab[m]);end$fclose(fid2);
end
reg[11:0] count1;
reg[6:0] count2;
always@(posedge clk or negedge rst)
beginif(rst)begincount1 <= 0;endelsebeginif(count1 == 12'd2000)count1 <= count1;elsecount1 <= count1 + 1'b1;end
endalways@(posedge clk or negedge rst)
beginif(rst)begindataa <= 16'd0;dataa_valid <= 1'b0;endelsebeginif(count1 >= 200 && count1 <= 983 )begindataa <= dataa1[count1-199];dataa_valid <= 1'b1;endelse begindataa <= 9'd0;dataa_valid <= 1'b0;endend
endalways@(posedge clk or negedge rst)
beginif(rst)begincount2 <= 0;endelsebeginif(count2 == 7'd100)count2 <= count2;elsecount2 <= count2 + 1'b1;end
endalways@(posedge clk or negedge rst)
beginif(rst)begindatab1 <= 9'd0;datab_valid1 <= 1'b0;datab2 <= 9'd0;datab_valid2 <= 1'b0;datab3 <= 9'd0;datab_valid3 <= 1'b0;datab4 <= 9'd0;datab_valid4 <= 1'b0;endelsebeginif(count2 >= 2 && count2 <= 10)begindatab1 <= datab[count2-1];datab_valid1 <= 1'b1;datab2 <= datab[count2+8];datab_valid2 <= 1'b1;datab3 <= datab[count2+17];datab_valid3 <= 1'b1;datab4 <= datab[count2+26];datab_valid4 <= 1'b1;endelse begindatab1 <= 9'd0;datab_valid1 <= 1'b0;datab2 <= 9'd0;datab_valid2 <= 1'b0;datab3 <= 9'd0;datab_valid3 <= 1'b0;datab4 <= 9'd0;datab_valid4 <= 1'b0;endend
end

二、把有符号数写入.TXT文件:

integer fid3,fid4,fid5,fid6;
initial
beginfid3 = $fopen("C:/Users/pooling1.txt","w");fid4 = $fopen("C:/Users/pooling2.txt","w");fid5 = $fopen("C:/Users/pooling3.txt","w");fid6 = $fopen("C:/Users/pooling4.txt","w"); #20000$fclose(fid3) ;$fclose(fid4) ;$fclose(fid5) ;$fclose(fid6) ;
endalways@(posedge clk2)
beginif(result_pooling_valid1)begin// $fdisplay(fid3,"%d",result_pooling1);$fwrite(fid3,"%d\n",$signed(result_pooling1));end
endalways@(posedge clk2)
beginif(result_pooling_valid2)begin// $fdisplay(fid4,"%d",result_pooling2);$fwrite(fid4,"%d\n",$signed(result_pooling2));end
endalways@(posedge clk2)
beginif(result_pooling_valid3)begin//$fdisplay(fid5,"%d",result_pooling3);   默认写入换行$fwrite(fid5,"%d\n",$signed(result_pooling3));end
endalways@(posedge clk)
beginif(result_pooling_valid4)begin//$fdisplay(fid6,"%d",result_pooling4);$fwrite(fid6,"%d\n",$signed(result_pooling4));end
end
  1. $fdisplay(fid4,"%d",result_pooling2);                       这个语句写入时,会把结果变成无符号数;
  2. $fdisplay(fid4,"%d",$signed(result_pooling2));     这样应该就可以按照有符号写入了,是否可以我还没尝试
  3. $fwrite(fid4,"%d\n",$signed(result_pooling2));         这个语句写入时,会把结果按成有符号数写入文件
  4. fdispaly与fwriter的区别应该是fdisplay会在写入一个数据之后自动换行,但是fwriter不会

关于verilog中其他的读写文件方式,再以后的博客中继续更新;


verilog读入.txt的有符号十进制数,把有符号十进制数写入到.txt文件中相关推荐

  1. matlab中将数据导出到Excel表格、.txt、.xml等文件中

    本人应用例子 导出效果:第一行为提示,所以在设置表格行数时需要+1,如上图 matlab官网例子 load patients.mat T = table(LastName,Age,Weight,Smo ...

  2. python selenium 爬取b站全站排行榜100个视频的播放量 弹幕数 点赞量 投币数 收藏量 分享数

    参考:https://www.selenium.dev/ 需要提前安装 pip install -U selenium 和下载驱动 https://www.selenium.dev/documenta ...

  3. linux中大于等于符号 特殊字符,Linux 特殊字符、符号

    特殊符号: 箭头表示数据的流向 >或1 > 输出重定向,把前边输出的内容输入到后边的内容中,会覆盖已有内容:(1标准输出) echo 'hello world!'> a.txt &g ...

  4. 统计java文件中的代码行数

    统计Java代码行数工具类  --  CodeCounterUtil.java 统计指定目录下的java文件中代码行数  --  public static int  getCodeNumFromFo ...

  5. 将指定目录下的sql文件名写入到txt文件中

    2019独角兽企业重金招聘Python工程师标准>>> 前段时间需要把文件夹中所有sql文件整到一个文档中,进行MySQL数据库的批量导入用,所以写了下面的小程序. import j ...

  6. python从txt拿取数据_python requests + xpath 获取分页详情页数据存入到txt文件中

    直接代码,如有不懂请加群讨论 # *-* coding:utf-8 *-* # import json import requests import pytesseract import time i ...

  7. python实现将一个文件夹下的文件路径写入到指定的txt文件中

    代码如下: 其中paths为存储文件路径 train.txt为目标文件,即将文件路径写入到此文件中 os.path.splittext(filename)包含两项,第一项为文件名(.之前内容),第二项 ...

  8. c++ 按行读取txt文件并赋值_python操作txt文件中数据教程[3]python读取文件夹中所有txt文件并将数据转为csv文件...

    觉得有用的话,请点击右下角 推荐给更多小伙伴 neoken_xuAsurada2015Evacloud 参考文献 python 操作 txt 文件中数据教程[1]-使用 python 读写 txt 文 ...

  9. 使用python批量修改txt文件中的信息

    使用python批量修改txt文件 在更改深度学习很多标签文件的时候,我们有时候需要自己修改txt文件里的路径,这时候如果写一个python程序,就会比较容易: import os import ra ...

  10. linux查看文件内容行数,Linux 中如何查看文件的行数,字数,字节数

    在 Linux 系统使用中,我们经常需要查看或统计文本文件中的行数,字数,字节数等内容,那么怎么快捷的统计出文件中这些关键数据呢. 在Linux系统中这统计非常方便,只需要简单的几个命令就可以搞定,这 ...

最新文章

  1. 目标识别——SIFT算法
  2. 【c语言】位操作实现无符号整数的乘法运算
  3. Silverlight学习之——如何在 Silverlight 中使用 Deep Zoom
  4. Access Denied for user root @localhost 解决方案
  5. springboot 静态注入 单例
  6. Unix编程哲学和软件设计方法
  7. java开启新线程的三种方法
  8. mongodb更新操作符$min,$max
  9. 2017-2018-1 《信息安全系统设计基础》课程总结
  10. Devexpress控件中TreeList的递归绑定数据
  11. mysql 表字段信息从一张表迁移到另一张表_Mysql之分库分表
  12. 小程序毕设作品之微信校园洗衣小程序毕业设计成品(7)中期检查报告
  13. vscode c++ code runner 配置 opencv
  14. Chrome浏览器检查工具栏缩小
  15. Frequent values ——RMQ
  16. Nuxt - 自定义配置修改顶部加载条颜色(loding)
  17. 【docker】Mac下oracle10g下载安装
  18. css背景上能添加文字,如何利用div+css来给背景图片上文字布局
  19. 基于Xilinx artix 7的FPGA高级应用(二):千兆以太网通信(原理篇)
  20. 高通平台SEE架构-sensor学习

热门文章

  1. java 获取 t 的类型_如何获取类型为T的字段的类?
  2. java web主流框架整合开发 光盘_开发者突击:Java Web主流框架整合开发(第2版)(附CD光盘1张)...
  3. Swaps and Inversions hdu多校训练第二场 树状数组求逆序数+离散化
  4. iis php日志查看工具,教你如何查看IIS日志
  5. vs点击方法跳不到对于的地方_迷你世界:大神玩花式跑酷有多简单?老玩家教你,轻松学会百段跳...
  6. 前向声明 智能指针_C++ 指针类中实现 -gt;*
  7. 计算机组成原理—主存储器与cpu的连接
  8. dsu on tree(Educational Codeforces Round 2: E. Lomsat gelral)
  9. bzoj 3403: [Usaco2009 Open]Cow Line 直线上的牛
  10. kubernetes中port、target port、node port的对比分析,以及kube-proxy代理