官方论坛
官方淘宝
官方博客
微信公众号
点击联系吴工 点击联系周老师

1.4 FPGA开发平台介绍--明德扬科教(mdy-edu.com)

发布时间:2021-08-22   作者:admin 浏览量:
第一篇 FPGA基础知识

本文的文档编号:001500000031

需要看对应的视频,请点击视频编号:001500000031

1、本章主要介绍FPGA的两大制造商——Xinlinx和Altera,基于每个厂商生产的FPGA芯片都要在对应的开发工具上才能进行设计,其中Xilinx芯片的开发工具包括vivado,Altera的开发工具是Quartus。

2、本章通过一个上板例程来介绍quartus prime软件的使用方法。
3、这是ALTERA文档



    第四章 FPGA开发平台介绍

第1节 开发环境

    对于初学者而言,首先需要了解的是FPGA的开发需要有对应的开发环境。目前两大FPGA制造厂商分别是XilinxAltera(目前已被Intel收购),而每个厂商生产的FPGA芯片都需要在对应的开发工具上才能够进行设计。Xilinx芯片的开发工具包括VivadoISE(推出Vivado平台后,Xilinx已经不考虑升级ISE版本),Altera芯片的开发工具是Quartus。本书以Quartus prime开发工具为例来详细介绍FPGA的开发设计流程。

    Quartus prime Altera公司为其生产的FPGA芯片所设计的一款开发软件,其软件内嵌自有的综合器以及仿真器,可以支持原理图、VHDLVerilog HDL以及AHDLAltera Hardware 支持Description Language)等多种设计输入形式,可以完成从设计输入到硬件配置的完整PLD设计流程。

    Altera Quartus primeAlteraIntel收购后在已完成开发的quartus II软件基础上开发的新软件。作为一种可编程逻辑的设计环境,该软件强大的设计能力和直观易用的接口使其越来越受到数字系统设计者的欢迎。AlteraQuartus prime可编程逻辑软件属于第四代PLD开发平台,该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与CadenceExemplarLogicMentorGraphicsSynopsysSynplicityEDA供应商的开发工具相兼容,其改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。该设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具(15.1以及更高版本)。工程师可以使用同样的低价位工具对Stratix FPGA进行功能验证和原型设计,同时可以设计HardCopyStratix器件用于批量成品。系统设计者现在能够用Quartusprime软件评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。

第2节 软件界面

    在Quartus prime软件中进行开发工作的顶级组织单元叫做工程(Project),一个工程可以代表一个完整的软件解决方案。工程师设计的每一个工程文件都应该保存在单一的一个文件夹中。因此,开始一个新的逻辑电路设计的第一步就是新建一个文件夹来保存文件。接下来,笔者将详细介绍如何新建一个工程。为了保存此次的设计文件,在D盘新建一个introtutorial文件夹。本次运行的范例为一个简单的双路灯控电路。打开Quartus prime软件后将看到类似于图1.4- 1的画面。此主界面中包括若干窗口,用户可使用鼠标选择以访问Quartus prime软件的相关功能。Quartus prime提供的大多数命令都可用菜单形式来访问。例如,在图1.4- 1所示的主界面中,左键点击File标签,可打开如图1.4- 2所示的菜单。用左键单击Exit可退出 Quartus prime软件。
                                                    
1.4- 1Quartus prime18.1主界面

1.4- 2File菜单一例
对于有些命令,需要连续访问两个或以上的菜单才可以使用。

第3节 第一个上板例程
     
    本教材中涉及的所有案例,均是在Quartus prime18.1精简版开发软件上进行。其他版本的软件在界面上会略有不同,为了避免未知的错误,笔者建议读者统一使用此版本。
本章将介绍Quartusprime软件的基本特征,并展示如何使用Verilog硬件描述语言来设计和实现电路功能。通过本章节的学习,读者将掌握以下几方面的内容:
1、新建工程;
2、使用Verilog代码录入设计;
3、将综合的电路布局到Altera FPGA 
4、分配电路的输入输出到FPGA上的指定引脚;
5、编程配置教学板上的FPGA芯片。

3.1 新建工程

    按如下步骤新建工程:
1. 选择File>New Project Wizard,以打开图1.4-3所示窗口,可通过勾选Don't show methis introduction again跳过此窗口步骤。随后单击Next,此时会出现图1.4-4所示窗口。
图1.4- 3引导的任务显示
1.4- 4创建新的工程
2. 工程保存在新建的工作文件夹introtutorial下(读者也可以使用自己设定的文件夹),工程必须有一个名字,通常情况下工程名与顶层设计实体的名字相同。如图1.4-4所示,选择light作为工程名和顶层实体名。单击Next。因为还未创建introtutorial文件夹,Quartus prime会弹出一个对话框,询问是否新建所需文件夹,如图1.4-5所示。单击Yes后将会出现图1.4-6所示的窗口。
1.4- 5提示创建文件夹
1.4- 6工程类型
1.4- 7添加用户指定设计文件
3. 如果没有已存在的设计文件,单击Next,将会打开如图1.4-8所示的界面。
1.4- 8选择器件家族和指定的器件
4. 教学板采用的器件为Cyclone ⅣE EP4CE15F23C8。此处选择Cyclone ⅣE器件家族。单击Next后出现图1.4-9所示界面,在此界面下选定第三方EDA仿真工具,并选择硬件描述语言为Verilog HDL。
1.4- 9指定第三方EDA工具和Verilog HDL
5. 用户可指定一些第三方EDA工具。不改变默认,随后单击Next,出现图1.4-10所示窗口。
1.4- 10工程设置总览
6. 设置总览如图1.4-10所示。单击Finish,返回Quartus prime主体窗口。标题栏将显示light工程,如图1.4-11所示。
1.4- 11Quartus prime显示已建工程
至此,一个工程新建完毕,接下来将进入逻辑代码的设计。

3.2 代码设计

    以双路的灯控电路作为一个设计范例,其数字逻辑如1.4-12所示。此灯可由x1x2两个按键共同控制,当按键按下表示为逻辑0,其真值表也同时在图中给出。注意输入x1x2是异或的关系,但是在设计中仍然用最简单的与或非门来显示。
1.4- 12灯控电路

将上面的数字逻辑用硬件描述语言Verilog代码来描述。注意,此模块的名称仍为 light,其与图1.4-4所示的名称一致。可以使用任何可存储ASCprime码的文本编辑器或者使用Quartus prime自带的编辑器进行该代码的编辑。当然,理论上模块的名称可以任意设定,此处设计的名称与顶层Verilog模块的名称一致是设计的惯例。文件名称必须带.v扩展名用以指示此文件为 Verilog文件。综上所述,本模块使用light.v这一名称。
1.4- 131.4-12所示电路的Verilog代码
3.2.1使用官方编辑器

    本节将展示如何使用Quartus prime软件中的文本编辑器。喜欢使用其他文本编辑器来创建Verilog源文件的读者可以跳过此节。

    首先选择File>New打开图1.4-14所示窗口,选择 Verilog HDL File后单击OK,打开文本编辑器窗口。第一步是指定所创建的文件的名称。选择File>Save As,打开图1.4-15所示的对话框来命名并保存文件。选择存储类型为Verilog HDL File,填写文件名称为light.v。单击Save,打开图1.4-16所示窗口,在文本编辑界面中输入上图中的代码,输入完毕后使用快捷键Ctrl+S保存该文件。
1.4- 14选择新建的文件类型
1.4- 15命名文件
1.4- 16文本编辑器窗口
3.2.2使用GVIM编辑器

    在上一节,笔者为大家详细介绍了使用官方文本编辑器来编写Verilog代码的方法。事实上,也可以选择使用其他文本编辑工具来提高编写、修改代码的效率。笔者按照个人的使用习惯在此推荐一款文本编辑器GVIM,并展示如何使用该软件来设计Verilog代码。

    首先,打开GVIM软件,打开文件>另存为。在弹出的图1.4-17界面中将文件名写为.v格式,表示创建一个Verilog语言设计文本。这样在创建的文本编辑界面中,会高亮显示Verilog语法中的一些关键字。在此文本编辑界面中对案例中的代码进行编写,如图1.4-18所示。
1.4- 17将文件名保存为.v后缀
1.4- 18使用GVIM编写案例中的代码
    该软件在使用中还有许多使用技巧,在下面的章节中针对软件的使用会进行详细介绍。

3.2.3添加文件

    一个工程中可以包含许多个模块,每个模块又可以保存为一个独立的文件。正如图1.4-7所讨论的那样,设计师可以告诉Quartus prime软件哪些文件是当前工程的一部分。在前面的案例中如果要查看当前light工程中已包含的文件列表,可以选择Assignment>Setting>File,随后可以打开图1.4-17所示界面。另外一个操作方法是选择 Project>Add/Remove Files in Project

    使用Quartus prime文本编辑器创建文件时勾选Add file to current project选项,所创建文件即可自动加入到工程文件列表。如果使用的不是Quartus prime自带的文本编辑器,那么在打开图1.4-19所示的界面查看列表中的文件时,列表中没有所创建的文件,此时必须手动添加文件到工程文件列表中。具体操作方法为:单击图1.4-19 File Name方框后的按钮,弹出图1.4-20所示对话框,选择light.v后单击Open即可将该文件添加到工程文件列表中。此时再次查看图1.4-19界面,可以看到所添加的文件已经进入文件列表。需要注意的是,在大多数案例中Quartus prime软件可根据各个实体自动找到正确的文件,即使没有将文件添加到工程中也没有问题。然而,对于包含许多文件的复杂工程,将所需文件按照上述方法一个个添加到工程中去是一个很好的设计惯例。
1.4- 19设置窗口
1.4- 20选择文件
3.3 编译设计电路

    设计完整个工程之后,要经过Quartus prime软件中几个工具的处理,分别是分析代码、综合电路以及生成目标芯片的实现内容。这些应用工具被聚集在一起,统称为编译器。

    选择Processing>StartCompilation运行编译器,或者单击 按钮运行。在编译过程中,Quartus prime的左边会显示编译的进度过程。当进度到达100%即表示编译成功。
当编译成功后,可以通过 按钮手动打开编译报告。
1.4- 21编译通过时的报告
    在此窗口的左面列出了许多信息的列表,其中比较有价值的信息是此工程使用的芯片资源情况。如图1.4-21所示,本工程使用到了1个逻辑单元(LE)和3个引脚资源。

    在编译期间,Quartus prime在消息窗口会显示生成的消息。如果此工程编译通过,其中一条消息会显示编译成功,没有产生错误。

    如果工程编译不通过,那么就代表设计的Verilog代码中至少有一个或以上错误。在这种情况下与代码中错误对应的消息就会在消息窗口显示。双击某条错误信息,该信息将会滚动显示完整并且打开Quartus prime自带文本编译器,将Verilog代码中处出现错误的地方高亮显示。类似的,编译器也会显示许多警告消息,同样的方法也适用于查看完整的警告消息。如果想获取针对于某条错误或警告消息的更多报告信息,可选住此报告后按F1功能键即可进行查看。
为了演示上述的现象,将模块light.v的最后一行改成endmodules后重新进行编译。Quartus prime弹出对话框,显示编译不通过,编译报告如图1.4-22所示,单击OK以确认。在消息窗口单击Error标签,显示图1.4-23所示消息。双击第一条错误信息后Quartus prime文本编辑器打开light.v模块,可以看出最后一行被高亮显示,如图1.4-24所示。修正代码后重新进行编译,此时工程编译可以通过。
1.4- 22编译不通过时的报告
1.4- 23错误信息
1.4- 24指示错误代码的位置
3.4 引脚分配

    使用开发板上的LED6(连接的信号线为LED1_NET)代表fsw0sw1分别代表x1x2,所需引脚如图1.4-25所示。选择Assignments>PinPlanner(或单击按钮),打开图1.4-26所示窗口,在下方Location下面输入要配置的引脚信息。

1.4- 25所需引脚原理图
1.4- 26引脚分配
3.5 编程及配置FPGA器件

    引脚分配完毕之后,需要重新进行一次全编译。当全编译通过后Quartus prime软件即可生成可以烧录到FPGA中的配置文件。将下载器USB-BlasterFPGA开发板进行连接,打开FPGA开发板电源后回到Quartus prime主界面,选择Tools>Progrmmer或单击 按钮,打开图1.4-27所示窗口,选择配置模式ModeJTAG。在缺省情况下,USB-Blaster没有被选中,单击HardwareSetup按钮,在弹出的窗口选择USB-Blaster即可选定下载器,如图1.4-28所示,单击Close完成配置并退出。

1.4- 27程序烧录窗口
1.4- 28硬件设置窗口
    如图1.4-29所示,待烧录进FPGA的配置文件light.sof已被列入窗口。如果该文件没有列入窗口,则单击Add File手动选择烧录文件light.sof加入。该文件是一个由编译器的汇编模块生成的二进制文件,其包含配置FPGA器件的数据。其中,.sof文件后缀表示 SRAM目标文件(SRAM Object File)。选中的器件为EP4CE15F23,勾选Program/Configure选项,单击 Start开始下载。
1.4- 29下载SRAM目标文件
    注意,在使用前需要安装下载器的驱动程序。
    USB-Blaster用户,请参考http://www.altera.com.cn/literature/ug/ug_usb_blstr.pdf
    Byte-Blaste-rprime用户,请参考http://www.altera.com.cn/literature/ug/ug_bbprime.pdf
    Ethernet-Blaster用户,请参考http://www.altera.com.cn/literature/ug/ug_ebcc.pdf

3.6 在线调试

    下载完毕后即可进行电路的测试,利用sw0sw1输入所有可能值,观察LED亮灭是否和预期保持一致。如果与预期不致,那么就需要去定位问题,此时将使用到SINGNALTAP工具,具体使用方法请参照下一章内容。

3.7 固化程序

    将.sof格式的配置文件烧录到FPGA中后,FPGA无法完成配置文件的保存,在下一次上电的时候,FPGA内部仍为空白。如果不希望每次上电后再次手动的将配置文件烧录到FPGA芯片内部,可以通过程序固化的方式,将配置文件烧录到FPGA芯片外部掉电不丢失数据的Flash存储器中。这样在每次上电的时候便可以自动的完成配置,外部存储器就会自动的将配置文件下载到FPGA中。下面笔者来介绍一下程序固化的具体步骤。

    首先,打开File>ConvertProgramming File,在Programming file type选项中选择.jic文件格式。
1.4- 30更改烧录文件类型
    如图1.4-30所示,将待烧录文件类型更改为.jic格式后,在Configuration Device选项中选择设备配置为EPCS64,在Input files to convert 栏中,选择Flash Loader后点击Add Device按钮。随后选择FPGA器件型号,选择芯片型号为EP4CE15,弹出如图1.4-31所示窗口后点击OK
1.4- 31FPGA芯片加载外部Flash
    接下来需要将.sof配置文件转为.jic格式,点击SOF Data,如图1.4-32所示,选择相应的.sof配置文件。点击Generate按钮,生成.jic文件。
1.4- 32转换.jic格式配置文件
    回到Programmer界面,点击Add File按钮,在文件夹下选择相应的.jic文件。如图1.4-32所示,将该文件加入之后在界面上将.sof格式文件(通常情况下在第一行)取消勾选,在名称含有.jic的文件选项中,勾选以下几个选项:Program/configure,Verify,Blank-Check。勾选Program/configure时其他文件的该选项也会自动勾选。
1.4- 33选择固化配置文件
随后点击Start按钮,进行程序固化。

   拓展阅读