与matlab联合仿真的VHDLtestbench的编写_第1页
与matlab联合仿真的VHDLtestbench的编写_第2页
与matlab联合仿真的VHDLtestbench的编写_第3页
与matlab联合仿真的VHDLtestbench的编写_第4页
与matlab联合仿真的VHDLtestbench的编写_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、首先用matlab生成测试数据,用*TXT文件保存,方法如下:fid = fopen('myfile.txt', 'wt'); %fid 为文件指针变量fprin tf(fid, %8.0f, 'test_data') %写文件命令,8.0f 把数据的存储成的格式,test_data'生成的数据,用来测试。fclose(fid); %关闭文件,防止文件变改或者破坏编写波形测试文件本人用的是 xilinx 公司提供的 ise12.1 软件,在新建文件中选择 vhdl bench 文件类型,关联上自己所要仿真的文件,就会自动生产 vhdl b

2、ench文件,在这个文件中加入自己的激励就行了。联合测试应该在 library 中把 textio 程序包包括,就是在文件的刚开 始添加LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.Al自动生成的use textio.all; -添加现在介绍一下 textio 程序包1 TEXTIO介绍TEXTIO是VHDL标准库STD中的一个程序包(Package。在该 包中定义了三个类型:LINE类型、TEXT类型以及SIDE类型。另外, 还有一个子类型(subtype)WIDTH。此外,在该程序包中还定义了 一些访问文件所必须的过程( Procedure)。1.1 类型定义(

3、1)type LINE is access string定义了 LINE 为存取类型的变量,它表示该变量是指向字符串的指针,它是TEXTI0中所有操作的基本单元。读文件时,先按行(LINE) 读出一行数据,再对 LINE 操作来读取各种数据类型的数据;写文件 时,先将各种的数据类型组合成LINE再将LINE写入文件。在用户 使用时, 必须注意只有变量才可以是存取类型, 而信号则不能是存 取类型。例如, 我们可以定义variable DLine : LINE;但不能定义成signal DLine : LINE;(2) type TEXT is file of string定义了 TEXT为ASC

4、II文件类型。定义成为TEXT类型的文件是 长度可变的ASCII文件。例如在TEXTIO中定义了两个标准的文本文 件。file in put : TEXT ope n read_mode is"STD_INPUT" - 一般 read_mode 为 infile output : TEXT open write_mode is"STD_OUTPUT"-一般 write_mode 为 out定义好以后,就可以通过文件类型变量in put和output来访问其对应的文件STD _INPUT和STD_OUTPUT指的是路径加文件名)。 需要注意的是VHDL&#

5、39;87和VHDL'93在使用文件方面有较大的差异, 在编译时注意选中对应的标准。(3) type SIDE is (right,left)定义了 SIDE类型。表示定义了一个名为SIDE的数据类型,其中 只能有两种状态,即right和left,分别表示将数据从左边还是右边 写入行变量。该类型主要是在 TEXTIO程序包包含的过程中使用。(4) subtype WIDTH is n atural定义WIDTH为自然数的子类型。所谓子类型表示其取值范围是 父类型范围的子集。1.2 过程定义TEXTIO提供了基本的用于访问文本文件的过程。类似于C+ + ,VHDL 提供了重载功能, 即完

6、成相近功能的不同过程可以有相同的 过程名, 但其参数列表不同, 或参数类型不同或参数个数不同。TEXTIO提供的基本过程有:procedure READLINE文件变量;行变量);用于从指定文件读取一 行数据到行变量中。procedure WRITELINE文件变量;行变量);用于向指定文件写入行 变量所包含的数据。procedure READ行变量;数据类型);用于从行变量中读取相应数 据类型的数据。根据参数数据类型及参数个数的不同,有多种重载方式, TEXTIO 提供了 bit、bit_vector 、BOOLEAN、character、 integer、real、string、 time

7、 数据类型的重载。同时, 提供了返回过程是否正确执行的 BOOLEAN数据类型的重载。例如,读取整数的过程为procedure READ(L:inout LINE; VALUE: out integer; GOOD: outBOOLEAN);其中, GOOD 用于返回过程是否正确执行, 若正确执行, 则返回 TRUEprocedure WRITE行变量;数据变量;写入方式;位宽);该过程将数据写入行变量 。其中写入方式表示写在行变量的左边还是右边,且其值只能为left或right,位宽表示写入数据时占的位宽。例如:write(OutLine,OutData,left,2);表示将变量 OutData 写入 LINE 变量 OutLine 的左边占 2 个字把文件中的数据加载到端口的的激励添加法:process(clk)variable input_tmp : integer;variable file_input : line; biginif rising_edge(clk) thenread(file_input , file_name);-把文件中的数据按行写入 file_input 变量中readline(input_tmp, file_input);-把 file_input 的值输入 input_tmp 中,数据支持的类型是有限的,integer,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论