基本输入输出函数
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
a
文件定义:二进制I/O文件(VHDL 1993)
VHDL支持read(f,value), write(f, value)和 endfile(f)操作; VHDL 93支持File_Open()和File_Close()操作; 直接和间接的文件打开操作;
6
a
文件定义:二进制I/O文件(VHDL 1987)
Read()和write()子程序对line数据结构进行操作;
Readline()和writeline()子程序和文件进行数据交换;
基于Text的 I/O操作;
在STD 库的TEXTIO包中封装了全部的操作子程序
– 从行( lines )中读取和写入预定义类型数据的子程序; – 针对std_input and std_output的预定义访问操作; – 子程序名的重载(Overloaded);
•测试程序产生周期性的时钟信号并施加测矢量
25
a
代码示例:测试程序(Testbenches)
26
a
代码示例:结构化测试模块
27
a
测试激励的生成
定义功能测试所需的激励矢量和参考矢量
激励源
– 局部常数阵列 – I/O文件
时钟和复位信号的生成
– 通常与激励矢量相隔离 – 实现周期性的激励
28
a
ຫໍສະໝຸດ Baidu
7
a
文件定义:二进制I/O文件(VHDL 1987)
VHDL1987支持read(f,value), write(f, value)和 endfile(f)操作; 通过文件声明来间接地进行文件打开操作;
8
a
文件定义:TEXTIO包
9
a
文件定义:TEXTIO包
文件是按行(lines)来组织的;
– 通常“input”和 “output”分别映射到标准输入和标准输出
21
a
代码示例:测试模块
22
a
代码示例:测试模块
23
a
代码示例:测试程序(Testbenches)
• 测试程序具有一定的通用性 • 基本策略是:施加测试激励,测量和记录响应矢量
24
a
代码示例:测试程序(Testbenches)
将测试响应矢量与参考矢量相比较,并在外部文件中记录其中不匹配的 部分(出错点);
同时需要记录出错点所对应的仿真时间点; 可能需要记录仿真状态。
32
a
断言(ASSERT)
assert Q = check(1) and Qbar = check(0) report “Test Vector Failed” severity error;
输出结果:
This is the header Clk = 0, N1 = 01001011
17
a
代码示例:(Bhasker95)
读入的格式化输入行:
18
a
代码示例:(Bhasker95)
读入该格式化输入行的程序:
19
a
代码示例:文件名的处理
20
a
代码示例:文件名的处理
在上面的代码中假定“input”映射到模拟器的控制台
仿真器控制台输出示例
Selected Top-Level: srbench (behavioral) : ERROR : Test Vector Failed : Time: 20 ns, Iteration: 0, Instance: /T1. : ERROR : Test Vector Failed : Time: 100 ns, Iteration: 0, Instance: /T1.
33
a
断言(ASSERT)
assert Q = check(1) and Qbar = check(0) report “Test Vector Failed” severity error;
仿真器控制台输出示例
Selected Top-Level: srbench (behavioral) : ERROR : Test Vector Failed : Time: 20 ns, Iteration: 0, Instance: /T1. : ERROR : Test Vector Failed : Time: 100 ns, Iteration: 0, Instance: /T1.
第九讲 基本的输入和输出
1
a
提纲
基本input/output文件 测试程序(Testbenches) ASSERT语句
2
a
文件对象
VHDL的对象包括
– 信号 – 变量 – 常量 – 文件
通过引入文件类型,使得我们可以定义和使用文件对象
3
a
文件定义
文件可以通过它所存储的内容来进行区分
测试激励的生成:示例(Smith96)
29
a
测试激励的生成:示例(Smith96)
30
a
测试结果的确认(Validation)
将测试响应矢量与参考矢量相比较,并在外部文件中记录其中不匹配的 部分(出错点);
同时需要记录出错点所对应的仿真时间点; 可能需要记录仿真状态。
31
a
断言(ASSERT)
10
a
文件定义:TEXTIO包的使用
11
a
文件定义:TEXTIO包的使用
12
a
文件定义:TEXTIO包的使用
13
a
文件定义:扩展TEXTIO支持其他数据类型
对用户隐藏TEXTIO的ASCII格式;
针对所希望的数据类型的读和写,如, std_logic_vector ,提供 类型转换子程序;
将子程序封装在包中;
将包( package)安装在库( library)中,然后通过use 子句使 库中的内容可见;
14
a
代码示例:类型转换
15
a
代码示例:类型转换
16
a
代码示例:(Bhasker95)
输出格式定义:
write (buf, “This is the header”); writeline (outfile,buf); write (buf, “Clk =”); write (buf, clk); write (buf, “, N1 =”); write (buf, N1);
VHDL 1993中的文件定义
– file infile: text open read_mode is “inputdata.txt”; – file outfile: text open write_mode is “outputdata.txt”;
4
a
文件定义:二进制I/O文件(VHDL 1993)
– type text 是字符串文件; – type IntegerFileType 是整数型文件;
VHDL 1987中的文件定义
– file infile: text is in “inputdata.txt”; – file outfile: text is out “outputdata.txt”;