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


9. 编译预处理语句

在这里插入图片描述

  • 这些在C语言中都有涉及,但是在硬件描述语言中相对用的不是特别多,比如说include,在语言用的特别多,但是在硬件描述语言很少include,因为如果要建库,一定会通过use lib在软件中把库建了

9.1 仿真时间标度

  • 因为用的不多,所以只讲`timesclae
  • 很重要的概念,决定了工作效率,用合适的时间仿真合适的电路,这样会好一些
  • `timescale 命令用来说明跟在该命令后的模块的时间单位和时间精度。
    在这里插入图片描述
  • 举例:
    (1)
    在这里插入图片描述
    表示模块中所有的时间值都是 1ns 的整数倍。这是因为在timescale 命令中,定义了时间单位是1ns。因为timescale 命令定义的时间精度为 1ps,所以模块中的延迟时间可表达为带三位小数的实型数(time和realtime)。

(2)
在这里插入图片描述
该例中,模块中的时间值均为 10s 的整数倍。timesacle 命令定义的时间单位是 10s延迟时间的最小分辨度为十分之一微秒(100 s)即延迟时间可表达为带一位小数的实型数

(3)
在这里插入图片描述
该例中,`timescale命令定义了模块 delay_tb 的时间单位为 10ns、时间精度为1ns因此在此测试模块中,所有的时间值应为 10s 的整数倍,且以 1ns 为时间精度。这样经过取整操作,存在参数d中的延迟时间实际是 16ns(即1.6x10ns),这意味着在仿真时间为 16n时寄存器set 被赋值0,在仿真时间为32ns 时存器set 被赋值1。
!!对于仿真的时序要求非常高,代表了计算能力的有效使用

10. Verilog HDL测试方法简介

  • 如何衡量一个测试是不是好的,完备的,有效的?实际上有不同的测试方法
  1. 完全测试法
    对于复杂的设计来说,常常通过检查代码的覆盖率来检查验证工作是否完成。代码覆盖率可以指示 Verilog HDL代码描述的功能有多少在仿真过程中被验证过。通常代码覆盖率包括以下内容:
    (1)语覆盖率
    (2)路径覆盖率
    (3)状态机覆盖率
    (4)触发覆盖率
    (5)表达式覆盖率
    !!!!在对覆盖率检查的时候,希望越高越好,但是不可能达到100%,因为有一些条件表达式,比如case有一个分支,虽然程序状态都满了,但是分支必须要加进去,因为综合工具没有这个语句可能报一个错误或者warning。因为做硬件描述语言首先希望编译和综合之后的warning尽量少,在编译尽可能少的情况下,对所有的warning必须要有合理的解释,比如端口连接没有连;第二个就是仿真,就会考虑到你是不是充分, 这 时 候 就 会 有 覆 盖 率 的 检 查 这时候就会有覆盖率的检查 ,覆盖率检查不可能100%,但是通常都是99.几%,要尽可能提高覆盖率
  2. 随机测试法
    (1)在 Verilog HDL中提供了多个用于随机测试的系统命令,通常使用随机测试的系统函数来仿真真实应用的情况,如在通信领域中常用的帧同步搜索电路需要从接收的数据流中检测发送端固定插入的某个特殊的码型,而数据本身也有可能包括该码型,在这种情况下进行随机化测试就更接近于真实应用的情况。其中最常用的系统命令是随机数产生系统任务Srandom。
    (2)!!在现在的超大规模的集成电路中,主要用的都是随机测试法,通过样本空间的样本序列产生足够多的样本来产生覆盖
    (3)!!随机测试的概念是非常重要的,比如说手机芯片的测试,这是测不出来的。因为每个人打电话的语句都不一样,产生的东西都不一样;浏览网页,访问的网页也不一样,等等。在这这些不一样的情况下,要求不一样的测试是不可能的,所以一定是随机测试。但是基本结构是一样的,比如4G,5G要求10ms或者20ms的帧的形式。
  3. 自动测试法
    在集成电路测试领域,全面准确地测试才能保证大规模集成电路的正常工作,而确保一个设计能够得到全面测试的唯一途径就是实现任务的自动化。通常通过创建一个检验表使用相应个数的采样值来完成自动测试。当修改过源代码后,所有的测试程序都自动被再次执行。但需要注意的是,使用自动测试可能会存在截断误差。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

普通的晓学生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值