FPGA入门及QuartusII使用教程(内部资料)

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FPGA入门及Quartus II使用教程

FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在可编程阵列逻辑PAL(Programmable Array Logic)、门阵列逻辑GAL(Gate Array Logic)等可编程器件的基础上上进一步发展的产物。

可以这样讲,ASIC(内部的所有资源,是Application Specific Integrated Circuit )用积木堆积起来的小房子,可以是一个欧美风情的房子,还可以是一个北京四合院…….而FPGA内部就可以说是一个个小积木,也就是内部有大量的资源提供给我们,根据我们的需求进行内部的设计。并且可以通过软件仿真,我们可以事先验证设计的正确性。

第一章 FPGA的基本开发流程

下面我们基于Altera 公司的QuantusII 软件来说明FPGA 的开发流程。

下图是一个典型的基于Quartus II的FPGA开发整体流程框图。

1、建立工程师每个开发过程的开始,Quartus II以工程为单位对设计过程进行管理。

2、建立顶层图。可以这样理解,顶层图是一个容器,将整个工程的各个模块包

容在里边,编译的时候就将这些模块整合在一起。也可以理解为它是一个大元件,比如一个单片机,内部包含各个模块,编译的时候就是生成一个这样的大元件。

3、采用ALTERA公司提供的LPM功能模块。Quartus软件环境包含了大量的常用功能模块,比如计数器、累加器、比较器等等。

4、自己建立模块。由于有些设计中现有的模块功能不能满足具体设计的要求,那就只能自己设计。使用硬件描述语言,当然也可以用原理图的输入方法,可以独立的把它们当成一个工程来设计,并且生成一个模块符号(Symbol),类似于那些LPM功能模块。这里可以理解为,如果我们需求的滤波器,没有现成的合适的,那我们可以通过LC自己来搭建一个滤波器。

5、将顶层图的各个功能模块连线起来。这个过程类似电路图设计,把各个芯片连起来,组成电路系统。

6、系统的功能原理图至此已经基本出炉了,下一步就是选择芯片字载体,分配引脚,设置编译选项等等。

7、编译。这个过程类似软件开发里德编译,但是实际上这个过程比软件的编译复杂的多,因为它最终要实现硬件里边的物理结构,包含了优化逻辑的组合,综合逻辑以及布线等步骤。

8、编译后会生成2个文件,一个是*.sof文件,一个是*.pof文件,前者可以通过JTAG方式下载到FPGA内部,可以进行调试,但断电后数据丢失;后者通过AS或者PS方式下载到FPGA的配置芯片里边(EEPROM或者FLASH),重新上电后FPGA会通过配置将数据读出。

9、对于复杂的设计,工程编译好了,我们可以通过Quartus软件或者其他仿真软件来对设计进行反复仿真和验证,直到满足要求。(主要是时序仿真)。

第二章基于Quartus II的实例

一、建立工程

软件。Quartus II首先,打开

接下来,建议一个新工程

第一行,是所建工程的路径,第二工程项目名称,第三项,是填好后,如下图下边一直点击NEXT,直到出现以下界面

Family里边选择Sratix II,Available devices里边选择EP2S60F672C5(具体内容根

据你所使用的芯片所决定),接着点NEXT,不需要做任何修改了,一直点到Finish。到此为止,工程已经建立完成。需要建立一个Block Diagram/Schematic

出现如下图。File->New,点击File

文件。,建立完成,工程中出现一个点击OKBlock1.bdf

现在点“保存”是不管用的,建议随便放一个器件后点保存文件为bdf文件。方法是在这个bdf文件空白处双击鼠标,或者右键点鼠标,点insert->symbol

这里边的器件很多,可以再里边输入你所需要的器件,也可以直接点分类,根据分类查找你需要的器件。

点击File->New,选择VHDL File(根据你所使用的编程语言)

程序了。OK后,再下边的界面就可以编写VHDL点击

当然可以根据自己掌握的语言种类进行编程。.

语言,注意:保存的文件名字,必须与实体名字一致,否则编译会出VHDL 错。

设置当前为最高实体。

点击那个紫色的三角,进行编译.

下面就是产生模块了。如图点击就可以

下拉栏,就会出现刚才所Project主界面。双击该界面,再生成模块完成后,回到bdf编译文件生成的模块,左键点击就可以将其放入主原理图实体中,并且今后如果重新改变程序,必须走这个过程,先设置最高实体,然后编译,产生模块,最后要添加这样如VHDL 下的过程。

放置模块的时候,通过自己的程序编译产生的模块,会在Project目录下,如图所示

特别注意:已经做好的并且放入到原理图的模块程序如果需要改动,改动后也必须先编译,后产生模块,最后按照如下所示进行模块更新。

根据需求进行选择一下

以后每次要用的时候,都可以双击鼠标,进入project里边进行选择,进行使用。右键点击模块,点Generate-……

引脚也可以自己设置输入输出引脚并且命名。

设置当前实体为最高实体,再次进行编译.

一种是直接在工程分通常分配引脚有两种方式,编译完成后,要分配引脚,配,这种方式对于引脚较少比较方便,如下图所示。

PIN 选择

引脚分配情况。,就可以确定应用的to和locationFPGA双击引脚分配处的

,分配好引脚后,点击保存,再看原理图,每个引脚后边都有一个“小尾巴”表示信号线的实际物理引脚分配情况。

TOOL->Programmer然后再编译。最后在点击,或者直接点击下载图标

就会出现下载对话框.

,打开后不会有显示,如Setup 如果你没插USB-BLASTER点击Hardware

果插上后,这里就会显示有一个硬件可以选择,右上位置选择下载方式。注意:模式接口是不同的JTAG模式和AS

相关文档
最新文档