1、1ECNU Display Lab Confidential内容介绍1.FPGA介绍2.开发环境3.FPGA设计流程4.一个简单的入门实验2ECNU Display Lab Confidential1.FPGA介绍FPGA(Field Programmable Gate Array)即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种 半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA的使用非常灵活,同一片FPGA通过不同的编程数据可 以产生不同的电路功能。FPGA在通信
2、、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到了广泛应用。随着功耗和成本的进一步降低,FPGA还将进入更多的应用 领域。目前市场上最大的两个FPGA厂商分别为Xilinx和Altera。3ECNU Display Lab Confidential我们实验室的设计4ECNU Display Lab ConfidentialFPGA的结构FPGA的三类基本资源包括:可编程逻辑功能块查找表(Look-Up Table)进位链(Cascade Chain)可编程寄存器(Flip-Flop)可编程输入/输出块可编程互连资源5ECNU Display Lab Confidential可编程
3、逻辑块可编程逻辑块包含了:查找表(Look-Up Table),进位链(Cascade Chain),可编程寄存器(Flip-Flop)。如下图中所示的Cyclone III的Logic Elements 方框图。LUTC ChainReg(FF)6ECNU Display Lab Confidential2.开发环境集成开发平台(提供了FPGA各个开发环境的所有工具)Altera公司提供的Quartus IIXilinx公司提供的ISE其他的单独的工具(业界通用,性能很好)用于仿真的Modelsim用于硬件描述语言(HDL)综合的Synplify7ECNU Display Lab Confi
4、dential3.FPGA设计流程1.设计输入(Verilog HDL/原理图)设计一般是以各种硬件描述语言和原理图的形式存在的。目前常用的是Verilog HDL,而原理图常常用于直观地描述顶层设计。2.功能仿真(RTL-寄存器传输级)用于对设计进行功能上的仿真和调试,一般用Modelsim3.编译/综合(生成网表,适配到器件)FPGA的编译主要包括两个部分:综合与适配。综合器(synthesis)将设计输入生成为标准的逻辑网表。而适配器(fitter)将逻辑意义上的网表适配(布局布线)到具体的FPGA器件资源上去。4.时序仿真验证(时序上和功能上)为了验证编译后的设计能否满足时序要求(如运
5、行频率),我们可以使用TimeQuest等时序分析工具来验证。同时为了验证设计的逻辑功能是否满足,我们使用modelsim等仿真工具来验证。5.下载与调试设计好的文件经编译组装(assemble)后生成FPGA配置文件,将这些配置文件下载到FPGA就可以开始进行板级验证和调试。设计输入功能仿真综合适配(布局布线)时序仿真验证下载调试8ECNU Display Lab Confidential9ECNU Display Lab Confidential10ECNU Display Lab Confidential4.一个简单的入门实验实验介绍参考官方入门指导,用QuartusII平台设计一个简单
6、的电路,然后下载到DE2开发板上进行验证。实验目的1.熟悉Quartus II环境2.实践FPGA开发流程实验内容1.打开,熟悉QuartusII平台2.新建一个工程,并进行相应设置3.输入verilog HDL设计代码4.编译(综合)设计5.管脚分配6.对电路进行仿真7.下载程序(对DE2上的FPGA进行配置)8.对所设计电路进行验证实验参考1.tut_intro_verilog.pdf(DE2官方verilog入门指导)2.DE2_schematics.pdf(DE2原理图)11ECNU Display Lab Confidential4.1新建工程(1)启动Quartus II,选择Fi
7、le New Project Wizard,弹出窗口12ECNU Display Lab Confidential(2)选择Next,如下图输入项目路径和项目名。接着按Next,出现提示:输入的项目文件夹不存在,是否要创建。选择“是”。13ECNU Display Lab Confidential(3)新建项目向导里可以添加已存在的文件,假设我们这个项目没有要包含已存在的文件,在下图选择Next 14ECNU Display Lab Confidential(4)我们需要指定实现电路的目标器件,在下图中Device family的Family中选择Cyclone II,在Available d
8、evices里选择EP2C35F672C6。(DE2上使用的型号),选择Next。15ECNU Display Lab Confidential(5)在下图里我们可以指定第三方的开发工具,本文只用到Quartus II,未用其他工具,所以选择Next 16ECNU Display Lab Confidential(6)显示工程摘要,按Finish,返回Quartus II的主界面。17ECNU Display Lab Confidential4.2 用Verilog代码设计输入 本实验以实现一个2路输入控制灯开关的电路为例,如下图,x1,x2为2个开关,f为电路输出。使用Quartus II的
9、文本编辑器输入设计点击菜单栏File New出现下图,选择Verilog HDL File,ok确认。然后在编辑器里编辑代码如下。最后后点击菜单栏File Save as,保存文件名为light.v 18ECNU Display Lab Confidential4.3 编译设计的电路 菜单栏中点击Processing Start Compilation,或者单击 开始编译,编译完成,会有提示。编译成功,会看到下图所示的编译报告,在Analysis&Synthesis Equntions 里可以看到f=x1$x2,这里$表示异或。当 然,如果编译提示错误,可以在信息栏双击错误提示,光标会回到错误
10、处,修正,重新编译即可。19ECNU Display Lab Confidential4.4 管脚分配我们用到2个拨动开关SW0和SW1提供外部输入,对应的FPGA管脚是N25和 N26。输出f练到LEDG0,对应的FPGA管脚是AE22。用Assignment Editor指定管脚菜单栏点击Assignments Assignment Editor,在Category选择Pin,双击To列的选择管脚x1,双击Location,选择Pin_N25,同样操 作分配x2和f。如下图。然后保存:File Save.20ECNU Display Lab Confidential4.5仿真设计在仿真之前
11、,需要创建测试用的波形文件:(1)File New 在窗口中选择Vector Waveform File,ok确认。21ECNU Display Lab Confidential(2)保存文件为light.vwf设置仿真时间:Edit End time,设置为200ns。选择View Fit in Window 调节窗口显示的效果如下图22ECNU Display Lab Confidential(3)添加电路仿真需要的节点Edit Insert Nodes or Bus 打开下图所示的窗口,单击Node Finder在图 21所示的窗口里,filter选择Pins:all,单击List,列出输入、出节点,单击选择,ok确认。23ECNU Display Lab Confidential(4)设定x1、x2的值,如下图。保存。(5)功能仿真选择Assignments Settings 打开设置窗口,仿真模式选择Functional,如右图。Ok确认。仿真之 前,需要生产功能仿真连线表:Processing Generate Functional Simulation Netlist。通过Processing Start Simulation 或者 开始仿真。(6)时序仿真当通过功能仿真确认设计的电路功能正确之后,开始时序仿真。在右图的仿真模式选择Timing,然后开始仿真
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1