本文主要是介绍仿真测试平台文件(TestBench)(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2. 测试平台文件的结构
使用VHDL语言编写测试平台文件时,所有的基本VHDL语法都是适用的,但是测试平台文件与一般的项目设计存在一些区别。一个测试平台文件必须包括与所测试的元件(UUT)相对应的原件声明,以及输入到UUT的激励描述。一个测试平台文件的基本结构如例1:
【例1】
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY test1 IS --测试平台文件的空实体(不需要定义端口)
END test1;
ARCHITECTURE behavior OF test1 IS COMPONENT dff2 --被测试元件声明PORT(…);END COMPONENT;Local-signal-declarations --局部信号声明
BEGIN
-- 被测试元件的例化或映射process --产生时钟信号begin……end process;
process --产生激励源
begin……
end process;
从上面的基本结构中,可以看出其中包含几个最基本的语句,即实体的定义、所测试元件的例化、产生时钟信号和产生激励源等语句。测试平台中的实体定义不需要定义端口,也就是说测试平台没有输入输出端口,它只是和被测试元件(UUT)通过内部信号相连接。
3.测试平台文件的编写
前面提到了测试评台的文件,以及怎么编写激励信号,接下来我们将通过对组合和时序的实例程序说明测试文件的编写。下面的实例程序将即为一个测试平台程序以及它所测试的元件。
1)四选一选择器的仿真(组合逻辑电路)
① 测试平台文件。在例2中激励信号波形在一个进程中产生。实体为一个空实体,没有输入输出信号端口。
【例2】四选一数据选择器的测试平台文件
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY test IS --测试平台实体
END test;
ARCHITECTURE behavior OF test IS COMPONENT mux --被测试元件的声明PORT(input : IN std_logic_vector(3 downto 0);a : IN std_logic;b : IN std_logic;y : OUT std_logic);END COMPONENT; --Inputs输入信号signal input : std_logic_vector(3 downto 0) := (others => '0');signal a : std_logic := '0';signal b : std_logic := '0';--Outputs输出信号signal y : std_logic;
BEGIN--被测试元件例化uut: mux PORT MAP (input => input,a => a,b => b,y => y);input<="0101"; --这里我们固定数据输入,方面选择端选择-- Stimulus processstim_proc: process --激励信号begin a <= '0';b <= '0';wait for 10 ns;a <= '0';b <= '1';wait for 10 ns;a <= '1';b <= '0';wait for 10 ns;a <= '1';b <= '1';wait for 10 ns;end process;
END;
②测试文件的VHDL程序,例3是一个简单的四选一数据选择程序。
【例3】四选一数据选择器的VHDL程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux4 IS
PORT( d : IN STD_Logic_Vector(3 Downto 0);a,b : IN Std_Logic;y : OUT Std_Logic);
END mux4 ;
ARCHITECTURE mux4_arch OF mux4 IS
SIGNAL sel:Std_Logic_Vector(1 Downto 0);
BEGINsel<=b & a;PROCESS (d,sel)BEGINIF (sel="00") THENy <= d(0);ELSIF (sel="01") THENy <= d(1);ELSIF (sel="10") THENy <= d(2); ELSEy <= d(3);END IF; END PROCESS;
END mux4_arch;
在上面所定义的测试平台文件的基础上,当使用ISIM对上面所定义的元件进行仿真,所得到的仿真波形如图1所示。
图1四选一选择器仿真波形图
这篇关于仿真测试平台文件(TestBench)(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!