FPGA(一)Quartus II 13.1及modelsim与modelsim-altera安装教程及可能遇到的相关问题
零.前言
在学习FPGA课程时,感觉学校机房电脑用起来不是很方便,想着在自己电脑上下载一个Quartus II 来进行 基于 vhdl 语言的FPGA开发。原以为是一件很简单的事情,没想到搜了全网文章发现几乎没有一个完整且详细的流程教学安装(也可能是我没搜到,,ԾㅂԾ,,)【视频b站上有,搞完才发现T.T】,因此想做一个纯小白式安装教程,将网上分享的几位大佬关于安装部分的流程都总结到一文当中,包括软件及软件配套仿真和芯片库的安装,让大家花最少的时间完成安装。相关文章链接在文末。
多图预警
一.Quartus安装
1.首先需要先去百度网盘下载相关资料
下载链接:百度网盘 请输入提取码
提取码:qomk
2.下载的是压缩包,解压后可以看到13个文件

先打开QuartusSetup-13.1.0.162.exe文件开始安装。
3.安装流程
(1)打开后点击next

(2)选择第一个accept,再点击next

(3)选择文件夹可以自定义安装的位置,尽量建立一个新的文件夹(路径不包括中文和特殊符号)来存放,不然很多子文件夹可能会填的很乱....,选择好后点击next

(4)除了最后一个不勾选外,其他全选(默认情况),当然也可以根据自己的芯片包需要更改Devices里面的内容,然后Next

(5)Summary确保有足够的安装空间,确认后点击Next

(6)这里就开始自动安装了,需要等待一段时间
如果你之前安装过quartus却没有删除干净的话,它可能会问你是不是要建立quartus(copy),最好还是先把之前的卸载完全再重装(卸载教程在后面)

(7)完成安装后直接点击Finish,最后一个feedback不用框选

4.破解流程
(1)64位系统解压x64破解器文件,打开破解器.exe文件


选择quartus安装目录下/bin64下的sys_cpt.dll文件,打开后点击破解器的下一步(一定要关闭软件先!!!),完成破解1后再点完成,进行gcl_afcq.dll的破解




打开软件会提示30日试用,选择最后一项,选择

再用记事本打开license.dat文件将三个HOSTID的值改为NIC的任一值(我这里选择了第一个,默认=XXXXX),更改完成后点击文件->保存

在option中选择更改后的license.dat的地址,显示Version到2035即说明成功破解,点击OK即可打开软件

二.Modelsim-altera安装
1.选择ModelSimSetup-13.1.0.162.exe运行,开始安装

2.安装过程
(1)点击next

(2)选择第一个安装,next

(3)选择accept然后next

(4)单击文件夹可以更改安装位置,选择完成后next

(5)确认空间充足后next

(6)等待安装完成

(7)不用点框选,直接Finish

三.ModelSim安装
1.版本选择,32位系统选择上面win32,64位系统选择下面win64,这里我以64位的安装为例

2.解压缩文件,双击运行win64-10.4-se.exe文件

3.安装流程
(1)直接单击next

(2)单击Browse可以更改安装位置,单击next

(3)直接点击Agree

(4)等待安装完成

(5)50%时候会跳两个选型全选YES



(6)最后跳出的窗口选择NO,禁止自动更新

(7)最后Done完成安装

4.破解过程
(1)直接打开/win64/modelsim.exe会提示无注册,软件会自动关闭



(2)修改win64文件夹中mgls64.dll的属性,取消勾选只读

(3)打开crack文件夹,将里面的MentorKG.exe和patch_dll.bat一起拷贝到modelsim安装目录里的win64/win32(看第一步选择了哪个系统)下


(4)先确认关闭了杀毒软件,到之前win64文件夹中,运行patch_dll.bat,会自动打开cmd窗口,生成license文件,直接将其另存为win64文件夹当中
(默认存放在C:\Users\user\AppData\Local\Temp)

(5)右键我的电脑点击属性,在系统界面中先点击高级系统设置,再点击环境变量

(6)点击新建系统变量,设置环境变量名MGLS_LICENSE_FILE,变量值为license放置的路径,最后确定

(7)返回后在系统属性界面再点击确定

(8)重新打开modelsim se-64成功运行说明破解成功

四.Quartus和Modelsim的配置
1.通过软件快捷方式或者开始界面搜索打开quartus ii

2.
(1)打开Tools->option界面,选择EDA Tool Options,点击ModelSim和ModelSim-Altera的...选择文件


(2)ModelSim中选择win64文件夹,ModelSim-Altera中选择win32aloem文件夹,最后点击OK

3.
(1)配置compiler,Tools->Launch Simulaton Library Compiler

(2)Executable location选择Modelsim的win64文件夹,Output directory选择output_files(可以换其他文件夹),点击Start

(3)编译成功显示全绿(有warning可以不管)

4.新建一个vhdl文件用来测试,复制测试代码进去,保存文件名为div(与entity同名)

测试代码(6分频)
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;entity div isport(clk : in std_logic;rst : in std_logic; clkout :out std_logic);
end div;architecture rtl of div isconstant n : integer range 0 to 10 := 6; --这里的n可以是任意值,当然要大于1.
signal clk_p : std_logic;
signal clk_n : std_logic;signal cnt_p : integer range 0 to n;
signal cnt_n : integer range 0 to n;begin process(clk_p, clk_n)beginif((n mod 2) = 0)thenclkout <= clk_p;elseclkout <= clk_p or clk_n;end if;end process;process(clk, rst)beginif(rst = '0') thencnt_p <= 0;elsif(clk'event and clk = '1') thenif(cnt_p = n-1) thencnt_p <= 0;elsecnt_p <= cnt_p + 1;end if;end if;end process;process(clk, rst)beginif(rst = '0') thenclk_p <= '0';elsif(clk'event and clk = '1')thenif (cnt_p < (n/2)) thenclk_p <= '1';elseclk_p <= '0';end if ;end if;end process; process(clk, rst)beginif(rst = '0') thencnt_n <= 0;elsif(clk'event and clk = '0')thenif(cnt_n = n-1) thencnt_n <= 0;elsecnt_n <= cnt_n + 1;end if;end if;end process;process(clk, rst)beginif(rst = '0') thenclk_n <= '0';elsif(clk'event and clk = '0')thenif (cnt_n < (n/2)) thenclk_n <= '1';elseclk_n <= '0';end if ;end if;end process;
end rtl;
5.保存后会跳出是否建立新工程,选择YES,进入工程建立指引界面


6.新建工程
(1)写入工程名,选择工程保存文件夹(建议新建空的不含中文文件夹)

(2)完成后不加别的文件,只有div.vhd,点击next,来到芯片选择界面

(3)我这里的芯片选择是EP4CE6E22C8,先选择Famliy才会出现对应的devices,完成后next

(4)Simulation选择vhdl的ModelSim,然后可以直接点击Finish,点Next的话是会显示Summary


(5)在File->New->University Program VWF,最后点击OK,新建波形仿真文件VWF


7.波形仿真
(1)右键左侧空白区域打开Insert Node or Bus

(2)选择Node Finder

(3)List相关引脚,点击>>进行全部选择移动,最后OK完成,返回后OK完成引脚插入

(4)接下来开始设置模拟引脚输入频率,同时将rst引脚拉高


(5)选择YES保存更改,待仿真结束即可得到结果,说明前面配置全部完成


五.遇到的问题
1.
** Error: (vdel-42) Unsupported ModelSim library format for "F:/FPGA_ FILE/FSM/simulation/modelsim/rtl _work". (Format: 4 )
. ** Warning: (vdel-57) Library 'F:/FPGA_ FILE/FSM/simulation/modelsim/rtl_ work' is missing or is not a valid ModelSim library.
** Error: D:/altera/13.0/modelsim_ ase/win32aloem/vdel failed.
modelsim-altera软件附带了预编译的仿真库,如果使用modelsim-altera软件,则不会编译仿真库(错误中文翻译)
删除当前工程的simultaion文件夹重新仿真即可
2.
The ModelSim-Altera software comes packaged with precompiled simulation libraries

Executable location改为ModelSim的,而不是modelsim-altera

3.
Failed to access library 'cycloneive_ver' at "cycloneive_ver"

EDA tools里面配置可能有误,可以试下加\,或者重配置
六.卸载
Modelsim是和开始界面的快捷方式放一起的,右键快捷方式打开文件所在位置即可找到,运行uninstall 即可卸载

quartus ii 卸载也是在开始的文件快捷方式当中,不过在文件外

七.参考文章
http://t.csdnimg.cn/fXEOe
http://t.csdnimg.cn/tIPDj
http://t.csdnimg.cn/2qorA
http://t.csdnimg.cn/WshhK
http://t.csdnimg.cn/6KWA5
http://t.csdnimg.cn/i22f4
相关文章:
FPGA(一)Quartus II 13.1及modelsim与modelsim-altera安装教程及可能遇到的相关问题
零.前言 在学习FPGA课程时,感觉学校机房电脑用起来不是很方便,想着在自己电脑上下载一个Quartus II 来进行 基于 vhdl 语言的FPGA开发。原以为是一件很简单的事情,没想到搜了全网文章发现几乎没有一个完整且详细的流程教学安装(也…...
【单片机】ESP32-S3+多TMC2209控制步进电机系列1 UART通信及无传感回零 硬件部分
目录 1. 硬件选型1.1 esp32硬件型号1.2 TMC2209 硬件型号 2 原理接线图2.1 esp32接线2.2 TMC2209接线2.2.1 单向通讯 不配置地址2.2.2 单向通讯 配置地址2.2.3 双向通讯 单UART 【本文采用】2.2.4 双向通讯 多UART 3. 成品效果 1. 硬件选型 1.1 esp32硬件型号 采用的是微雪ES…...
Django之ORM
1.ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对…...
html css 图片背景透明
html css图标背景透明 css属性: background-color:transparent; mix-blend-mode: multiply; 完整HTML代码: <html><head><title>Test</title></head><body><div id"test" style"background-col…...
使用ALB实现gRPC协议的负载均衡
gRPC是一种高性能、开源的远程过程调用框架,当您使用gRPC进行后端服务通信时,您可使用应用型负载均衡ALB(Application Load Balancer)实现gRPC协议的负载均衡,统一流量入口。gRPC基于HTTP/2协议进行通信,目…...
解决IDEA的easycode插件生成的mapper.xml文件字段之间逗号丢失
问题 easycode插件生成的mapper.xml文件字段之间逗号丢失,如图 解决办法 将easycode(在settings里面的othersettings)设置里面的Template的mapper.xml.vm和Global Config的mybatisSupport.vm的所有$velocityHasNext换成$foreach.hasNext Template的mapper.xml.vm(…...
【Linux测试题】
1. 选择题 题目: 如果想将电脑中Windows C盘(hd1)安装在Linux文件系统的/winsys目录下,请问正确的命令是()。 选项: A. root104.123.123.123:~# mount dev/hd1 /winsys B. root104.123.123.12…...
python使用openpyxl处理excel
文章目录 一、写在前面1、安装openpyxl2、认识excel窗口 二、基本使用1、打开excel2、获取sheet表格3、获取sheet表格 尺寸4、获取单元格数据5、获取区域单元格数据6、sheet.iter_rows()方法7、修改单元格的值8、向表格中插入行数据9、实战:合并多个excel 三、获取E…...
【JavaWeb后端学习笔记】Mybatis基础操作以及动态SQL(增、删、改、查)
Mybatis 0、环境准备0.1 准备数据库表emp;0.2 准备SpringBoot工程0.3 配置文件中引入数据库连接信息0.4 创建对应的实体类0.5 准备Mapper接口 1、MyBatis基础操作1.1 删除1.2 新增(主键返回)1.3 更新1.4 查询(解决字段名与类属性名…...
基于MATLAB野外观测站生态气象数据处理分析实践应用
1.本课程基于MATLAB语言 2.以实践案例为主,提供所有代码 3.原理与操作结合 4.布置作业,答疑与拓展 示意图: 以野外观测站高频时序生态气象数据为例,基于MATLAB开展上机操作: 1.不同生态气象要素文件的数据读写与批处理…...
IP 地理位置定位技术原理概述
本文深入探讨 IP 地理位置定位技术的原理。介绍了 IP 地址的基本概念及其在网络中的作用,随后阐述了基于数据库查询、基于网络拓扑分析以及基于机器学习算法的三种主要 IP 地理位置定位技术原理中的基于IP数据库查询。 IP 地址基础 IP 地址是互联网协议࿰…...
C语言(分支结构)
问题引出 我们在程序设计往往会遇到如下的问题,比如下的函数的计算。 也就是我们是必须要通过一个条件的结果来选择下一步的操作,算法上属于一个分支结构,C语言中实现分支结构主要使用if语句。 条件判断 根据某个条件成立与否,…...
批量将不同的工作簿合并到同一个Excel文件
批量将不同的工作簿合并到同一个Excel文件 下面是一个示例,展示如何批量将不同的工作簿合并到同一个Excel文件,并生成模拟数据。我们将使用 Python 的 pandas 库来完成这个任务。具体步骤如下: 步骤 1: 安装必要的库 首先确保你已安装 pan…...
详解AI网关助力配电房实现智能化管控应用
对于一些建设年份久远的老旧配电房,由于配套降温散热设施设备不完善、线路设备老化等因素,极易出现因环境过热而影响设备正常稳定运行,进而导致电气故障甚至火灾等事故产生。 基于AI网关的配电房智能监控及管理 针对配电房的实时安全监测及…...
2025美赛数学建模常用数据库网站大全
优秀模板写作红宝书数学模型获取——更多资料请点击下方名片进群获取。 一、可以查询美国各个领域经济指标的网站: olap.epsnet.com.cnhttps://www.ers.usda.gov/data-products/rice-yearbook/www.ers.usda.govU.S. Energy Information Administration (EIA) www.eia.govhttp…...
Wordpress设置固定链接形式后出现404错误
比如固定连接设置为 /archives/%post_id%.html 这种形式,看起来比较舒服。对搜索引擎也友好。 出现404需要设置伪静态...
我最近在干什么【1】
前言 打算开一个新系列,偏休闲点的,不是完整全面的技术分享,话题还是聚焦个人成长(学的技术、了解到的信息、看的书……) 方面。文章偏意识流点,单纯分享我最近在干什么,不定期更新,…...
[Vue3]computed原理
Computed原理 不管在是 Vue 2 还是在 Vue 3 中,对 computed 本身的实现原理基本都是一样的。当使用 computed 计算属性时,组件初始化会对每一个计算属性都创建对应的 watcher , 然后在第一次调用自己的 getter 方法时,收集计算属性依赖的所有…...
Vue工程化开发中各文件的作用
1.main.js文件 main.js文件的主要作用:导入App.vue,基于App.vue创建结构渲染index.html。...
【c++笔试强训】(第三十一篇)
目录 最⻓回⽂⼦序列(动态规划-区间dp) 题目解析 讲解算法原理 编写代码 添加字符(字符串) 题目解析 讲解算法原理 编写代码 最⻓回⽂⼦序列(动态规划-区间dp) 题目解析 1.题目链接:最…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
