verilog中读取文件中的字符串_modelsim高级仿真
今天给个程序大家玩玩。因为今天遇到一个问题,就是要向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高级仿真的更多相关文章
- 在java中读取文件中的内容
package shi; import java.io.*; public class wenjianIO { public static void main(String agrs[]){ File ...
- Python中读取文件中的json串,并将其写入到Excel表格中
Json:JavaScript Objective Notation,是一种轻量级的数据交换格式.Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式.现在也常用语http请求中, ...
- IO流的练习5 —— 读取文件中的字符串,排序后写入另一文件中
需求:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” 请编写程序读取数据内容,把数据排序后写入ss.txt中. 分析: A:读取文件中的数据 B:把数 ...
- json数据处理:读取文件中的json字符串,转为python字典
方法1: 读取文件中的json字符串, 再用json.loads转为python字典 import json str_file = './960x540/config.json' with open( ...
- 利用PushbackReader读取文件中某个字符串之前的内容
package File; import java.io.FileReader; import java.io.IOException; import java.io.PushbackReader; ...
- php中读取文件内容的几种方法。(file_get_contents:将文件内容读入一个字符串)
php中读取文件内容的几种方法.(file_get_contents:将文件内容读入一个字符串) 一.总结 php中读取文件内容的几种方法(file_get_contents:将文件内容读入一个字符串 ...
- python中读取文件的read、readline、readlines方法区别
#读取文件所有内容,返回字符串对象,python默认以文本方式读取文件,遇到结束符读取结束. fr = open('lenses.txt')read = fr.read()print(type(rea ...
- Python 读取文件中unicode编码转成中文显示问题
Python读取文件中的字符串已经是unicode编码,如:\u53eb\u6211,需要转换成中文时有两种方式 1.使用eval: eval("u"+"\'" ...
- PHP中读取文件的几个方法
整理了一下PHP中读取文件的几个方法,方便以后查阅. 1.fread string fread ( int $handle , int $length ) fread() 从 handle 指向的文件 ...
随机推荐
- javascript中数据类型转换
转换为数字: parseInt():转换为整数型数值:从下标0开始判断,若为数值型则继续直到遇到非数值,返回前面的整数值: 小数点无效,若0开始为非数值则返回NaN: 转换空字符串会返回NaN: 能转 ...
- 电脑技巧---完全控制面板---上帝模式(God Mode)
简介 上帝模式,即"God Mode”,或称为“完全控制面板”.是Windows 系统中隐藏的一个简单的文件夹窗口,但包含了几乎所有Windows系统的设置,如控制面板的功能.界面个性化.辅 ...
- 浅谈SpringMVC(一)
一.SpringMVC引言 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MV ...
- Hadoop学习之自定义二次排序
一.概述 MapReduce框架对处理结果的输出会根据key值进行默认的排序,这个默认排序可以满足一部分需求,但是也是十分有限的.在我们实际的需求当中,往 往有要对reduce输出结果进行二次排 ...
- C++学习之指针的常见错误
C++学习之指针的常见错误 我们在编程的过程中,有时候在使用指针的时候,删除一个指针以后一定要将这个指针设置为空指针,这是因为删除这个指针只是删除这个指针指向的地址,这个指针还真是的存在程 ...
- IISExpress实现外部访问
首先修改IISExpress配置文件 \IISExpress\config\applicationhost.config 在website中添加一个binding <binding protoc ...
- 阿里云服务器linux(centos)常用命令
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...
- Use eplipse to develop Python project
Source: This is the example how to use eclipse and python. http://www.360doc.com/content/15/0206/10/ ...
- 快排 quicksort 快速排序
首先看这个 http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.html 看完后就没有什么不理解的了... PS 注意 凡是在一 ...
- U盘检测软件:ChipGenius,MyDiskTest
几年前的事情了.有一次去北邮玩,看到校园里有卖U盘的摊位,问了问价格,8GB的金士顿U盘99块钱.正好头一天有个同事跟我说最近U盘降价了,8GB才99,于是心里一痒痒就买了一个.回来用着就感觉不对劲, ...