University Program VWF仿真步骤__全加器

本教程将以全加器为例,选择DE2-115开发板的Cyclone IV EP4CE115F29C7 FPGA,使用Quartus Lite v18.1,循序渐进的介绍如何创建Quartus工程,并使用Quartus Prime软件的University Program VWF工具创建波形文件,对全加器的功能进行仿真。

使用University Program VWF工具进行仿真,其实也是调用ModelSim软件仿真,只是不用写testbench文件,而是创建波形文件,因此也必须安装ModelSim软件。

一、创建Quartus工程

1、点击Quartus--File--New Project Wizard,一步步创建全加器(full_adder)工程。

2、打开后的Quartus工程界面如下图所示。

image-20240205103908670

二、创建Verilog模块

3、点击Quartus-->File-->New-->Verilog HDL,将以下代码复制到.v文件,并保存为full_adder.v。

module full_adder(
	input a,
	input b,
	input cin,
	output sum,
	output cout
);

assign sum = a ^ b ^ cin;               //将a、b、cin进行与或运算,赋值给sum
assign cout= (a & b) | ((a^b) & cin);   //将a、b、cin进行组合逻辑运算,赋值给cout

endmodule

三、综合与分析Verilog代码

4、点击Quartus软件菜单栏的Processing --> Start --> Start Analysis & Synthesis,对Verilog HDL代码执行语法检查和综合。

如果该过程成功完成,在Quartus软件窗口的Tasks页面中,Analysis & Synthesis旁边将显示一个绿色勾型标记,如下图所示。如果在该过程中提示有错误,请检查Verilog HDL代码语法,确保与上述代码块完全一致。

四、仿真Quartus工程

介绍如何用University Program VWF工具创建vwf波形文件,对全加器的Verilog代码进行功能仿真。

5、点击Quartus软件菜单栏的Tools --> Options,打开Options窗口,选择General中的EDA Tools Options,设置ModelSim-Altera的路径为C:\intelFPGA_lite\18.1\modelsim_ase\win32aloem(注意:这里的路径为Quartus的实际安装路径),点击OK

6、点击Quartus软件菜单栏的File --> New --> University Program VWF,打开Simulation Waveform Editor窗口。

7、点击Simulation Waveform Editor窗口菜单栏的Edit --> Insert --> Insert Node or Bus,打开Insert Node or Bus窗口。

8、点击Node Finder按钮打开Node Finder窗口,按下图序号标注的步骤,添加输入、输出信号节点,最后点击OK按钮。

9、返回到Insert Node or Bus窗口,点击OK按钮。

10、点击Simulation Waveform Editor窗口菜单栏的Edit --> Set End Time...,设置结束时间,举例设置为120.0 ns。至此,Simulation Waveform Editor窗口如下图所示。

11、在Simulation Waveform Editor窗口编辑输入信号节点a的值。如下图所示,在输入信号节点的波形区域单击鼠标左键不放并移动鼠标,释放后会看到一段阴影区域,点击Force High (1)按钮可以设置这段区域的信号节点值为1,点击Force Low (0)可以设置值为0;同样的操作可自行再设置b和cin的值。

12、下图所示,举例设置了abcin节点的值后的波形图。

13、点击Simulation Waveform Editor菜单栏的File --> Save,保存文件并保持默认文件名Waveform.vwf不变。

14、点击Simulation Waveform Editor菜单栏中的Simulation --> Run Functional Simulation,开始仿真,仿真后的波形图如下图所示。

五、实验现象与结果分析

仿真结果分析:

  • 在0ns~10ns,a=1b=1cin=0,此时count=1sum=0

  • 在10ns~20ns,a=0b=1cin=1,此时count=1sum=0

  • 在20ns~30ns,a=1b=0cin=0,此时count=0sum=1

  • 在30ns~40ns,a=1b=1cin=1,此时count=1sum=1

  • 在40ns~50ns,a=0b=0cin=1,此时count=0sum=1

依次再分析50ns~120ns,根据结果可判断全加器功能仿真是正确的。

六、生成的Test bench验证

以上在Run Functional Simulation过程中自动生成了与波形文件对应的Test Bench文件,一般在工程的simulation\qsim文件路径里,名称为Waveform.vwf.vt。

我们可以用该Test Bench文件再进行ModelSim仿真。将Waveform.vwf.vt命名为full_adder_tb,并修改格式为.v,再打开full_adder_tb.v将module名称改为full_adder_tb即可。ModelSim仿真所必须的设置和步骤此处就不再说明。

设置完成后点击Quartus Tools--Run Simulation Tools--RTL Simulation,即可仿真。可以看到仿真波形与以上的仿真波形一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/384097.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt【一】:Qt3个窗口类的区别、VS与QT项目转换

一、Qt3个窗口类的区别 QMainWindow:包含菜单栏、工具栏、状态栏 QWidget:普通的一个窗口,什么也不包括 QDialog:对话框,常用来做登录窗口、弹出窗口(例如设置页面) QDialog实现简易登录界面…

DP读书:《openEuler操作系统》(九)从IPC到网卡到卡驱动程序

DP读书:《openEuler操作系统》从IPC到网卡到卡驱动程序) 上章回顾_SPI上节回顾_TCP 网卡驱动程序简介1.设备驱动2.总线与设备3.网卡及其抽象 驱动程序的注册与注销1. 注册2. 注销 设备初始化1. 硬件初始化2. 软件初始化 设备的打开与关闭1. 设备的打开2.…

「小明赠书活动」2024第三期《一书读懂物联网:基础知识+运行机制+工程实现》

⭐️ 赠书 - 《一书读懂物联网:基础知识运行机制工程实现》 《一书读懂物联网》以物联网工程技术为核心内容,结合数据处理的流程和技术,介绍了物联网的基础知识、运行机制及工程实现。 ⭐️ 内容简介 - 《一书读懂物联网:基础知识…

【后端高频面试题--设计模式上篇】

🚀 作者 :“码上有前” 🚀 文章简介 :后端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 什么是设计模式?怎么理解设计模式? 设计模式是在软件设计中&#xff0c…

OpenSSL 创建自签名证书

前言 Openssl 是一个方便的实用程序,用于创建自签名证书。您可以在所有操作系统(如 Windows、MAC 和 Linux 版本)上使用 OpenSSL。 自签名证书 创建我们自己的根 CA 证书和 CA 私钥(我们自己充当 CA)创建服务器私钥以生成 CSR使用我们的根 CA 和 CA 私钥创建具有 CSR 的…

甘肃旅游服务平台:技术驱动的创新实践

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

写的太通透了!大模型自省式 RAG 与 LangGraph 的实践!

本文讲解了自省式 RAG 的基础原理以及基于 LangGraph 的实践演示 自省式 RAG 与 LangGraph 重要链接 关于 Self-RAG 和 CRAG 的教程手册 演示视频 研究背景 由于大多数大型语言模型(LLMs)通常只针对大量公共数据进行周期性训练,它们往往…

电路设计(16)——纪念馆游客进出自动计数显示器proteus仿真

1.设计要求 设计、制作一个纪念馆游客进出自动计数显示器。 某县,有一个免费参观的“陶渊明故里纪念馆”,游客进出分道而行,如同地铁有确保单向通行的措施。在入口与出口处分别设有红外检测、声响、累加计数器装置,当游人进&#…

ChatGLM2-6B模型的win10测试笔记

ChatGLM2-6B介绍: 介绍 ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性: 更强大的性能:基于 ChatGLM 初…

服务异步通信

服务异步通信 消息队列在使用过程中,面临着很多实际问题需要思考: 1.消息可靠性 消息从发送,到消费者接收,会经理多个过程: 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失…

app逆向-⽹络请求库okhttp3

文章目录 一、前言二、应用GET请求1、添加权限AndroidManifest.xml2、添加依赖okhttp33、编写界面文件activity_main.xml4、编写Activity代码5、效果 三、应用POST请求四、okhttp3请求拦截器 一、前言 OkHttp是由Square公司开发的用于Java和Android的开源HTTP客户端库。它被广…

leetcode链表相关题目

文章目录 1.移除链表元素方法1:方法2 2.合并两个有序链表3.链表的中间节点方法1方法2 4.反转单链表方法1方法2 5.分割链表6.链表中的倒数第k个节点方法1:方法2: 7.环形链表的约瑟夫问题8.链表的回文结构9.相交链表方法1方法2: 10.环形链表11.…

python接口自动化(三)--如何设计接口测试用例(详解)

在开始接口测试之前,我们来想一下,如何进行接口测试的准备工作。或者说,接口测试的流程是什么?有些人就很好奇,接口测试要流程干嘛?不就是拿着接口文档直接利用接口 测试工具测试嘛。其实,如果…

关于物理机ping不通虚拟机问题

方法一 设置虚拟机处于桥接状态即可:(虚拟机->设置->网络适配器),选择完确定,重启虚拟机即可。 方法二 如果以上配置还是无法ping通:(编辑->虚拟网络编辑器) 首先查看主机网…

MySQL(基础)

第01章_数据库概述 1. 为什么要使用数据库 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多…

C++11中的简化声明

auto 用于自动类型推断,显示定义变量: typeid typeid推导出来的是字符串,只能看不能用,通过打印来查看变量的类型,用法如上。 decltype 同样是用来自动推导类型,与auto的区别是,auto在定义时必…

DAY9.

1.选择芯片型号 2. 3. 4. 5. 6. 7.

MOCO动量编码

参考,推荐阅读 李沐论文精读系列三:MoCo、对比学习综述(MoCov1/v2/v3、SimCLR v1/v2、DINO等)_moco 对比学习-CSDN博客 背景 1. MOCO CVPR 2020 2. 对比学习:无监督学习的一种,重点学习同类实例中的共同…

第78讲 修改密码

系统管理实现 修改密码实现 前端 modifyPassword.vue&#xff1a; <template><el-card><el-formref"formRef":model"form":rules"rules"label-width"150px"><el-form-item label"用户名&#xff1a;&quo…

网络安全的今年:量子、生成人工智能以及 LLM 和密码

尽管世界总是难以预测&#xff0c;但网络安全的几个强劲趋势表明未来几个月的发展充满希望和令人担忧。有一点是肯定的&#xff1a;2024 年将是非常重要且有趣的一年。 近年来&#xff0c;人工智能&#xff08;AI&#xff09;以令人难以置信的速度发展&#xff0c;其在网络安全…