今天给个程序大家玩玩。因为今天遇到一个问题,就是要向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

最新文章

  1. Windows平台手动卸载Oracle Server【完整+干净】
  2. 例子:Basic Lens sample
  3. 千呼万唤始出来!—— GG(高仿QQ)终于有移动端了!(技术原理、实现、源码)
  4. 【转】Kylin的Hierarchies,Derived维度方面配置优化
  5. metasploit模块功能介绍
  6. eclipse 本地项目提交到远程库以及从远程库中添加项目 ---git
  7. spring-boot资料
  8. Python 练习 21
  9. Redis学习手册
  10. CSS 布局Float 【4】
  11. php设计模式之单例模式
  12. MongoDB在win7下安装配置
  13. pfsense 2.2RC版本应用
  14. DHTML【11】--DOM
  15. OC之知识储备篇
  16. MySQL 异常错误码使用 及 对照表
  17. 深入理解C#中的String
  18. Windows WMIC命令使用详解(附实例)
  19. linux基本命令之stat
  20. Omi框架学习之旅 - 组件通讯(data通讯) 及原理说明

热门文章

  1. BCGControlBar使用方法(转)
  2. JavaScript奇技淫巧45招
  3. 网络基本功(二十七):Wireshark抓包实例分析HTTP问题
  4. js substr()与substring()的区别
  5. 消息处理之performSelector
  6. 如何在一个工作站里创建多个工程(同一个xcode下面创建多个工程)
  7. BZOJ 2946: [Poi2000]公共串( 后缀自动机 )
  8. HDU4323-Magic Number(levenshtein distance-编辑距离)
  9. hadoop搭建杂记:Linux下hostname的更改办法
  10. php知识--递归