基于Quartus Prime18.1的安装与FPGA的基础仿真(联合Modelsim)教程

news2025/1/11 18:40:39

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
BEGIN
    PROCESS(x)
    BEGIN
        CASE x IS
            WHEN "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 得到仿真结果

注意

是不是有手就行?

注意!!!!

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python机器学习】NMF——将NMF应用于模拟信号数据

假设我们对一个信号感兴趣&#xff0c;它是由三个不同信号源合成的&#xff1a; import matplotlib.pyplot as plt import mglearnSmglearn.datasets.make_signals() plt.figure(figsize(6,1)) plt.plot(S,-) plt.xlabel(Time) plt.ylabel(Signal) plt.show()不幸的是&#xff…

基于imx6ull开发板 移植opencv4.7.0

一、概述 本章节是针对opencv-4.7.0移植到Linux系统&#xff0c;运行在正点原子-I.MX6U ALPHA开发板 上&#xff0c;详细的移植流程如下。 二、环境要求 2.1 硬件环境 正点原子-I.MX6U ALPHA开发板虚拟机&#xff1a;VMware 2.2 软件环境 Ubuntu系统要求&#xff1a;20.0…

[SAP ABAP] 排序内表数据

语法格式 整表排序 SORT <itab> [ASCENDING|DESCENDING]. 按指定字段排序 SORT <itab> BY f1 [ASCENDING|DESCENDING] f2 [ASCENDING|DESCENDING] ... fn [ASCENDING|DESCENDING].<itab>&#xff1a;代表内表 不指定排序方式则默认升序排序 示例1 结果显…

Posix多线程编程总结

Posix在线文档&#xff1a; The Single UNIX Specification, Version 2 (opengroup.org) 本文主要参考这位大神的文章&#xff1a; Posix多线程编程学习笔记 - 凌峰布衣 - 博客园 (cnblogs.com) 线程安全问题 多线程编程中&#xff0c;经常遇到的就是线程安全问题&#xff0c;或…

React AntDesign Layout组件布局刷新页面错乱闪动

大家最近在使用React AntDesign Layout组件布局后刷新页面时&#xff0c;页面布局错乱闪动 经过组件属性的研究才发现&#xff0c;设置 hasSider 为 true 就能解决上面的问题&#xff0c;耽搁了半天的时间&#xff0c;接着踩坑接着加油&#xff01;&#xff01;&#xff01; …

STM32学习 修改系统主频

前面时钟树的学习说明单片机的主频是可以修改的&#xff0c;那么怎么更改系统的主频&#xff0c;这里做一个简单的介绍。首先要明白&#xff0c;单片机的程序是如何运行&#xff0c;这里简单说明一下。 对应的代码在startup_stm32....文件里面&#xff0c;这里是复位程序的汇编…

第T2周:彩色图片分类

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 &#x1f449; 要求&#xff1a; 学习如何编写一个完整的深度学习程序了解分类彩色图片会灰度图片有什么区别测试集accuracy到达72% &#x1f9be;我的环境&am…

QT事件处理系统之五:自定义事件的发送案例 sendEvent和postEvent接口

1、案例 双击窗口,会发送 自定义事件,然后在事件过滤中心进行拦截处理自定义事件。 2、核心代码 /*解释:双击窗口时,将产生双击事件,然后该事件被包裹成一个对象,随后将会被发往event事件中心,然后进行事件的处理(Widget对象);因为m_lineEdit开启了事件过滤机制,所…

【UML用户指南】-21-对基本行为建模-活动图

目录 1、概念 2、组成结构 2.1、动作 2.2、活动节点 2.3、控制流 2.4、分支 2.5、分岔和汇合 2.6、泳道 2.7、对象流 2.8、扩展区域 3、一般用法 3.1、对工作流建模 3.2、对操作建模 一个活动图从本质上说是一个流程图&#xff0c;展现从活动到活动的控制流 活动图…

图像编辑技术的新篇章:基于扩散模型的综述

在人工智能的浪潮中&#xff0c;图像编辑技术正经历着前所未有的变革。随着数字媒体、广告、娱乐和科学研究等领域对高质量图像编辑需求的不断增长&#xff0c;传统的图像编辑方法已逐渐无法满足日益复杂的视觉内容创作需求。尤其是在AI生成内容&#xff08;AIGC&#xff09;的…

【论文复现|智能算法改进】一种基于多策略改进的鲸鱼算法

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 SCI二区|鲸鱼优化算法&#xff08;WOA&#xff09;原理及实现【附完整Matlab代码】 2.改进点 混沌反向学习策略 将混沌映射和反向学习策略结合&#xff0c;形成混沌反向学习方法&#xff0c;通过该方 法…

三十八篇:架构大师之路:探索软件设计的无限可能

架构大师之路&#xff1a;探索软件设计的无限可能 1. 引言&#xff1a;架构的艺术与科学 在软件工程的广阔天地中&#xff0c;系统架构不仅是设计的骨架&#xff0c;更是灵魂所在。它如同建筑师手中的蓝图&#xff0c;决定了系统的结构、性能、可维护性以及未来的扩展性。本节…

LSSS算法实现,基于eigen和pbc密码库【一文搞懂LSSS,原理+代码】

文章目录 一. LSSS简介1.1 概述1.2 线性秘密分享方案&#xff08;LSSS&#xff09;与 Shamir的秘密分享方案对比LSSS1.2.1 Shamir的秘密分享方案1.2.2 线性秘密分享方案&#xff08;LSSS&#xff09;1.2.3 主要区别 二. 基于矩阵的LSSS加解密原理分析2.1 LSSS矩阵构造2.1.1 定义…

【python】python基于微博互动数据的用户类型预测(随机森林与支持向量机的比较分析)(源码+数据集+课程论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

群体优化算法---电磁共振优化算法(EROA)介绍包含示例滤波器设计

介绍 电磁共振优化算法&#xff08;Electromagnetic Resonance Optimization Algorithm, EROA&#xff09;是一种新型的元启发式优化算法&#xff0c;其灵感来源于电磁共振现象。电磁共振是一种物理现象&#xff0c;当一个系统在特定频率下响应最大时&#xff0c;这个频率被称…

【算法】优先级队列-基础与应用

优先级队列&#xff08;Priority Queue&#xff09;是一种特殊的队列类型&#xff0c;它允许在其元素中分配优先级。与传统的先进先出&#xff08;FIFO&#xff09;队列不同&#xff0c;优先级队列中元素的出队顺序取决于它们的优先级。优先级较高的元素会被优先处理&#xff0…

LLaMA:挑战大模型Scaling Law的性能突破

实际问题 在大模型的研发中,通常会有下面一些需求: 计划训练一个10B的模型,想知道至少需要多大的数据?收集到了1T的数据,想知道能训练一个多大的模型?老板准备1个月后开发布会,给的资源是100张A100,应该用多少数据训多大的模型效果最好?老板对现在10B的模型不满意,想…

完美解决找不到steam_api64.dll无法执行代码问题

游戏缺失steam_api64.dll通常意味着该游戏依赖于Steam平台的一些功能或服务&#xff0c;而这个DLL文件是Steam客户端的一部分&#xff0c;用于游戏与Steam平台之间的交互。如果游戏中缺失这个文件&#xff0c;可能会出现无法启动、崩溃或其他问题。 一&#xff0c;详细了解stea…

数据结构8---查找

一、静态查找和动态查找 &#xff08;一&#xff09;静态查找 静态查找:数据集合稳定&#xff0c;不需要添加,删除元素的查找操作。 对于静态查找来说&#xff0c;我们不妨可以用线性表结构组织数据&#xff0c;这样可以使用顺序查找算法&#xff0c;如果我们再对关键字进行…