数字集成电路设计(五、仿真验证与 Testbench 编写)(一)

本文介绍了Verilog HDL的电路仿真和验证,重点讲解了测试程序设计基础,包括Testbench的结构、组合及时序电路的仿真环境搭建。讨论了功能验证的重要性,并探讨了如$display、$monitor、$strobe等与仿真相关的系统任务,强调了高效仿真技巧和避免使用屏幕打印以提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


引言

  • 前面的第三章,第四章要求非常准确,非常严格地按照想法做,但是到了测试,怎么写都可以
  • 从硬件描述语言的作用,可以分为:可综合设计和测试仿真。对于设计岗位,要对前面的知识非常了解,同时对仿真测试也要很了解。对于验证岗位,要对测试仿真非常了解,尽可能用能想到的语法去做
  • 第三章第四章讲的实际上是针对于电路的具体设计,最后是想的怎么把管子,触发器,与非门等连接到一起,操纵的是电路。而在测试和仿真,它的性质和C语言是完全一样的,操纵的是计算机的CPU

1. Verilog HDL 电路仿真和验证概述

  • 验证在 Verilog HDL 设计的整个流程中分为4个阶段:
    (1)功能验证
    (2)综合后验证
    (3)时序验证
    (4)板级验证
  • 其中和Verilog有关系的是前三种,最后一个就是电路板级的验证了
  • 这个课程只讲了功能验证,综合后验证和时序验证就是对EDA工具的使用(后面会有介绍)
  • !!功能验证是没有经过综合,在计算机层面上的验证,是最基本的验证,换句话来讲,就是对语法的检验过程
  • 综合后验证就是把所有原件连接在一起,它是实实在在的电路,是对电路的连接关系,基本逻辑的考察
  • 时序验证就是在综合后电路加上一个延迟文件(.sdf等),贴近于实际电路的情况,把实际中的物理器件变成数学模型放在这里,所以,基本上时序通过,板级就不会有问题,除非对信号的调理没调理到合适的位置,对信号的容差没有考虑
  • 目前常用的功能验证有三种:黑盒法、白盒法和灰盒法

2. Verilog HDL测试程序设计基础

2.1 Testbench及其结构

  • 通常采用测试平台(Testbench)方式进行仿真和验证。在仿真时,Testbench 用来产生测试激励给待验证设计(Design Under Verification,DUV),或者称为待测试设计(Design Under Test,DUT),同时检查DUV/DUT 的输出是否与预期的一致,从而达到验证设计功能的目的
    在这里插入图片描述

  • 在数字信号的设计中,有一些输入信号,一些输出信号,用示波器或LED或其他东西看一下输出电位。这时候就有三个东西:信号源、被测电路、测试仪器(对输出结果的观察)在这里插入图片描述

  • 对于硬件描述语言,一定还是一个模块,然后对输入输出变量和参数进行定义

  • 三个部分:调用待测试的模块,定义测试向量(激励向量产生,显示输出结果),显示格式定义(可以不写,因为定义不是很准确)

  • !!其实我们就是在写如何产生激励向量

  • 例:T触发器测试程序
    在这里插入图片描述在这里插入图片描述

  • 输出打印可以不这么写,后面会讲

  • 产生的结果
    在这里插入图片描述

  • 仿真流程:
    在这里插入图片描述

  • 从图中可以清晰地看出Testbench 的主要功能:<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

普通的晓学生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值