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

2023-10-29 17:40
文章标签 平台 仿真 测试 testbench

本文主要是介绍仿真测试平台文件(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)(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/302270

相关文章

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS