Quartus II 操作入门[通俗易懂]

Quartus II 操作入门[通俗易懂]使用Quartus设计FPGA,简单包括以下流程:新建工程,写代码编译工程,找错误分配引脚,重编译下载配置,到硬件为保证设计的正确性,在编译后,一般还需要做仿真验证,然后下载至硬件,有两种仿真方式:-功能仿真-时序仿真新建工程,写代码创建工程文件夹在电脑上新建一个文件夹,例如E:\Lianxi_1。工程的文件将全都存在这个文件夹内,便于管理。一个工程对应一个文件夹。新建

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

使用Quartus设计FPGA,简单包括以下流程:

  1. 新建工程写代码
  2. 编译工程找错误
  3. 分配引脚重编译
  4. 下载配置到硬件

为保证设计的正确性,在编译后,一般还需要做仿真验证,然后下载至硬件,有两种仿真方式:
– 功能仿真
– 时序仿真


新建工程,写代码

创建工程文件夹
在电脑上新建一个文件夹,例如E:\Lianxi_1。工程的文件将全都存在这个文件夹内,便于管理。一个工程对应一个文件夹。
新建工程
打开QuartusII,File->New Project Wizard…如下图:
第1个,选择工作目录:选刚才建立的空文件夹.
第2个,填入工程名称。要有意义,比如要做一个38译码器,工程名就叫decoder3_8,不要使用中文。
第3个,顶层设计实体名,默认。
这里写图片描述

Next… 下图,添加已有的源代码文件,没有的话,点Next
这里写图片描述

下图,选FPGA型号,根据你FPGA芯片上印刷的型号选择。
比如,我使用的芯片型号如下:
Family: Cyclone II
Device:EP2C5T144C8
这里写图片描述

Next…下图,选择综合、仿真、时序分析工具. 此处如果全部选择None,表示用Quartus自带的工具。
注:Quartus 9.1以后的版本不再自带仿真工具,需要安装Modelsim之类的软件来仿真。
这里写图片描述

Next.. 下图,是前面设置的信息的总览,检查无误就点Finish
这里写图片描述

  • 写代码
    这里写图片描述

    新建VerilogHDL文件,写代码,保存时,文件名要与module后面定义的实体名一致。即,保存decoder3_8.v到你的工程文件夹内。
module decoder3_8 (data_out, data_in ) ;
input [2:0] data_in;
output [7:0] data_out;
reg [7:0] data_out;

    always @(data_in)
    begin
        case (data_in )
        3'b000: data_out=8'b11111110;
        3'b001: data_out=8'b11111101;
        3'b010: data_out=8'b11111011;
        3'b011: data_out=8'b11110111;
        3'b100: data_out=8'b11101111;
        3'b101: data_out=8'b11011111;
        3'b110: data_out=8'b10111111;
        3'b111: data_out=8'b01111111;
        default: data_out=8'bxxxxxxxx;
        endcase
    end
endmodule

保存为 decoder3_8.v
将此源文件设置为顶层文件,如下图:
导航窗口Project Navigator下边→点Files
右击文件decoder3_8.v
设为顶层实体Set Top-Level Entity
这里写图片描述
这里写图片描述
再点击工程架构Hierachy,检查顶层架构是否为当前顶层文件。
说明:一个工程内,可以有多个源代码文件。但只有一个是顶层文件,代表最顶层设计,它可以引用工程目录内的其他源文件。
这里写图片描述

编译工程,找错误

编译:Processing–>Start Compilation
编译不成功时,下方会有红色提示信息,请仔细检查语法,双击红色提示信息,可以直接定位到错误代码附近位置。
修改后重新编译,直至修改完所有错误。
编译成功,只是语法没有错误,但并不代表设计就是完全正确的。
我们可以通过仿真来检查设计是否符合预计的功能。
这里写图片描述

分配引脚,重编译

前面的设计完成后,开始分配引脚
说明:FPGA引脚众多,大部分引脚都可以任意设置为输入或输出,我们可以将本工程中输入输出分配到任意可分配的引脚上。当然,对于已经做好的硬件开发版来说,有些按键、显示灯等已经事先与FPGA连接好了,所以分配引脚的时候要根据硬件电路原理图正确分配引脚。
分配引脚操作:Assignment -> Pin Planner,如图。分配完引脚,关闭窗口,重新编译工程。
这里写图片描述

下载配置,到硬件

下载程序到FPGA,有多种方式,我们一般用USB-Blaster。
这里写图片描述
连接下载器
• 将USB-Blaster的USB端插电脑上,另一端10针接头接FPGA板上的JTAG插座。
• 用一根USB线给FPGA板供电。
如果你的电脑第一次使用USB-Blaster下载器,需要为它安装驱动:
方法:我的电脑右键->设备管理器->USB-Blaster右键->更新驱动->定位到Quartus安装目录C:\altera\9.0\quartus\drivers\usb-blaster,等待安装完成。
下载
菜单Tools -> Programmer,下图
这里写图片描述
左上方,点Hardware Setup…->下拉选择USBBlaster->Close.
界面顶部中间选下载方式,Mode: JTAG
左侧,按Start下载 .sof文件。
OK,测试硬件功能是否正确吧。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181618.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月15日 下午7:16
下一篇 2022年10月15日 下午7:36


相关推荐

  • endnote中文参考文献格式下载(医学参考文献格式endnote)

    Endnote中文参考文献格式中华人民共和国国家标准GB/T7714-2015文后参考文献著录规则百度网盘https://pan.baidu.com/s/1I4kz1DjRw_aK7VjV1ytfdw提取码66sy

    2022年4月15日
    227
  • c++中decltype_find的用法归纳

    c++中decltype_find的用法归纳1.什么是decltypedecltype是C++11新增的一个关键字,和auto的功能一样,用来在编译时期进行自动类型推导。引入decltype是因为auto并不适用于所有的自动类型推导场景,在某些特殊情况下auto用起来很不方便,甚至压根无法使用。autovarName=value;decltype(exp)varName=value;auto根据=右边的初始值推导出变量的类型,decltype根据exp表达式推导出变量的类型,跟=右边的value没有关系…

    2025年10月13日
    4
  • vue/uniapp 如何让页面的 onLoad 在 onLaunch 之后执行[通俗易懂]

    app.vue里的onLaunch中如果有异步方法(比如:登录),返回结果可能会在页面的onLoad之后,但onLoad中的方法需要登录回调的结果。为了让页面的onLoad在onLaunch之后执行,解决方案:1.main.js添加代码Vue.prototype.$onLaunched=newPromise(resolve=>{Vue.prototype.$isResolve=resolve;})2.在App.vue的onLau

    2022年4月14日
    61
  • 在pycharm中安装opencv_pycharm opencv

    在pycharm中安装opencv_pycharm opencv打开pycharm下方的terminal终端在路径下直接输入pipinstallopencv-python稍等片刻既安装成功在这里查看项目安装的模块点击左上方文件-设置-项目-Protect-Interpreter看到我们已经安装了opencv-python与numpy模块…

    2022年8月27日
    7
  • 如何创建链表?

    如何创建链表?引言 最近我们 c 语言课学到了链表 好多同学都在说 哇 链表怎么这么难 根本看不懂呀 不要怕 在这一篇博客中 我会给你详细讲解每一行代码 链表 链表的组成其实很简单 就是由很多结点组成的 一个结点包含数据域和指针域 数据域用来存放数据 指针域负责指向其他结点 起到链接的作用 创建链表 其实创建一个链表也很简单 在我看来 可以分为以下几步 1 创建头结点 命名为 head

    2026年3月18日
    2
  • createprocess error=2_CreateProcess

    createprocess error=2_CreateProcessOpenProcess函数声明如下,失败则返回NULL(0,也就是false)#include<Windows.h>HANDLEOpenProcess(DWORDdesiredAccess,//读取权限BOOLblnheritHandle,//是否继承DWORDprocessId//想要读取的PID)代码示例,注意下面的代码可能运行失败,请按照如下设置VS右键项目名(例如ConsoleApplication123)->属性->配置属性(注意左上角是活动D

    2025年11月2日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号