University Program VWF仿真步骤__全加器

2024-02-06 12:12

本文主要是介绍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进行组合逻辑运算,赋值给coutendmodule

三、综合与分析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,即可仿真。可以看到仿真波形与以上的仿真波形一致。

这篇关于University Program VWF仿真步骤__全加器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/684278

相关文章

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

Spring Boot 中整合 MyBatis-Plus详细步骤(最新推荐)

《SpringBoot中整合MyBatis-Plus详细步骤(最新推荐)》本文详细介绍了如何在SpringBoot项目中整合MyBatis-Plus,包括整合步骤、基本CRUD操作、分页查询、批... 目录一、整合步骤1. 创建 Spring Boot 项目2. 配置项目依赖3. 配置数据源4. 创建实体类

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

基于Redis有序集合实现滑动窗口限流的步骤

《基于Redis有序集合实现滑动窗口限流的步骤》滑动窗口算法是一种基于时间窗口的限流算法,通过动态地滑动窗口,可以动态调整限流的速率,Redis有序集合可以用来实现滑动窗口限流,本文介绍基于Redis... 滑动窗口算法是一种基于时间窗口的限流算法,它将时间划分为若干个固定大小的窗口,每个窗口内记录了该时间

在Java中实现堆排序的步骤详解

《在Java中实现堆排序的步骤详解》堆排序是一种基于堆数据结构的排序算法,堆是一种特殊的完全二叉树,堆排序利用堆的性质通过一系列操作将数组元素按升序或降序排列,本文给大家介绍了如何在Java中实现堆排... 目录引言一、堆排序的基本原理二、堆排序的实现步骤三、堆排序的时间复杂度和空间复杂度四、堆排序的工作流