FPGA入门及QuartusII使用教程(内部资料)
- 格式:doc
- 大小:4.09 MB
- 文档页数:46
第3章Quartus II使用入门及FPGA设计流程Quartus II可编程逻辑开发软件是Altera公司为其FPGA/CPLD芯片设计推出的专用开发工具,是Altera公司最新一代功能更强的EDA开发软件,可完成从设计输入,综合适配,仿真到下载的整个设计过程。
Quartus II提供了一个完整的多平台开发环境,它包含FPGA和CPLD整个设计阶段的解决方案。
Quartus II集成环境包括以下内容:系统级设计,嵌入式软件开发,可编程逻辑器件设计、综合、布局和布线,验证和仿真。
Quartus II也可以直接调用Synplify Pro、ModelSim等第三方EDA 工具来完成设计任务的综合与仿真。
Quartus II与MATLAB和DSP Builder结合可以进行基于FPGA的DSP系统开发,方便快捷。
Quartus II还内嵌SOPC Builder,可实现SOPC系统的开发。
Quartus II 9.0主界面如图3.1示。
图 3.1 Quartus II 9.0界面3.1 Quartus II 基本设计流程Quartus II 设计的主要流程包括创建工程、设计输入、分析综合、编译、仿真验证、编程下载等,其一般流程如图 3.2所示。
下面以硬件描述语言输入法设计计数器为例,说明Quartus II 的设计流程。
3.1.1 创建工程使用Quartus II 设计电路被称作工程。
Quartus II 每次只进行一个工程,并将该工程的全部信息保存在同一个文件夹中。
开始一项新的电路设计,首先要创建一个文件夹,用以保存该工程的所有文件。
之后便可通过Quartus II 的文本编辑器编辑Verilog 源文件并存盘。
3.1.2 设计输入Quartus II 中包含原理图输入和硬件描述语言输入两种方法。
(1)原理图输入原理图输入的优点是,设计者不必具有诸如编译技术、硬件描述语言等新知识就能迅速入门,完成较大规模的电路系统的设计,且具有直观,易于理解的特点,适合于初学者使用。
Quartus II使用过程1、1. 建立工程,点击File->New Project Wizad点击New Project Wizard后弹出如下对话框点击NEXT,弹出指定工程名的对话框,在Diectory, Name,Top-Level Entity中如下图填写:点击Next按钮,出现添加工程文件的对话框:在这里我们先不用管它,直接按Next进行下一步,选择FPGA器件的型号:在Family下拉筐中,我们选择MAX II系列FPGA,然后在“Available devices:”中根据核心板的FPGA型号选择FPGA型号,注意在Filters一栏选上“Show Advanced Devices”以显示所有的器件型号。
执行下一步出现对话框:在相应位置处都选择NONE,点击NEXT进入工程的信息总概对话框:按Finish按钮即完成一个项目的建立。
2.建立顶层图执行File->New,弹出新建文件对话框:选择"Block Diagra m|Schematic File”按OK即建立一个空的顶层图3.添加逻辑元件(Symbol)双击顶层图图纸的空白处,弹出添加元件的对话筐:在Libraries里寻找所需要的逻辑元件,如果知道逻辑元件的名称的话,也可以直接在Name一栏敲入名字,右边的预览图即可显示元件的外观,按OK后鼠标旁边即拖着一个元件符号,在图纸上点击左键,元件即安放在图纸上。
在图纸上分别添加非门(not)、输入(input)、输出(output)二个symbol,如图所示:连线,将鼠标移到symbol连线端口的那里,鼠标变成连线,按下左键拖动鼠标到另一个symbol的连线端。
本例中,这三个symbol的连线如下图所示:分别双击input和output symbol的名字“pin_ name", "pin_ namel",将它们的名字改为a,b.在工具栏上点击Start Analysis&Synthesis,出现如下对话框。
QuartusII教程(完整版)Quartus II 的使用 (1)1 工程建立 (1)2 原理图的输入 (4)3 文本编辑(verilog) (14)4 波形仿真 (17)Quartus II 的使用在这里,首先用最简单的实例向读者展示使用Quartus II软件的全过程。
进入WINDOWS XP后,双击Quartus II图标,屏幕如图1.1所示。
图 1.1 Quartus II 管理器1.1 工程建立使用New Project Wizard,可以为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称。
还可以指定要在工程中使用的设计文件、其它源文件、用户库和EDA 工具,以及目标器件系列和器件(也可以让Quartus II 软件自动选择器件)。
建立工程的步骤如下:(1)选择File菜单下New Project Wizard ,如图1.2所示。
图 1.2 建立项目的屏幕(2)输入工作目录和项目名称,如图1.3所示。
可以直接选择Finish,以下的设置过程可以在设计过程中完成。
图 1.3 项目目录和名称(3)加入已有的设计文件到项目,可以直接选择Next,设计文件可以在设计过程中加入,如图1.4所示。
图 1.4 加入设计文件(4)选择设计器件,如图1.5所示。
图 1.5 选择器件(5)选择第三方EDA综合、仿真和时序分析工具,如图1.6所示。
图 1.6 选择EDA 工具(6)建立项目完成,显示项目概要,如图1.7所示。
图 1.7 项目概要1.2 原理图的输入原理图输入的操作步骤如下:(1)选择File 菜单下New ,新建图表/原理图文件,如图1.8 所示。
图 1.8 新建原理图文件(2)在图1.9的空白处双击,屏幕如图1.10所示:(3)在图1.10的Symbol Name 输入编辑框中键入dff后,单击ok按钮。
此时可看到光标上粘着被选的符号,将其移到合适的位置(参考图1.11)单击鼠标左键,使其固定;(4)重复(2)、(3)步骤,给图中放一个input、not、output 符号,如图1.11所示;在图1.11中,将光标移到右侧input 右侧待连线处单击鼠标左键后,再移动到D触发器的左侧单击鼠标左键,即可看到在input和D触发器之间有一条线生成;图1.9 空白的图形编辑器图1.10 选择元件符号的屏幕图1.11 放置所有元件符号的屏幕(5)重复(4)的方法将DFF和output连起来,完成所有的连线电路如图1.12所示;(6)在图1.12中,双击input_name使其衬低变黑后,再键入clk,及命名该输入信号为clk,用相同的方法将输出信号定义成Q;如图1.13所示。
FPGA设计及QUARTUS_II教程在进行FPGA设计之前,需要先了解FPGA的基本结构和原理,掌握硬件描述语言(HDL)的基本知识。
常用的HDL语言包括VHDL和Verilog,它们用于描述数字系统的结构和行为。
在FPGA设计过程中,通常包括以下几个步骤:1.设计规划:确定需求和功能,对设计进行整体规划和分析。
2.模块设计:根据设计需求,将设计分解为多个模块并进行详细设计。
3.模块仿真:使用仿真工具对各个模块进行功能验证,确保设计的正确性。
4.综合和优化:使用综合工具将HDL代码转换为逻辑门电路,并对其进行优化。
5.布局布线:将综合后的逻辑门电路映射到FPGA芯片上,并进行布局布线操作。
6.静态时序分析:对布局布线后的设计进行静态时序分析,确保设计满足时序要求。
QUARTUS II是一款常用的FPGA设计软件,由Intel公司开发。
它提供了丰富的开发工具和资源,可用于设计、仿真、综合和验证FPGA设计。
QUARTUS II支持VHDL和Verilog等HDL语言,具有强大的综合和优化功能,并提供了直观的图形界面和丰富的调试工具。
QUARTUSII教程通常包含以下内容:1.软件安装和配置:介绍QUARTUSII软件的安装和配置过程,包括选择适合的版本、设置路径和环境变量等。
2.工程创建和管理:介绍如何创建和管理QUARTUSII工程,包括添加文件、设置工作目录和文件关系等。
4.设计流程:详细介绍FPGA设计的各个步骤和操作,包括模块设计、仿真、综合、布局布线和验证等。
5.高级特性:介绍QUARTUSII软件的高级功能和特性,包括时序分析、时钟域管理和约束等。
6.项目实例:提供一些实际的FPGA设计项目实例,让读者通过实践来掌握QUARTUSII的使用技巧和方法。
总之,FPGA设计及QUARTUSII教程是帮助读者快速入门和掌握FPGA设计和QUARTUSII软件的重要资源,通过学习和实践可以提升设计能力和项目开发效率。
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、将顶层图的各个功能模块连线起来。
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、将顶层图的各个功能模块连线起来。
Quartus Ⅱ入门教程(一个Verilog 程序的编译和功能仿真)Quartus Ⅱ 是Altera 公司推出的专业EDA 工具,支持原理图输入、硬件描述语言的输入等多种输入方式。
硬件描述语言的输入方式是利用类似高级程序的设计方法来设计出数字系统。
接下来我们对这种智能的EDA 工具进行初步的学习。
使大家以后的数字系统设计更加容易上手。
●快捷工具栏:提供设置(setting ),编译(compile )等快捷方式,方便用户使用,用户也可以在菜单栏的下拉菜单找到相应的选项。
●菜单栏:软件所有功能的控制选项都可以在其下拉菜单中找到。
●信息栏:编译或者综合整个过程的详细信息显示窗口,包括编译通过信息和报错信息。
第二步:新建工程(file>new Project Wizard )1工程名称:2添加已有文件(没有已有文件的直接跳过next )3 选择芯片型号(我们选择MAX3000A 系列下的EPM3256AQC208-10芯片)(注:如果不下载到开发板上进行测试,这一步可以不用设置)4 选择仿真,综合工具(第一次实验全部利用quartus 做,三项都选None ,然后next)5 工程建立完成(点finish)第三步:添加文件(file>new> VHDL file ),新建完成之后要先保存。
第四步:编写程序以实现一个与门和或门为例,Verilog 描述源文件如下:module test(a,b,out1,out2);input a,b;Output out1,out2;assign out1=a&b;assign out2=a | b;endmodule 然后保存源文件;第五步:检查语法(点击工具栏的这个按钮(start Analysis & synthesis ))点击确定完成语法检查第六步:(锁定引脚,点击工具栏的(pin planner ))(注:如果不下载到开发板上进行测试,引脚可以不用分配)双击location为您的输入输出配置引脚。
【最新整理,下载后即可编辑】Quartus Ⅱ入门教程(一个Verilog 程序的编译和功能仿真)Quartus Ⅱ 是Altera 公司推出的专业EDA 工具,支持原理图输入、硬件描述语言的输入等多种输入方式。
硬件描述语言的输入方式是利用类似高级程序的设计方法来设计出数字系统。
接下来我们对这种智能的EDA 工具进行初步的学习。
使大家以后的数字系统设计更加容易上手。
第一步:打开软件● 快捷工具栏:提供设置(setting ),编译(compile )等快捷方式,方便用户使用,用户也可以在菜单栏的下拉菜单找到相应的选项。
● 菜单栏:软件所有功能的控制选项都可以在其下拉菜单中找到。
● 信息栏:编译或者综合整个过程的详细信息显示窗口,包括编译通过信息和报错信息。
快捷工具栏菜单栏工作区资源管理窗口任务管理窗口第二步:新建工程(file>new Project Wizard )1 工程名称:2添加已有文件(没有已有文件的直接跳过next )所建工程的保存路径 工程名称顶层模块名(芯片级设计为实体名),要求与工程名称相同如果有已经存在的文件就在该过程中添加,软件将直接将用户所添加的文件添加到工程中。
3 选择芯片型号(我们选择cylone II系列下的EP2C70F896C6芯片)(注:如果不下载到开发板上进行测试,这一步可以不用设置)所选的芯片的系列型号快速搜索所需的芯片选择芯片4 选择仿真,综合工具(第一次实验全部利用quartus做,三项都选None,然后next)5 工程建立完成(点finish)选择第三方综合工具,如果使用Quartus内部综合工具则选择none选择第三方仿真工具,如果使用Quartus内部仿真工具则选择none选择时序分析仪工程建立完成,该窗口显示所建立工程所有的芯片,其他第三方EDA工具选择情况,以及模块名等等信息。
第三步:添加文件(file>new> VHDL file),新建完成之后要先保存。
Quartus II使用流程详解不久前学习了Quartus II软件,感觉过程还是比较繁杂的,所以详细整理了一下。
这里先理一下软件的使用大致流程。
Quartus II使用流程图下面进入正题,首先打开软件创建工程,这里我们以Quartus II 13.0为例。
首先点击:File->New Project Wizard,可以看到下图中的界面。
这是一个工程创建向导,按照上述五个步骤完成工程创建。
点击Next >进入下一步,如下图所示;输入工程路径、工程名称以及顶层设计文件名称,注意不要使用中文路径。
这里可以添加一些文件,没有的话直接跳过,点击Next >;上图中是选择器件,对应好自己所使用的FPGA的型号,选择后点击Next;击Next >后,可以看到一个汇总的页面如下图,前面所以的设置都能看到。
接下来,工程创建完成了,进入设计环境如下图。
此时,工程还是一个空的,需要添加Verilog代码文件,点击File -> New,如下图所示,可以看到很多文件类型,这里选择Verilog HDL File,下面进入代码编辑窗口,如下图所示。
开始编写代码,这里写了一个简单的点亮Led的程序,如下图所示。
保存文件,双击左下角的Compile Design或者点击菜单栏的三角图标进行工程编译。
工程编译完成后,可以看到编译成功提示,下面进行管脚分配设置。
管脚分配的方法有两种:手动分配和TCL脚本文件分配,下面依次介绍这两种方法。
首先,我们介绍手动分配,点击Assignments -> Pin Planner,可以看到下图界面。
在location栏进行管脚分配,这里需查阅所使用的电路板的原理图,确认管脚号,再进行分配,分配完成后如下图所示。
关闭窗口,再次编译工程即可。
下面来介绍另外一种方法,使用Tcl文件进行管脚分配。
点击Project -> Generate Tcl File for Project…如下图所示,点击OK生成Tcl文件。
§2.3 相关技术基本知识与基本技能一、QuartusⅡ原理图输入法应用数字逻辑电路的基本知识,使用QuartusⅡ原理图输入法可非常方便地进行数字系统的设计。
应用QuartusⅡ原理图输入法,还可以把原有的使用中示规模的通用数字集成电路设计的数字系统移植到FPGA或CPLD中。
下面以一个二人表决器的设计为例说明QuartusⅡ原理图输入法的使用方法。
(一)建立工程文件夹1.新建一个文件夹作为工程项目目录首先在计算机中建立一个文件夹作为工程项目目录,此工程目录不能是根目录,比如D:,只能是根b录下的b录,比如D:\EDA _book\code\Chapter3\BiaoJueQi。
下一页§2.3 相关技术基本知识与基本技能2.建立工程项目运行Quartus Ⅱ软件,执行File=>New Project Wizard 命令,建立工程,如图2-17所示。
在图2-18界面中单击Next按钮。
在所弹出的图2-19 New Project Wizard对话框中,填写Directory,Name, Top-Level Entity等项目。
其中第一、第二、第三个文本框分别是工程项目目录、项目名称和项目顶层设计实体的名称。
单击Next按钮,出现添加工程文件的对话框,如图2-20所示。
若原来己有文件,可选择相应文件,这单直接单击Next进行下一步,选择FPGA器件的型号,如图2-21所示。
下一页上一页§2.3 相关技术基本知识与基本技能在Family下拉框中,根据需要选择一种型号的FPGA,比如Cyclone系列FPGA。
然后在“Available devices:”中根据需要的FPGA 型号选择FPGA型号,比如“EP1C3T144C8”,注意在Filters一栏中选中“Show Advanced Devices”以显示所有的器件型号。
再单击Next按钮,出现如图2-22所示对话框。
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、将顶层图的各个功能模块连线起来。
FPGA设计及QUARTUS_II教程FPGA(Field Programmable Gate Array)设计是指通过对FPGA芯片的编程来实现特定电路的功能。
FPGA芯片是一种可编程的逻辑芯片,它由一系列可配置的逻辑单元和可编程的互连网络组成,可以被编程为实现任意的数字电路。
QUARTUS II是美国Altera公司开发的一款FPGA设计软件,被广泛应用于FPGA设计领域。
QUARTUS II提供了直观的图形化界面,支持多种编程语言(如VHDL和Verilog),并具有强大的仿真和调试功能。
下面介绍FPGA设计的基本流程以及QUARTUSII的使用方法。
1.确定设计需求:首先,需要明确设计的功能以及性能要求。
对于复杂的设计,可以将其分解为多个模块,每个模块实现一个特定的功能。
2. 编写设计代码:使用VHDL或Verilog等编程语言,根据设计需求编写代码。
设计代码描述了电路的逻辑功能和数据流动。
3.进行功能仿真:在QUARTUSII中创建一个新的项目,导入设计代码,并进行仿真。
仿真可以验证设计的正确性以及性能是否达到要求。
4.进行综合和布局布线:在QUARTUSII中选择综合和布局布线选项,将设计代码综合为FPGA可以理解的底层逻辑,并进行布局布线,将逻辑单元和互连网络进行物理连接。
6.进行硬件调试:通过FPGA芯片提供的调试接口,可以对设计进行硬件调试。
QUARTUSII提供了丰富的调试工具,如信号波形查看器和时序分析器,可以帮助快速定位和修复问题。
通过学习FPGA设计及QUARTUSII的教程,可以了解FPGA的基本原理和设计流程,掌握QUARTUSII软件的使用方法,从而能够独立完成FPGA 设计项目。
同时,还需要不断实践和积累经验,才能逐渐成为一名优秀的FPGA工程师。
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,点击File->New出现如下图。
点击OK,建立完成,工程中出现一个Block1.bdf文件。
现在点“保存”是不管用的,建议随便放一个器件后点保存文件为bdf文件。
方法是在这个bdf文件空白处双击鼠标,或者右键点鼠标,点insert->symbol这里边的器件很多,可以再里边输入你所需要的器件,也可以直接点分类,根据分类查找你需要的器件。
点击File->New,选择VHDL File(根据你所使用的编程语言)点击OK后,再下边的界面就可以编写VHDL程序了。
当然可以根据自己掌握的语言种类进行编程。
VHDL语言,注意:保存的文件名字,必须与实体名字一致,否则编译会出错。
设置当前为最高实体。
点击那个紫色的三角,进行编译下面就是产生模块了。
如图点击就可以生成模块完成后,回到bdf主界面。
双击该界面,再Project下拉栏,就会出现刚才所编译文件生成的模块,左键点击就可以将其放入主原理图实体中,并且今后如果重新改变VHDL程序,必须走这个过程,先设置最高实体,然后编译,产生模块,最后要添加这样如下的过程。
放置模块的时候,通过自己的程序编译产生的模块,会在Project目录下,如图所示特别注意:已经做好的并且放入到原理图的模块程序如果需要改动,改动后也必须先编译,后产生模块,最后按照如下所示进行模块更新。
根据需求进行选择一下以后每次要用的时候,都可以双击鼠标,进入project里边进行选择,进行使用。
右键点击模块,点Generate-……引脚也可以自己设置输入输出引脚并且命名。
设置当前实体为最高实体,再次进行编译编译完成后,要分配引脚,通常分配引脚有两种方式,一种是直接在工程分配,这种方式对于引脚较少比较方便,如下图所示。
选择PIN双击引脚分配处的to和location,就可以确定应用的FPGA引脚分配情况。
分配好引脚后,点击保存,再看原理图,每个引脚后边都有一个“小尾巴”,表示信号线的实际物理引脚分配情况。
然后再编译。
最后在点击TOOL->Programmer,或者直接点击下载图标就会出现下载对话框点击Hardware Setup 如果你没插USB-BLASTER,打开后不会有显示,如果插上后,这里就会显示有一个硬件可以选择,右上位置选择下载方式。
注意:JTAG模式和AS模式接口是不同的选择好USB-BLASTER后,点Close,然后点Start当前选择的是JTAG模式,因此下载程序到RAM,可以看调试结果。
至此,FPGA的原理图制作,代码编写流程及下载流程已经全部完毕。
现在以一个简单的分频器来讲一下。
第一件事,如同单片机的最小系统一样,FPGA的系统需要一个时钟源作为支撑,FPGA内部有个PLL(锁相环)资源,这个PLL可以对输入频率进行倍频。
因此,几乎在每个系统设计的时候,都需要对这个PLL进行设置。
如下所示选择第一个点NEXT,往下进行选择IO栏目下的ALTPLL,给这个模块起一个名字叫PLL然后点NEXT根据提示进行选择,选择好了后,点击进入下一个设置在这里,把所有的勾全部去掉就可以,然后一直点下一步,一直到下面图示,每个芯片可以设置输出的频率个数不同,当前我用的ep2s60总共有2个PLL,每个PLL可以设置6个不同的频率输出。
现在就可以一直点下一步,直到Finish就可以。
然后再Project里边将PLL放置到原理图上。
新建一个test_div的程序,程序代码如下library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity test_div isport(clkin:in std_logic;clkout1:out std_logic;clkout2:out std_logic);end test_div;architecture fenpin_arc of test_div issignal count1:integer range 0 to 7; --计数寄存器16分频signal clkbuff1:std_logic;signal count2:integer range 0 to 3; --计数寄存器8分频signal clkbuff2:std_logic;beginprocess(clkin,count1,count2)beginif rising_edge(clkin) then --计数、分频1if (count1 >= 7) thencount1 <= 0;clkbuff1 <= not clkbuff1;elsecount1 <= count1 + 1;clkout1 <= clkbuff1;end if;end if;if rising_edge(clkin) then --计数、分频2if (count2 >= 3) thencount2 <= 0;clkbuff2 <= not clkbuff2;elsecount2 <= count2 + 1;clkout2 <= clkbuff2;end if;end if;end process;end fenpin_arc;保存程序,设置当前为最高实体,进行编译,编译后产生模块,最终也可以放在原理图上了。
用鼠标将所需要连接的线连接起来,然后设置当前为最高实体,进行编译,分配引脚,编译,下载就可以完成了。
同时,除了下载进FPGA中进行调试外,我们还可以提前利用Quartus进行时序仿真。
如上边这个程序,生成一个Block放置在原理图上,然后再加上一个PLL,连接起来后,以下图示:点击Processing->Simulation Debug->Current Vector Inputs在name处点右键,选择Inset->Inset Node or Bus点击Node Finder,进入可以选择引脚,通常我习惯于显示所有引脚,在Filter处选择all,当然也可以选择一些你需要的引脚,其他的引脚不显示,然后点击List,然后再点击加入符号,如图所示点击OK,一直回到仿真页面,鼠标左键单击输入信号,给输入信号加所需信号,如clkin,是时钟信号,直接点击时钟符号,就可以进行设置设置好输入后,可以点Edit菜单下的End Time可以选择仿真多长时间。
全部设置好后,点保存,起好名字,然后点Start simulation,便开始进行时序仿真。
仿真结束后,可以观察信号时序。
第三章MATLAB、DSP BUILDER、QUARTUS联合仿真首先我们了解一个背景,现在在DSP算法软件中最牛的毋庸置疑的就是Matlab了。
N多人在用它搭建模型。
我们可以把Matlab分为matlab和simulink 两部分。
Matlab更多的是对数组进行一系列的计算,而这些计算式静态的,纯粹算法上的。
而simulink是使用模块化的方式来搭建一个平台,这个模型才是动态的。
当我们用matlab做成一个算法的时候,这个算法在实际应用中有可能可以实现,当然也有可能实现不了,更多的是一种理论上的公式。