当前位置: 代码迷 >> 综合 >> 仿真测试平台文件(TestBench)(二)
  详细解决方案

仿真测试平台文件(TestBench)(二)

热度:30   发布时间:2023-12-26 01:23:49.0

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四选一选择器仿真波形图