我是靠谱客的博主 飞快大叔,最近开发中收集的这篇文章主要介绍verilog从txt中读取_verilog读写文件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

系统函数$

fopen

用于打开一个文件,并还回一个整数指针.然后,$

fdisplay

就可以使用

这个文件指针在文件中写入信息,写完后,则可以使用$

fclose

系统关闭这个文件

例如:

integer write_out_file;

//定义一个文件指针

integer write_out_file=$fopen("write_out_file.txt");

$fdisplay(write_out_file,"@%hn

h"

addr

data)

fclose("write_out_file");

addr

data

”@%h

n

h”

h

置,

write_out_file

文件指针所指向的

write_out_file.txt

中.

从文件中读取数据,可以用

$readmemb $readmemh

从文件中读入数据,该文件格式是一

定的.

reg

〔7:0〕

data

〔47:0〕

$readmemh

(

"file_name

txt",data

)

就是将

file_name

txt

中的数据读入到

data

数组中,然后就可以使用这些数据了.

还有一种方式可以把指定的数据放入指定的存储器地址单元内,就是在存放数据的文本文

件内,给相应的数据规定其内存地址,形式如下:

@address_in_hexadecimal

data

2f

20

两个系统任务可以在仿真的任何时刻被执行使用,其使用格式共有以下六种:

1) $readmemb("<

数据文件名

>",<

存贮器名

>);

2) $readmemb("<

数据文件名

>",<

存贮器名

>,<

起始地址

>);

3) $readmemb("<

数据文件名

>",<

存贮器名

>,<

起始地址

>,<

结束地址

>);

4) $readmemh("<

数据文件名

>",<

存贮器名

>);

5) $readmemh("<

数据文件名

>",<

存贮器名

>,<

起始地址

>);

6) $readmemh("<

数据文件名

>",<

存贮器名

>,<

起始地址

>,<

结束地址

>);

在这两个系统任务中,被读取的数据文件的内容只能包含:空白位置

(

空格,换行,制表格

(tab)

form-feeds)

注释行

(//

形式的和

/*...*/

形式的都允许

)

二进制或十六进制的数字。

字中不能包含位宽说明和格式说明,对于

$readmemb

系统任务,每个数字必须是二进制数

字,对于

$readmemh

系统任务,每个数字必须是十六进制数字。数字中不定值

x

X

,高

阻值

z

Z

,和下划线

(_)

的使用方法及代表的意义与一般

V

erilog

HDL

程序中的用法及意

义是一样的。另外数字必须用空白位置或注释行来分隔开。

在下面的讨论中,地址一词指对存贮器

(memory)

建模的数组的寻址指针。当数据文件被读

取时,每一个被读取的数字都被存放到地址连续的存贮器单元中去。存贮器单元的存放地

址范围由系统任务声明语句中的起始地址和结束地址来说明,每个数据的存放地址在数据

文件中进行说明。当地址出现在数据文件中,其格式为字符

“@”

后跟上十六进制数。如:

@hh...h

对于这个十六进制的地址数中,允许大写和小写的数字。在字符

“@”

和数字之间不允许存

在空白位置。可以在数据文件里出现多个地址。当系统任务遇到一个地址说明时,系统任

最后

以上就是飞快大叔为你收集整理的verilog从txt中读取_verilog读写文件的全部内容,希望文章能够帮你解决verilog从txt中读取_verilog读写文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部