仿真测试平台文件(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 process
   stim_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);
BEGIN
  sel<=b & a;
  PROCESS (d,sel)
     BEGIN
       IF (sel="00") THEN
          y <= d(0);
       ELSIF (sel="01") THEN
          y <= d(1);
       ELSIF (sel="10") THEN
          y <= d(2);    
       ELSE
          y <= d(3);
     END IF;   
  END PROCESS;
END mux4_arch;

       在上面所定义的测试平台文件的基础上,当使用ISIM对上面所定义的元件进行仿真,所得到的仿真波形如图1所示。

图1四选一选择器仿真波形图 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值