如何写testbench的verilog代码
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,如何写testbench的verilog代码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用的FPGA开发板:xilinx KC7
千家信息网最后更新 2026年11月04日如何写testbench的verilog代码
如何写testbench的verilog代码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
使用的FPGA开发板:xilinx KC705
开发环境: vivado2019.1
Readme:
昨天在流水灯的代码中添加了"按键消抖"功能。上板也进行了测试,测试结果OK。
但是对于有些上板测试,有时候还不能完全反应出逻辑设计时的意思。
因此,还是需要testbench测试下仿真的波形,通过波形来看,是不是真的完全表达了设计的初衷。
正文:
1.编写测试文件的思路
通常,编写测试文件的过程如下:
1)产生模拟激励(波形);
2)将产生的激励加入到被测试模块中并观察其响应;
3) 将输出响应与期望值相比较
2.怎么写
1)建立仿真文件
文件命名:文件命名保持一致,后边加一个尾缀"tb",表示testbench.
此时,出来一个空文件:
编写内容
了解下testbench 的基本架构
module Test_bench();//通常无输入无输出//信号或变量声明定义//逻辑设计中输入对应 reg 型//逻辑设计中输出对应 wire 型reg key_in;//逻辑设计中输入对应 reg 型reg rst_n;reg clk;reg [7:0] cnt;wire key_out;//逻辑设计中输出对应 wire 型//1.使用 initial 或 always 语句产生激励// 一般包括:时钟,复位,以及(模拟)产生测试的输入信号//2.例化待测试模块 key_noshake#(.cnt_max(8'd100))key_noshake_inst(.key_in(key_in),.rst_n(rst_n),.clk(clk),.key_out(key_out)); //3.监控和比较输出响应//观察仿真后的输出波形即可endmodule
3)完整代码如下:
`timescale 1ns / 1ps//// Company: // Engineer: // // Create Date: 2021/03/12 10:58:46// Design Name: // Module Name: key_noshake_tb// Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision:// Revision 0.01 - File Created// Additional Comments:// //module key_noshake_tb();//通常无输入无输出//信号或变量声明定义reg key_in;//逻辑设计中输入对应 reg 型reg rst_n;reg clk;reg [7:0] cnt;wire key_out;//逻辑设计中输出对应 wire 型//1.使用 initial 或 always 语句产生激励 initial begin clk=1'b1;rst_n=1'b0;#50rst_n=1'b1;endalways #10 clk=~clk;//生成(模拟)时钟信号always@(posedge clk or negedge rst_n)if( rst_n==1'b0)cnt<=8'b0;else if(cnt==8'd249)cnt<=8'b0;else cnt<=cnt+8'b1;always@(posedge clk or negedge rst_n)//模拟按键key_in的前抖动,后抖动,以及稳定段if( rst_n==1'b0)key_in<=1'b1;else if (cnt>=8'd02 && cnt<=8'd19)key_in<={ $random} %2;else if (cnt>=8'd129 && cnt<=8'd149)key_in<={ $random} %2;elsekey_in<=1'b0;// 2.例化待测试模块 key_noshake#(.cnt_max(8'd100))key_noshake_inst(.key_in(key_in),.rst_n(rst_n),.clk(clk),.key_out(key_out)); //3.监控和比较输出响应endmodule注:
3.仿真结果

放大(局部特写)
关于如何写testbench的verilog代码问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
测试
输出
设计
逻辑
逻辑设计
文件
输入
代码
信号
波形
仿真
模块
问题
内容
变量
按键
时钟
更多
结果
语句
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司
百单网互联网科技有限公司怎么样
广州淘业互联网络科技
互联网科技工作委员会主任
互联网科技行业发展
中国互联网科技股
互联网科技财经
互联网是不是新科技
互联网核心科技是什么
菲比寻常互联网科技
掌上梦互联网科技
卓越科技互联网 招聘
太原新华互联网科技学校怎么样
随着互联网科技发展
互联网科技人工智能实验室
特约风豹互联网科技为什么扣费
互联网安防科技感
2021世界互联网领先科技成果发布
西安有哪些互联网高科技企业
互联网 科技节活动 微视频大赛
耶加雪菲
互联网的科技
互联网科技革命
九亚互联网科技
科技互联网的估值
贵州叶脉互联网科技有限公司所属行业
福建科技产业互联网发展
第三届互联网大会安防黑科技
互联网科技对化妆品行业
陕西彩京云互联网科技有限公司