【乌拉喵.教程】编写TestBench,quartus与modelsim时序仿真

简介: 【乌拉喵.教程】编写TestBench,quartus与modelsim时序仿真

科技背景_副本 公众号_副本.png

最近将多年来收集到的教学视频、国内外图书、源码等整理整合拿出来,涉及arm、Linux、python、信号完整性、FPGA、DSP、算法、stm32、单片机、制图、电子模块、kali、出版社图书等。资料目前约1.5TB+。详情请见:

https://www.bilibili.com/read/cv20701606


昨天搜了一圈,也没整会这个仿真,今天在武梦梦的指导下修改了testbench,偶然一个操作,才成功。

下面详细的说说这个过程。

假设现在已经写好了一个电路vhdl,编译也没问题了,什么都没问题了,就差仿真了。


  1. 设置testbench语言

这里使用Verilog语言,因为从网上看的,说VHDL的testbench比较难,所以这里就用Verilog,确认。


  1. 生成testbench

点击之后,quartus会自动生成以.vt为扩展名的testbench文件。

  1. 添加testbench文件到工程中


找到button.vt添加工程中,现在testbench就是这个.vt文件了。

  1. 编译工程
  2. 调用modelsim仿真


接下来就进入modelsim仿真界面了。

  1. 编辑button.vt  testbench文件


Modelsim会弹出一个界面打开button.vt界面,可以看一下

下面就要修改这个文件

首先把注释什么的删了,干干净净的就这些东西


也就这么几块。首先要把 timescale改了,后面两个数据 /前的是仿真的时间单位 /后的是精度


我们把时间单位改成 1ns 精度改为1ps


其次,initial中的代码执行一次,always中的代码会一直执行。


为了演示方便,现在我们就只生成一个clk波形。那么我们在intial中为clk赋值(必须要赋初值),在always中对clk进行翻转。这样就可以形成一个clk了。

代码写成这样之后,我们保存,关闭即可。

  1. 编译testbench


如果modelsim没有报错,那么说明上面testbench的代码没有问题

  1. 加载测试文件

通过这样,就加载了测试文件

  1. 添加pin


在弹出的串口中 ctrl+A,选中所有的pin,有的不一定是监控的端口,有的是中间量,我不知道这个怎么叫,按照逻辑分析的意思,这个东西就是pin


注意:在objects窗口中添加的pin才是最终的有效的,以前我从别的窗口添加pins,到调试的时候总是不出来波形,只有从object窗口添加的才是正确的!

点击Add wave命令后,就会打开另一个窗口,这个窗口就是最终的调试窗口了。


  1. 调试

先修改整体的调试时间,将100ps改为100ns

即将


改为



之后点击run就行了……


多点几次run,之后将图像缩小,就能看到clk的出现了

相关文章
|
机器学习/深度学习 PyTorch TensorFlow
Pytorch学习笔记(二):nn.Conv2d()函数详解
这篇文章是关于PyTorch中nn.Conv2d函数的详解,包括其函数语法、参数解释、具体代码示例以及与其他维度卷积函数的区别。
3698 0
Pytorch学习笔记(二):nn.Conv2d()函数详解
|
Python
Pandas 安装
10月更文挑战第26天
470 59
Pandas 安装
|
机器学习/深度学习 编解码 计算机视觉
YOLOv11改进策略【Backbone/主干网络】| 2023 U-Net V2 替换骨干网络,加强细节特征的提取和融合
YOLOv11改进策略【Backbone/主干网络】| 2023 U-Net V2 替换骨干网络,加强细节特征的提取和融合
878 0
YOLOv11改进策略【Backbone/主干网络】| 2023 U-Net V2 替换骨干网络,加强细节特征的提取和融合
|
JSON Dart 前端开发
鸿蒙应用开发从入门到入行 - 篇7:http网络请求
在本篇文章里,您将掌握鸿蒙开发工具DevEco的基本使用、ArkUI里的基础组件,并通过制作一个简单界面掌握使用
807 8
|
JSON 小程序 JavaScript
超详细微信小程序开发学习笔记,看完你也可以动手做微信小程序项目
这篇文章是一份全面的微信小程序开发学习笔记,涵盖了从小程序介绍、环境搭建、项目创建、开发者工具使用、文件结构、配置文件、模板语法、事件绑定、样式规范、组件使用、自定义组件开发到小程序生命周期管理等多个方面的详细教程和指南。
|
编解码 算法
掌握PWM:STM32F103实现PWM控制直流电机小风扇
PWM,即脉冲宽度调制(Pulse Width Modulation),是一种广泛应用于电子和电机控制领域的信号编码方法。PWM的核心思想是通过改变数字信号的脉冲宽度来模拟模拟信号的幅度变化,从而达到控制输出功率的目的。
2963 1
|
自然语言处理
大模型在应用中面临的局限性
【7月更文挑战第25天】大模型在应用中面临的局限性
2928 3
|
C语言 CDN
C语言逗号表达式
C语言逗号表达式
625 0