第3节 VHDL测试平台
第3节 VHDL测试平台
用VHDL写测试程序
- 了进行正确的仿真,测试程序应包括:
--激励发生器;
--被测模块;
--比较器。
- 测试程序中:
(1)引入被测实体
由于被测实体对端口已经定义,因此测试程 序的实体描述很简单。一般写成:
Entity 测试程序名 is
End Entity 测试程序名;
(2)结果判别部分
仿真过程中,要对逻辑功能、模块行为、波形 时序关系进行检查,不满足要求时应输出错误 信息。一般:
用IF语句做判断;
用断言(assert)语句输出错误信息。
(3)激励发生器
测试信号的生成。
例子,激励信号产生的实体
- Library IEEE;
Use IEEE.std_logic_1164.all;
Entity adder_stim IS
Port (x,y,c_in: OUT std_logic;
sum, carry: IN std_logic);
End Entity adder_stim;
Architecture behav OF adder_stim IS
Begin
x <= '0','1' AFTER 200 ns, '0' AFTER 400 ns, 1 AFTER 450 ns;
y <= '0','1' AFTER 100 ns, '0' AFTER 200 ns, 1 AFTER 300 ns;
c_in <= '0','1' AFTER 50 ns, '0' AFTER 100 ns, 1 AFTER 150 ns;
End Architecture behav;
例子,测试平台
- Library IEEE;
Use IEEE.std_logic_1164.all;
Entity adder_test_bench IS
End Entity adder_test_bench;
Architecture struct OF adder_test_bench IS
Signal x,y,ci,sum,co : std_logic;
Component adder
Port (x,y,c_in: IN std_logic;
sum, carry: OUT std_logic);
End Component adder;
Component adder_stim
Port (x,y,c_in: OUT std_logic;
sum, carry: IN std_logic);
End Component adder_stim;
Begin
U1: adder Port Map(x,y,ci,sum,co);
ST: adder_stim Port Map(x,y,ci,sum,co);
End Architecture struct;
<<上一节 下一节>>