verilog中读取文件中的字符串_modelsim高级仿真
2024-10-11 20:47:58
今天给个程序大家玩玩。因为今天遇到一个问题,就是要向UART发送指令,指令非常多,都是字符串。一直copy 函数 UART ("COMM_1"); UART ("COMM_2");........可是指令有好几十个哦。如果遇上百个岂不是更惨。
如果是C语言,大家肯定想到用数组遍历。不过Verilog中想用数组遍历,我没有尝试过 —— 我这里是字符串不是简单的16进制数。有兴趣的同学可以自己玩玩,大家一起交流。目前我采用的是文件的方式来做
第一步建立一个文件 ,名称是test_case.dat。里面保存你需要发送的指令,例如:
FPGA!!
gong--
cheng-
shi---
zhi---
jia---
oyeoye
第二步使用下列代码
`timescale 1ns/1ps module readfile ; integer str_cnt ;
integer file_r,file_w ; reg [:]reg0 ;
reg str_p ;
initial begin
str_cnt = ;
file_r = $fopen ("test_case.dat","r");
file_w = $fopen ("test_case_h.dat","w"); while(!$feof(file_r)) begin
str_p = $fgets(reg0,file_r);
if(reg0==); //Tab
else if (reg0==) ; //file finish
else begin
str_cnt = str_cnt + ;
$display("%s",reg0);
$fwrite(file_w, "NO=%d, %s = %h\n", str_cnt,reg0, reg0);
end
end $fclose (file_r);
$fclose (file_w);
#
$stop ;
end endmodule
输出到一个 test_case_h.dat文件。输出是这个样子的
NO= 1, FPGA!! = 465047412121
NO= 2, gong-- = 676f6e672d2d
NO= 3, cheng- = 6368656e672d
NO= 4, shi--- = 7368692d2d2d
NO= 5, zhi--- = 7a68692d2d2d
NO= 6, jia--- = 6a69612d2d2d
NO= 7, oyeoye = 6f79656f7965
注意看哦,我的test_case.dat中所有的字符串都是6*8bit的。对应程序中的reg0是48bit的。如果字符串bit少了会把换行符读进去,如果字符串的bit多了会遗漏。
都说了是给大家玩的程序。所以有兴趣的朋友可以查询一下standard中对$feof以及$fgets的解读
欢迎加入: FPGA广东交流群:162664354
FPGA开发者联盟: 485678884
最新文章
- Windows平台手动卸载Oracle Server【完整+干净】
- 例子:Basic Lens sample
- 千呼万唤始出来!—— GG(高仿QQ)终于有移动端了!(技术原理、实现、源码)
- 【转】Kylin的Hierarchies,Derived维度方面配置优化
- metasploit模块功能介绍
- eclipse 本地项目提交到远程库以及从远程库中添加项目 ---git
- spring-boot资料
- Python 练习 21
- Redis学习手册
- CSS 布局Float 【4】
- php设计模式之单例模式
- MongoDB在win7下安装配置
- pfsense 2.2RC版本应用
- DHTML【11】--DOM
- OC之知识储备篇
- MySQL 异常错误码使用 及 对照表
- 深入理解C#中的String
- Windows WMIC命令使用详解(附实例)
- linux基本命令之stat
- Omi框架学习之旅 - 组件通讯(data通讯) 及原理说明
热门文章
- BCGControlBar使用方法(转)
- JavaScript奇技淫巧45招
- 网络基本功(二十七):Wireshark抓包实例分析HTTP问题
- js substr()与substring()的区别
- 消息处理之performSelector
- 如何在一个工作站里创建多个工程(同一个xcode下面创建多个工程)
- BZOJ 2946: [Poi2000]公共串( 后缀自动机 )
- HDU4323-Magic Number(levenshtein distance-编辑距离)
- hadoop搭建杂记:Linux下hostname的更改办法
- php知识--递归