当前位置: 首页 > news >正文

基于Quartus Prime18.1的安装与FPGA的基础仿真教程

Quartus是一种美国科技公司Intel(英特尔)公司开发的FPGA(现场可编辑门阵列)设计编译软件,用作设计、仿真、综合和布局、支持多种编程语言,包括VHDL、Verilog等,并具有丰富的功能和工具库,可广泛应用于各种数字电路设计和实现。

一、 Quartus Prime 18.1 的下载

剑指官网:Intel® Quartus® Prime Lite Edition Design Software Version 18.1 for Windows

选择好相应安装包、版本号、相应操作系统

对应下载即可,大约24GB大小下载后打开安装包

二、安装教程

2.1 quartus程序的安装

完成上述下载操作后点击如上图所框选的运行文件,打开点next

同意安装使用协议,点Next;

选择安装路径后,继续下一步;

选择需要安装的内容,进行下一步

下一步直到设备驱动程序完成

2.2 ModelSim的安装

此安装影响后续的仿真模拟,所以仍需要安装调制,打开setup,点Next

无协议,选择License is not required,选择Next

接受条款选择路径,next

默认安装内容,继续下一步直到设备驱动程序完成

三、基于Quartus 的 CPLD/FPGA 应用开发

3.1. 建立工程

打开 Quartus Prime Lite 18.1 开发环境。菜单 File->New Project
Wizard.
Directory, Name, Top-Level Entity 页选择合适的工程存储路径(路
径不要有中文,最好 不要在桌面 ),输入工程名和顶层实体名。
例如:
     工程存储路径 D:/zhidao
     工程名 zhidao
     顶层实体名 zhidao
接下来 Project Type 选 Empty project,即建立一个空的工程
Add Files 页直接 Next
Family, Device & Board Settings 页里器件 Family 选择 Cyclone IV E,在下方选择 EP4CE15F17C8 (不要选成 EP4CE15F17C8L,最后带 L为低电压版)
EDA Tool Settings 页里,Simulation 选择 ModelSim- Altera 不要选 ModelSim )和 VHDL
Summary 页点 Finish,完成工程的建立
菜单 New -> Design Files -> VHDL File。
贴入 zhidao_vhdl.txt 中的代码
下面给出自己学习当中的课程实验相关代码:三八译码器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;ENTITY zhidao IS
PORT(x: IN STD_LOGIC_VECTOR(7 DOWNTO 0);y: OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
);
END zhidao;ARCHITECTURE tt OF zhidao IS
BEGINPROCESS(x)BEGINCASE x ISWHEN "11111110" => y <= "000";WHEN "11111101" => y <= "001";WHEN "11111011" => y <= "010";WHEN "11110111" => y <= "011";WHEN "11101111" => y <= "100";WHEN "11011111" => y <= "101";WHEN "10111111" => y <= "110";WHEN "01111111" => y <= "111";WHEN OTHERS     => y <= "XXX";END CASE;END PROCESS;
END tt;

(注意:实体名保持一致)保存文件为 zhidao.vhd 到之前选择的工程目录下(D:/zhidao)

3.2 编译

如果编译只是为了做功能仿真来验证逻辑,可以直接编译。 但如果编译是为了最后下载至硬件器件中运行,则在编译前还需要做如下操作:
菜单 Assignments->Device,点击 Device and Pin Options
在 Unused Pins 里,选择 As input tri-stated, 将其它未使用的引脚 状态设置为三态输入
在 Task 栏里双击 Compile Design,全部绿色对勾编译通过

3.3 仿真

菜单 Tools->Options,General->EDA Tool Options 中设置好 ModelSim Altera 可执行程序的路径 注意不要设置为倒数第三项 ModelSim)

菜单 Processing->Start->Start Test Bench Template Writer,在工程文件夹 simulation/modelsim下自动生成了Test Bench 模 板 zhidao.vht

直接用 Quartus 打开上一步生成的文件 zhidao.vht。(File->Open 找到 并打开文件,需要选择 All Files 才能看到 .vht 文件)
将 init:PROCESS 和 always:PROCESS 两个进程删除(从 init:PROCESS一直到 END PROCESS always)
将 zhidao_vht.txt 中的 init:PROCESS 和 always:PROCESS 两个进程的代码复制到原处,保存文件。
(进程 init 用来描述一般的输入信号,按顺序书写各个输入信号的变化即可,需要等待一段时间则利用 wait for 语句)
(进程 always 用来描述时钟信号之类的周期信号,在此进程中添加语句后需要删除最后的一句 wait,从而使此进程能够反复循环执行)
菜单 Assignments->Settings,EDA Tool Settings->Simulation 中,在 NativeLink settings 里选中 Compile test bench,点击后面的 Test Benches 按钮
在弹出的 Test Benches 选项卡里点 New

Test bench name 输入 zhidao_vhd_tst、End simulation at 设置为 1ms

最下方 Test bench files 里把 simulation/modelsim 下的 zhidao.vht 添加进去。点击 OK 设置完毕

菜 单 Tools->Run RTL Simulation 会自动打开 ModelSim 并 运 行TestBench 得到仿真结果

注意

是不是有手就行?

注意!!!!

每进行一个项目,必须按照相应的流程重新操作,切不可复制新代码到源文件,否则将会报错

(本文源于学校课程学习研究总结内容)

相关文章:

基于Quartus Prime18.1的安装与FPGA的基础仿真教程

Quartus是一种美国科技公司Intel&#xff08;英特尔&#xff09;公司开发的FPGA&#xff08;现场可编辑门阵列&#xff09;设计编译软件&#xff0c;用作设计、仿真、综合和布局、支持多种编程语言&#xff0c;包括VHDL、Verilog等&#xff0c;并具有丰富的功能和工具库&#x…...

AJAX 和 XML:现代 Web 开发的关键技术

AJAX 和 XML:现代 Web 开发的关键技术 引言 在当今的 Web 开发领域,AJAX 和 XML 是两项至关重要的技术。AJAX(Asynchronous JavaScript and XML)允许网页在不重新加载整个页面的情况下,与服务器交换数据和更新部分网页内容。而 XML(eXtensible Markup Language)则是一…...

vue实现图片预览

在 Vue 中实现图片预览功能&#xff0c;通常涉及监听文件输入的变化&#xff0c;并在用户选择文件后&#xff0c;使用 FileReader API 来读取文件内容&#xff0c;然后显示这个内容作为图片的预览。以下是一个简单的 Vue 组件示例&#xff0c;它实现了图片预览功能&#xff1a;…...

C语言入门系列:流程控制

一&#xff0c;C代码执行顺序 默认情况下&#xff0c;C语言程序从main()函数开始执行&#xff0c;随后按源代码中语句出现的顺序逐一执行。 这意味着&#xff0c;如果不考虑任何控制结构&#xff0c;程序会自上而下&#xff0c;逐行执行每条语句&#xff0c;直到遇到函数调用…...

【深度学习】NLP,Transformer讲解,代码实战

文章目录 1. 前言2. Transformer结构训练过程1. 输入嵌入和位置编码2. 编码器层2.1 单头的注意力机制(便于理解)2.2 多头的注意力机制(Transformer真实使用的)2.3 残差连接和层归一化2.4 前馈神经网络&#xff08;FFN&#xff09;2.5 残差连接和层归一化2.6 总结 3. 解码器层 推…...

ES6 .entries用法

.entries() 返回数组的可迭代对象itarator,可以通过for of 来遍历数组或对象的值。但是它们的写法不一样。 数组用法 obj [apple,bananer,orange] for(let [i,v] of obj.entries()){console.log(i)console.log(v) } //输出 // 0 // apple // 1 // bananer // 2 //orange对象…...

【LeetCode 动态规划】买卖股票的最佳时机问题合集

文章目录 1. 买卖股票的最佳时机含冷冻期 1. 买卖股票的最佳时机含冷冻期 题目链接&#x1f517; &#x1f34e;题目思路&#xff1a; &#x1f34e;题目代码&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {int n prices.size();ve…...

python学习:语法(2)

目录 对象的布尔值 分支结构 双分支结构 多分支结构 嵌套if的使用 条件表达式 Pass语句 range()函数的使用 流程控制语句 对象的布尔值 Python一切皆对象&#xff0c;所有对象都有一个布尔值&#xff0c;通过内置函数bool&#xff08;&#xff09;获取对象的布尔值 这些…...

经典电源电路基础(变压-整流-滤波-稳压)

1.电源电路的功能和组成 电子电路中的电源一般是低压直流电&#xff0c;先把220v交流电变换成低压直流电&#xff0c;再用整流电路变成脉动的直流电&#xff0c;最后用滤波电路滤除掉脉动直流中的交流成分后才能得到直流电。有的电子设备对电源的质量要求很高&#xff0c;所以…...

生成式人工智能备案办理指南,深度解析大模型备案全流程

早在2023年年初&#xff0c;国家互联网信息办公室、工业和信息化部、公安部针对深度合成服务制定的《互联网信息服务深度合成管理规定》&#xff08;“《深度合成管理规定》”&#xff09;顺利施行&#xff0c;其明确了深度合成服务相关方的义务与主体责任&#xff0c;强化了对…...

1527. 患某种疾病的患者

1527. 患某种疾病的患者 题目链接&#xff1a;1527. 患某种疾病的患者 代码如下&#xff1a; # Write your MySQL query statement below select patient_id,patient_name,conditions from Patients where conditions like "DIAB1%" or conditions like "% DI…...

【C/C++】【学生成绩管理系统】深度剖析

可接各类C/C管理系统课设 目录 实现功能 部分1&#xff1a;系统设置和主菜单 1. 引入头文件 2. 定义结构体 3. 函数声明 4. 主函数 部分2&#xff1a;添加学生信息 部分3&#xff1a;删除学生信息 部分4&#xff1a;修改学生信息 部分5&#xff1a;查询学生信息 部分…...

C++作业第四天

#include <iostream> using namespace std; class Per { private: string name; int age; int *high; double *weight; public: //构造函数 Per() { cout << "Per的无参构造" << endl; } Per(str…...

设计模式之工厂方法模式(Factory Method Pattern)

目录 1.1、前言1.2、工厂方法模式简介1.2.1、工厂方法模式的主要特点1.2.2、工厂方法模式的主要结构1.2.3、使用工厂方法模式的好处 1.3、SpringBoot中那些场景使用了工厂方法模式1.4、日常工作中那些业务场景可以使用工厂方法模式1.5、工厂方法模式实战&#xff08;以某商场一…...

API接口设计的18条规范

API接口设计的18条规范 签名 目的&#xff1a;防止数据被篡改 实现方法&#xff1a; 接口请求方将请求参数、时间戳和密钥拼接成一个字符串使用MD5等hash算法生成签名sign在请求参数或请求头中增加sign参数&#xff0c;传递给API接口API接口网关服务验证传递的sign值&#…...

adb简单使用命令

1. 查看当前连接的设备 adb devices 2. 文件路径 adb install apk 注意文件路径中不能有中文 3. adb shell ps Toplogcatlogcat可以结合greplogcat *:w 显示警告级别以上de 4. adb uninstall 软件名 1.软件名如何查看&#xff1f; 使用命令adb shell pm list packages会…...

构建 deno/fresh 的 docker 镜像

众所周知, 最近 docker 镜像的使用又出现了新的困难. 但是不怕, 窝们可以使用曲线救国的方法: 自己制作容器镜像 ! 下面以 deno/fresh 举栗, 部署一个简单的应用. 目录 1 创建 deno/fresh 项目2 构建 docker 镜像3 部署和测试4 总结与展望 1 创建 deno/fresh 项目 执行命令…...

数据库 | 数据库设计的步骤

1.需求分析 调查机构情况与熟悉业务活动&#xff0c;明确用户的需求&#xff0c;确定系统的边界&#xff0c;生成数据字典和用户需求规格说明书 2.概念结构设计 将从需求分析中得到的用户需求抽象为概念模型&#xff0c;设计E-R模型 3.逻辑结构设计 将E-R图转换为和DBMS相…...

改进YOLO系列 | CVPR 2021 | Involution:超越convolution和self-attention的神经网络算子

Involution&#xff1a;超越卷积和自注意力的新型神经网络算子&#xff08;中文综述&#xff09; 简介 Involuton是CVPR 2021上提出的新型神经网络算子&#xff0c;旨在超越卷积和自注意力&#xff0c;提供更高效、更具表达力的特征提取能力。 Involution原理 Involution的…...

落地速度与效果之争,通用VS垂直,我的观点和预测。

标题&#xff1a;AI大模型战场&#xff1a;通用VS垂直&#xff0c;谁将领跑落地新纪元&#xff1f; 摘要&#xff1a;随着人工智能技术的飞速发展&#xff0c;大模型的应用场景日益广泛。在这场竞赛中&#xff0c;通用大模型和垂直大模型各有优势&#xff0c;落地速度和可能性也…...

【Android面试八股文】在Android中,出现ClassNotFound的有可能的原因是什么?

在Android环境下类未找到的可能原因 在Android环境下,类未找到的可能原因包括但不限于以下几点: 类路径问题:Android应用使用的类通常存储在APK文件中。如果类所在的APK文件没有被正确加载,或者应用的类路径配置有误,就会导致类未找到的错误。 多DEX文件加载问题:在一些…...

模板引擎与 XSS 防御

在 View 层&#xff0c;可以解决 XSS 问题。在本书的“跨站脚本攻击”一章中&#xff0c;阐述了“输入检查” 与“输出编码”这两种方法在 XSS 防御效果上的差异。XSS 攻击是在用户的浏览器上执行的&#xff0c; 其形成过程则是在服务器端页面渲染时&#xff0c;注入了恶意的 H…...

vue3轮播图怎么做

先看效果 实现代码 <n-carouseleffect"card"dot-type"line"draggable:autoplay"!isHovered":current-index"currentIndex"prev-slide-style"transform: translateX(-150%) translateZ(-450px);opacity:1"next-slide-st…...

ubuntu中安装docker并换源

使用 Ubuntu 的仓库安装 Docker sudo apt update现在&#xff0c;你可以使用以下命令在 Ubuntu 中安装 Docker 以及 Docker Compose&#xff1a; sudo apt install docker.io docker-composeDocker 包被命名为 docker.io&#xff0c;因为在 Docker 出现之前就已经存在一个名为…...

HTML静态网页成品作业(HTML+CSS)—— 环保主题介绍网页(5个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有5个页面。 二、作品演示 三、代…...

深入了解RSA加密算法

目录 前言 一、什么是RSA&#xff1f; 二、RSA加密的基本概念 1.非对称加密 2.密钥生成 3.加密和解密 三、RSA加密的工作原理 四、RSA的应用场景 五、RSA加密解密的实现 六、RSA算法的局限性及改进措施 前言 在当今的数字化时代&#xff0c;信息的安全性成为了人们关注…...

github基础使用

前言 将用到的github指令记录下来&#xff0c;持续更新&#xff0c;方便随时查找学习。 一、github用到的指令 1、我们从github克隆下来的代码版本一般都是master主分支&#xff0c;我们要建立自己的分支进行修改&#xff1a; //git branch //查看目前的分支/* * master /…...

Docker使用心得

Docker使用心得 最近使用Docker比较频繁&#xff0c;特此想记录一下&#xff0c;方便后续查找。 Docker常用命令Docker如何配置使用GPU环境&#xff1f;如何使用Dockerfile构建镜像&#xff1f;如何使用docker compose 实例化容器&#xff1f; Docker如何配置使用GPU环境 参…...

QListWidget 插入 item,item显示自定义界面

代码示意&#xff1a; class ItemWidget_action_cfg_w(QWidget):... # 如下方法是在指定item下插入新的item def __do_add_item(self, item):# 获取当前item rowrow self.__list_w.indexFromItem(item).row()# 注意这里没有父类&#xff0c;解释见后面说明new_item QList…...

Python写一个ERP系统和agent智能体协同仓库和订单的案例

这是一个关于使用Python编写一个简单的ERP系统&#xff0c;并与Agent智能体协同完成仓库和订单管理的案例。在这个案例中&#xff0c;我们将使用Python的第三方库sqlite3进行数据库操作&#xff0c;以及discord库实现与Agent智能体的通信。 1. 首先&#xff0c;安装所需库&…...

哪个网站做学历认证/重庆seo杨洋

/*** 生成指定位数的 随机数* param int $length 默认生成4位* return int*/ function generate_code($length 4) {return rand(pow(10,($length-1)), pow(10,$length)-1); }...

免费ppt模板下载百度云/seo关键词优化方法

>>回到总目录<< 为了不辜负已经订阅了专栏的同学们的信任,所以本专栏不会有任何的优惠活动。 另外,当订阅人数每次达到 2 n ( n > 2 ) 2^n(n>2) 2...

域名注册和网站建设/百度首页纯净版怎么设置

Polldaddy 是全球领先的在线投票系统服务商&#xff0c;目前每月访问量达到2亿&#xff0c;多数是通过从外部网站调用其饰件&#xff08;widget&#xff09;或其 API 进行的。今天 Polldaddy 正式公布其投票系统 API&#xff0c;第三方开发商可以直接使用该 API 在自己的程序中…...

aspcms网站栏目调用/昆明百度推广开户

Ansibel之roles的使用 roles介绍 roles能够根据层次型结构自动装载变量文件、task以及handlers等。简单来讲&#xff0c;roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中&#xff0c;并可以便捷地include它们&#xff0c;roles一般用于基于主机构建服务的…...

移动网站建设厂家/广告推广语

尽管win10系统已经出了有一段时间&#xff0c;但还是有不少用户还在使用win7系统。大家连接的无线都是由路由器放出的&#xff0c;其实电脑也可以的&#xff0c;那么电脑如何改造成无线路由器&#xff1f;下面我们就一起来看看windows7电脑改成无线路由器是怎么操作的。win7电脑…...

建设银行卡如何网站激活/seo什么意思中文意思

1. 注意&#xff1a;如果想使用Subtitle类型的单元格&#xff0c;需在Storyboard中将Protocell设置为subtitle类型&#xff0c;且Protocell的identifier必须与ViewController中cellForRow方法设置&#xff0c;保持一致&#xff0c;才能保证在subtitle行内容被显示出来。 - (UI…...