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

verilog中读取文件中的字符串_modelsim高级仿真的更多相关文章

  1. 在java中读取文件中的内容

    package shi; import java.io.*; public class wenjianIO { public static void main(String agrs[]){ File ...

  2. Python中读取文件中的json串,并将其写入到Excel表格中

    Json:JavaScript Objective Notation,是一种轻量级的数据交换格式.Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式.现在也常用语http请求中, ...

  3. IO流的练习5 —— 读取文件中的字符串,排序后写入另一文件中

    需求:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” 请编写程序读取数据内容,把数据排序后写入ss.txt中. 分析: A:读取文件中的数据 B:把数 ...

  4. json数据处理:读取文件中的json字符串,转为python字典

    方法1: 读取文件中的json字符串, 再用json.loads转为python字典 import json str_file = './960x540/config.json' with open( ...

  5. 利用PushbackReader读取文件中某个字符串之前的内容

    package File; import java.io.FileReader; import java.io.IOException; import java.io.PushbackReader; ...

  6. php中读取文件内容的几种方法。(file_get_contents:将文件内容读入一个字符串)

    php中读取文件内容的几种方法.(file_get_contents:将文件内容读入一个字符串) 一.总结 php中读取文件内容的几种方法(file_get_contents:将文件内容读入一个字符串 ...

  7. python中读取文件的read、readline、readlines方法区别

    #读取文件所有内容,返回字符串对象,python默认以文本方式读取文件,遇到结束符读取结束. fr = open('lenses.txt')read = fr.read()print(type(rea ...

  8. Python 读取文件中unicode编码转成中文显示问题

    Python读取文件中的字符串已经是unicode编码,如:\u53eb\u6211,需要转换成中文时有两种方式 1.使用eval: eval("u"+"\'" ...

  9. PHP中读取文件的几个方法

    整理了一下PHP中读取文件的几个方法,方便以后查阅. 1.fread string fread ( int $handle , int $length ) fread() 从 handle 指向的文件 ...

随机推荐

  1. Pro Android学习笔记(十一):了解Intent(中)

    Intent的构成 Intent能够带有action,data(由URI表达),extra data(key/value map,键值对),指定的类名(成为component name).一个inte ...

  2. css背景渐变兼容(兼容所有ie)

    css3里面一行可以搞定的事,换到ie里,要用滤镜,在网上找了很多,不知道什么原因都没用,终于找到个有用的,放在这里,方便大家用,自己也找得到~ 完整型代码,兼容所有浏览器: ​background: ...

  3. Dijkstra算法求单源最短路径

    Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店 ...

  4. C++_知识点_指针类型转换

    #include <iostream> using namespace std; int main(){ ] = {, , , , , , , , , }; int* p = (int*) ...

  5. TJU 2944 Mussy Paper 最大权闭合子图

    传送门 给你一些东西,  每个东西有一个值,有正有负. 在给一些关系, 选了其中一个物品, 和他有关系的也必须全都选上, 关系是单向的. 问最后的最大价值是多少, 如果小于0输出“   **** ”( ...

  6. python自学笔记(一)简单了解python

    脚本解释型语言的内部机制 python先将脚本编译成字节码文件(pyc,pyo) python虚拟机解释并运行字节码文件 编译型语言的内部机制 先将源代码编译成机器码(机器能读懂的代码),生成可执行文 ...

  7. Python2.7.3 学习——准备开发环境

    安装环境搭建参考:http://blog.163.com/sunshine_linting/blog/static/4489332320129187464222/ 第一种方式,通过命令行方式安装Pyt ...

  8. sql server 修改表自增列的值

    Create PROCEDURE [dbo].[SP_UpdateIdentityId] ( ) , @beforeId INT , @afterId INT ) AS BEGIN IF @befor ...

  9. 转载:Ajax及 GET、POST 区别

    转载:Ajax及 GET.POST 区别 收获: xhr.setRequestHeader(), xhr.getResponseHeader() 可以设置和获取请求头/响应头信息; new FormD ...

  10. 产品在焊接时出现异常,尤其是尺寸较大的QFP芯片,焊接后出现虚焊、冷焊、假焊等问题?

    1 不良描述 客户采用我们提供的SMT设备后,部分产品在焊接时出现异常,尤其是尺寸较大的QFP芯片,焊接后出现虚焊.冷焊.假焊等不良.应客户要求对这一批不良产品以及生产条件进行分析,以便找到改善的依据 ...