day11测试与验证

系统任务

仿真控制任务

  • 仿真控制任务用于使仿真进程停止,该任务有两个$finish\$stop;

  • 两者用法相同,以$stop为例说明:

  • initial #500 $stop;//执行此initial语句将使仿真进程在500个时间单位后停止;

  • 这两个系统任务都是终止仿真:

  • $finish终止仿真进程,会把控制权返回操作系统

  • $stop终止方正进城后,没有返回操作系统,而是返回仿真器的命令行

随机函数random

  • 随机函数提供一个随机数机制,每次调用这个函数都可以返回一个新的随机数,格式如下:

  • $random%b

  • 其中b>0。它给出了一个范围在(-b+1):(b+1)中的随机数。

  • 下面给出一个产生随机数的例子:

  • reg [23:0]rand;

  • rand = $random%60;

  • 该例子给出了一个范围在-59到59之间的随机数,下面的例子通过位拼接操作产生一个值在0-59之间的数

  • reg[23:0]rand;

  • rand = {$random}%60;

verilog用于模块的测试

  • 需要有测试激励信号输入到被测模块

  • 需要记录被测模块的输出信号

ps:被测模块的输入端类型是wire型 被测模块的输出类型是reg/wire型

仿真的概念

仿真是对电路模块进行动态的全面测试

仿真的作用

通过观测被测试模块的输出信号是否符合要求可以调试和验证逻辑系统的设计和结构准确与否,并发现问题及时修改

仿真包括

仿真有:前RTL仿真、逻辑网表仿真、门级仿真和布线后仿真;

前RTL仿真、逻辑网表仿真、门级仿真:可以调试和验证逻辑系统的涉及和结构准确与否,并发现问题及时修改。

布线后仿真:分析设计的电路模块的运行是否正常

  • 一般需要编写测试文件对设计进行仿真测试,称为testbench

  • testbench一般采用行为级描述,产生一定的输入激励,得到设计的输出响应,并检查输出结果的正确性

  • 在规范的模块设计中,每一个模块都需要编写独立的测试文件对模块进行充分的测试

  • 应该选择合适的输入激励,保证测试能够覆盖典型输入和特殊输入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值