Testbench仿真文件编写

Testbench是一种验证手段,从软件层面对设计的硬件电路进行仿真。在仿真文件里产生的激励信号,作用于被仿真设计文件DUT(Design Under Test) ,产生相应输出,然后根据输出信号检验设计的电路是否存在问题或存在哪些问题。

Verilog包含: 1)模块声明   2)信号声明   3)顶层设计实例化  4)提供激励  5)进行测试

testbench的一般结构:

module Test_Bench();//通常无输入输出信号或变量声明定义                   //1逻辑设计中输入对应的reg型            //2逻辑设计中输出对应的wire型           //3使用 initial 或 always 语句产生激励  //4   initial产生测试信号 ,发送到待测模块(相当于一个信号源);always语句反馈回来(相当于一个示波器)(不一定有)例化待测试模块DUT                    //5    个人完成部分监控和比较输出响应                   //6    (不一定有)endmodule

操作:1.设置好仿真文件

2.通过quartus 自动生成testbench模板,选择 processing→start→start testbench template writer,默认在 simulation\modelsim文件夹下生成一个 Testbench.vt 格式文件

3.设置时间刻度, 'timescale 时间单位/时间精确

例:'timescale 1ns/1ps 表示仿真的时间单位为1ns,精度为1ps

4.编写测试模块

initial:主动产生激励;只执行一次

always:被动;重复

需要在initial里多次运行一个语句块,嵌入循环(while,repeat,for,forever等),如:

initialbegin  forever/*无条件连续执行*/begin……endend 

5.激励产生

1)

parameter ClockPerilod=10
initialbeginclk_i=0;forever#(ClockPerilod/2)clk_i=~clk_i;//最常用的产生方式end

10是时间精度的10倍,clockperiod是时间精度的倍数;#是延迟多少时间5ps,取反

2)

parameter ClockPerilod=10
initialbeginclk_i=0;#(ClockPerilod/2)clk_i=~clk_i;end

1个

3)固定数量的时钟脉冲

parameter ClockPerilod=10
initialbeginclk_i=0;repeat(6)#(ClockPerilod/2)clk_i=~clk_i;end

重复6次,周期为3

'timescale 1 ns/10ps
module decoder38_vg_tst();
reg clk;                  //test vector input registers*******输入激励设置为reg型
reg[2:0]keyin;wire[7:0]led              //tset vecoder output wires*******输出相性设置为wire类型decoder38 i1(.clk(clk)),   .keyin(keyin),     .led(led);//******例化待测模块
initial
begin                     //*******initial产生激励keyin=0;clk=0;repeat(20)begin#1clk=~clk;keyin=keyin+1end
end
endmodule

20220407——3-8线译码器:quartersⅡ和 modelsim 联合仿真 原理相关推荐

  1. 20220407——3-8线译码器:quartersⅡ和 modelsim 联合仿真 实验操作

    创建工程 2.选择芯片 3. simulation→modelsim→verilog hdl 4. file→new→Verilog hdl file 5.写代码.编译 6.processing→st ...

  2. FPGA学习之路—Vivado与Modelsim联合仿真

    Vivado与Modelsim联合仿真 笔者在学习FPGA过程中遇到了如何使用Vivado和Modelsim进行联合仿真的问题,特此记录. 首先确定版本 笔者Vivado用的是2018.3版本,先是随 ...

  3. vivado和modelsim联合仿真实现占空比1:15的分频

    上一讲我们看了偶数分频 vivado和modelsim联合仿真实现偶分频,只需要在clk计数到一半时进行翻转即可,这是占空比为50%的情况,如果占空比任意数值就需要重新设计 16需要从0计数到15=4 ...

  4. vivado和modelsim联合仿真实现偶分频

    首先创建一个工程,因为不在硬件上实现所以芯片型号随便选一个就行 创建design文件div6.v,代码来源于以下视频,稍作修改. 在复位时给输出信号clk6赋值为0,不然输出不确定 判断条件cnt为1 ...

  5. debussy和modelsim联合仿真配置

    debussy是一款十分强大的波形查看软件,乃FPGA调试必备杀器之一,下面介绍一下debussy和modelsim联合仿真的配置方法. 1.安装debussy和modelsim软件. 2.复制C:\ ...

  6. Quartus II与ModelSim联合仿真

    Quartus II与ModelSim联合仿真 目录 Quartus II与ModelSim联合仿真 一.创建新工程 二.创建新文件 三.配置ModelSim的路径 四.关联Test Bench文件 ...

  7. 超详细 quartus 新建工程 及 quartus 和 modelsim 联合仿真 以及 modelsim 的简易教程

    文章目录 一.新建工程 1. 新建工程 2. 添加源文件以及ip核并编译 添加代码文件 添加IP核 编译 3. 自动生成testbench文件并添加路径到工程中 生成testbench文件 添加tes ...

  8. simulink与modelsim联合仿真buck闭环设计

    simulink与modelsim联合仿真buck闭环设计 主电路用simulink搭建,控制电路完全有verilog语言实现(包括DPWM,PI补偿器) 适用于验证基于fpga的电力电子变换器控制, ...

  9. quartus和modelsim联合仿真详细教程

    利用quartus和modelsim联合仿真的功能,实现功能产生波形.详细步骤如下: 1.编辑verilog HDL语言 本次拟实现组合逻辑功能,其代码如下: 此为一组合逻辑电路,其原理图可在quar ...

最新文章

  1. html页面在ie上出现404怎么解决,如何解决自定义404页面在IE等浏览器中无法显示问题...
  2. TabelDiff实用工具
  3. IDC:中国IT安全硬件、软件和服务全景图2014–2018 预测与分析
  4. how is my real odata request hijacked by Mock server
  5. 实现二维码-完整三种编码流程加代码解析(javascript)
  6. python图像增强_【Tool】Augmentor和imgaug——python图像数据增强库
  7. java获取客服列表,java-从列表中获取处理案例的服务
  8. Docker Kubernetes 环境搭建
  9. 读保护_GD32VF103之片上flash读、写、擦除
  10. Android 学习心得(2)——Android内置数据库SQLite
  11. asp.net2.0学习历程 菜鸟到中级程序员的飞跃[z转]
  12. AOJ0558 Cheese【BFS】
  13. vue3.0 word导出
  14. 选择Eclipse 的列编辑模式
  15. 马鞍数55c语言_c语言超全练习题(全面更新)
  16. 灭菌仓密封性测试方案
  17. 51单片机系统板/开发板原理图以及烧写方法
  18. ThinkPHP3.1.3 { Fast Simple OOP PHP Framework } — [ WE CAN DO IT JUST THINK ] 报错解决办法。...
  19. python之并发编程-进程之间的通信
  20. excel文档损坏打不开的原因是什么?

热门文章

  1. 90%的人不知道的微信隐藏功能
  2. 在中国取消go和python_程序员又秃了:谷歌Go语言将在未来消灭Java和Python?
  3. php 枚举类代替hard code代码
  4. Chrome 96 版本无法发送跨域请求的问题 解决方案
  5. HCIA物联网初级考试-第一章物联网概述
  6. Golang 系统调用Syscall
  7. 使用VIVADO 2019.1 搭建以太网接口
  8. 极速office(word)如何插入求和Σ公式
  9. 双机热备软件哪个好?双机热备软件推荐
  10. 全站仪:悬高测量、悬高放样不懂?