VHDL语言的高级议题.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
12、文件和文本输入输出 ★一个文件只能包含一种类型的对象, 例如:整数、位向量或字符串,这是由文件的类型设定的。 ★例如,说明语句 type bv_file is file of bit_vector; 定义了bv_file为一个只包含位向量的文件类型。 ★每个文件类型都有一个与其相关的隐式文件结束函数,其调用格式为: endfile(文件名) 如果文件指针在文件的末尾,则此语句返回“真”。 12、文件和文本输入输出 ★ VHDL的标准TEXTIO包集合中包含对文件进行操作的定义说明和过程(procedure),这些文件都是由文本行构成的。 ★ TEXTIO包集合(见附录C)定义一个名为text的文件类型: type text is file of string; ★ TEXTIO包集合中既包含从text类型的文件中按行进行文本读取的过程(procedure),也包含按行在文件中写入文本的过程。 12、文件和文本输入输出 ★过程:readline 读取一行文本,并将其放置在一个带指针的缓存器中。 ★缓存器的指针必须为line类型,在TEXTIO包集合中的说明为 type line is access string; ★只要说明了一个line类型的变量,就会生成一个指向字符串的指针。代码 variable buff: line; ... readline(buff,test_data); 从test_data中读取一行文本,并将其置于被指针buff指向的缓存器中。 12、文件和文本输入输出 ★在缓存器中读入一行文本后,我们必须一次或多次调用read过程,以便从行缓存器中把数据释放出来。 ★过程read: 可以从缓存器中读取数据类型为位、位向量、布尔量、字符、整数、实数、字符串和时间的数据。 ★例如,如果bv4是一个长度为4的位向量,则调用 read(buff,bv4); 可以从缓存器中释放一个4位的向量,把bv4设置为此向量,并且调整指针buff,使其指向缓存器的下一个字符。再次调用read过程可以从行缓存器中释放下一个数据对象。 read的调用格式可以是以下两种格式中的一种: read (pointer,value); read (pointer,value,good); 其中pointer为line类型,value是我们想读取的数据变量。 12、文件和文本输入输出 ★read的调用格式可以是以下两种格式中的一种: read (pointer,value); read (pointer,value,good); 其中pointer为line类型,value是我们想读取的数据变量。 ★ value的大小和类型决定调用TEXTIO包集合中的哪一个read过程。 ★例如,如果value为一个长度为5的字符串,那么调用read后可以从行缓存器中读取下五个字符。 ★如果value的类型是整数,那么调用read后可以越过所有的空格对十进制数字进行读取,直到再遇到空格或其它的非数字的字符为止,并且把读取到的字符串转换为整数。 ★在text类型的文件中,字符、字符串和位向量不用符号分隔。 12、文件和文本输入输出 ★为了向文件中写入文本行,我们必须一次或者多次调用一个write过程向行缓存器中写入数据,然后调用writeline向文件中写入数据。 ★ write过程可以把类型为位、位向量、布尔量、字符、整数、实数、字符串和时间的数据写入缓存器。例如,代码 variable buffw:line; variable int1: integer; variable bv8: bit_vector(7 downto 0); ... write (buffw,int1,right,6); write (buffw,bv8,right,10); writeline (buffw,output_file); ★可以将int1转化为字符本串,向buffw指向的行缓存器中写入此字符串,并且调整指针,此文本在一个宽度为6个字符的区域内向右对齐。 12、文件和文本输入输出 ★ write (buffw,bv8,right,10); 该语句将位向量bv8置于一个行缓存器中,然后调整指针。这个8位向量在宽度为10个字符的区域内向右对齐。 ★ writeline (buffw,output_file); 该语句把缓存器的内容写入out_file中。 ★每个写调用均有四个参数: (1)line类型的缓存器指针; (2)一个可接收的数据类型的值; (3)在输出区域内指定文本位置的对齐方式(左、右); (4)区域宽度,一个整数,它设定了区域中字符的个数。 12、文件和文本输

文档评论(0)

kabudou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档