【乌拉喵.教程】编写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的出现了

相关文章
|
数据可视化 中间件 API
FreeRTOS记录(一、熟悉开发环境以及CubeMX下FreeRTOS配置)
熟悉 在 STM32 CubeMX 下面的 FreeRTOS 使用
5551 1
FreeRTOS记录(一、熟悉开发环境以及CubeMX下FreeRTOS配置)
|
10月前
|
人工智能 边缘计算 自然语言处理
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
随着模型量化技术的发展,大语言模型(LLM)如今可在低配置设备上高效运行。本文介绍本地部署LLM的核心技术、主流工具及十大轻量级模型,探讨如何在8GB内存环境下实现高性能AI推理,涵盖数据隐私、成本控制与部署灵活性等优势。
9745 0
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
|
机器学习/深度学习 PyTorch TensorFlow
Pytorch学习笔记(二):nn.Conv2d()函数详解
这篇文章是关于PyTorch中nn.Conv2d函数的详解,包括其函数语法、参数解释、具体代码示例以及与其他维度卷积函数的区别。
3972 0
Pytorch学习笔记(二):nn.Conv2d()函数详解
|
机器学习/深度学习 编解码 计算机视觉
YOLOv11改进策略【Backbone/主干网络】| 2023 U-Net V2 替换骨干网络,加强细节特征的提取和融合
YOLOv11改进策略【Backbone/主干网络】| 2023 U-Net V2 替换骨干网络,加强细节特征的提取和融合
923 0
YOLOv11改进策略【Backbone/主干网络】| 2023 U-Net V2 替换骨干网络,加强细节特征的提取和融合
【Simulink】单相电压型全桥逆变电路仿真基础实验(方波信号)
【Simulink】单相电压型全桥逆变电路仿真基础实验(方波信号)
3492 0
|
JSON 小程序 JavaScript
超详细微信小程序开发学习笔记,看完你也可以动手做微信小程序项目
这篇文章是一份全面的微信小程序开发学习笔记,涵盖了从小程序介绍、环境搭建、项目创建、开发者工具使用、文件结构、配置文件、模板语法、事件绑定、样式规范、组件使用、自定义组件开发到小程序生命周期管理等多个方面的详细教程和指南。
|
自然语言处理
大模型在应用中面临的局限性
【7月更文挑战第25天】大模型在应用中面临的局限性
3060 3
关于流控RTS/CTS ,DTR/DSR的说明
关于流控RTS/CTS ,DTR/DSR的说明
4709 0
|
机器学习/深度学习 缓存 PyTorch
Yolov5如何训练自定义的数据集,以及使用GPU训练,涵盖报错解决
Yolov5如何训练自定义的数据集,以及使用GPU训练,涵盖报错解决
2601 0