• 2.91 MB
  • 2022-04-29 14:44:40 发布

最新FPGA开发流程课件PPT.ppt

  • 48页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'FPGA开发流程 FPGA(Field-ProgrammableGateArray):即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合和布局快速地烧至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。工作原理:FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程. FPGA:芯片主要由7部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。FPGA内的I/O按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。配置逻辑块(CLB):是FPGA内的基本逻辑单元。CLB的实际数量和特性会依器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(多路复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的Slice和附加逻辑构成。每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。数字时钟管理模块(DCM):业内大多数FPGA均提供数字时钟管理(Xilinx的全部FPGA均具有这种特性)。Xilinx推出最先进的FPGA提供数字时钟管理和相位环路锁定。相位环路锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。 ISE功能简介Xilinx是全球领先的可编程逻辑完整解决方案的供应商,其开发工具ISE也在不断地升级。ISE具有界面友好、操作简单的特点,再加上Xilinx的FPGA芯片占有很大的市场,使其成为非常通用的FPGA工具软件。ISE作为高效的EDA设计工具集合,与第三方软件扬长补短,使软件功能越来越强大,为用户提供了更加丰富的Xilinx平台。ISE的主要功能包括设计输入、综合、仿真、实现和下载,涵盖了FPGA开发的全过程,从功能上讲,其工作流程无需借助任何第三方EDA软件。 ISE功能简介设计输入:ISE提供的设计输入工具包括用于HDL代码输入和查看报告的ISE文本编辑器(TheISETextEditor),用于原理图编辑的工具ECS(TheEngineeringCaptureSystem),用于生成IPCore的CoreGenerator,用于状态机设计的StateCAD以及用于约束文件编辑的ConstraintEditor。综合:ISE的综合工具不但包含了Xilinx自身提供的综合工具XST,同时还可以内嵌MentorGraphics公司的LeonardoSpectrum和Synplicity公司的Synplify,实现无缝链接。 ISE功能简介仿真:ISE本身自带了一个具有图形化波形编辑功能的仿真工具HDLBencher,同时又提供了使用ModelTech公司的Modelsim进行仿真的接口。实现:此功能包括了翻译、映射、布局布线等,还具备时序分析、管脚指定以及增量设计等高级功能。下载:下载功能包括了BitGen,用于将布局布线后的设计文件转换为位流文件,还包括了ImPACT,功能是进行设备配置和通信,控制将程序烧写到FPGA芯片中去。 ISE软件基本硬件要求:CPU奔腾3以上,内存大于256MB,硬盘大于10GB的安装环境。本实验指导使用的集成环境是ISE13.1。 使用ISE13.1完成一个8255IPcore的设计,其内容包括:工程的建立;8255IPcore的设计;设计综合和查看综合结果;设计下载到FPGA芯片实验连线说明。 ISE用户界面 ISE软件的用户界面标题栏:主要显示当前工程的名称和当前打开的文件名称。菜单栏:主要包括文件(File)、编辑(Edit)、视图(View)、工程(Project)、源文件(Source)、操作(Process)、窗口(Window)和帮助(Help)等8个下拉菜单。工具栏:主要包含了常用命令的快捷按钮。灵活运用工具栏可以极大地方便用户在ISE中的操作。在工程管理中,此工具栏的运用极为频繁。工程管理区:提供了工程以及其相关文件的显示和管理功能,主要包括源文件视图(SourceView),快照视图(SnapshotView)和库视图(LibraryView)。源文件编辑区:源文件编辑区提供了源代码的编辑功能。过程管理区:本窗口显示的内容取决于工程管理区中所选定的文件。相关操作和FPGA设计流程紧密相关,包括设计输入、综合、仿真、实现和生成配置文件等。信息显示区:显示ISE中的处理信息,如操作步骤信息、警告信息和错误信息等。状态栏:显示相关命令和操作的信息 开发环境的启动 新建工程 新建工程输入工程名top_8255及其要保存的位置 新建工程选择器件参数 工作区可看到新建的工程top_8255 添加源文件 也可以选择newsource手动输入verilog文件。 综合综合,就是将HDL语言、原理图等设计输入翻译成由与、或、非门和RAM、触发器等基本逻辑单元的逻辑连接(网表),并根据目标和要求(约束条件)优化所生成的逻辑连接,生成EDF文件。综合工具可以使用第三方EDA工具(如Synplify/SynplifyPro),Xilinx在ISE中提供了自带的综合工具XST(XilinxSynthesisTechnology),XST内嵌在ISE3以后的版本中,并且在不断完善。此外,由于XST是Xilinx公司自己的综合工具,对于部分Xilinx芯片独有的结构具有更好的融合性。完成了输入、仿真以及管脚分配后就可以进行综合和实现了。在过程管理区双击Synthesize-XST,就可以完成综合。 双击checksyntax检查verilog文件有无语法错误若没有,会出现绿色的勾,有警告会出现叹号,有错误会出现红色的叉。双击synthesize开始综合 添加约束文件FPGA设计中的约束文件有3类:用户设计文件(.UCF文件)、网表约束文件(.NCF文件)以及物理约束文件(.PCF文件),可以完成时序约束、管脚约束以及区域约束。3类约束文件的关系为:用户在设计输入阶段编写UCF文件,然后UCF文件和设计综合后生成NCF文件,最后再经过实现后生成PCF文件。本节主要介绍UCF文件的使用方法。约束文件的后缀是.ucf,所以一般也被称为UCF文件。创建约束文件有两种方法,一种是通过新建方式,另一种则是利用过程管理器来完成。第一种方法:新建一个源文件,在代码类型中选取“ImplementationConstrainsFile”,在“FileName”中输入文件名。单击“Next”按键进入模块选择对话框,选择需要约束的模块,然后单击“Next”进入下一页,再单击“Finish”按键完成约束文件的创建。第二种方法:在工程管理区中,将“Sourcefor”设置为“Synthesis/Implementation”。“ConstrainsEditor”是一个专用的约束文件编辑器,双击过程管理区中“UserConstrains”下的“CreateTimingConstrains”就可以打开“ConstrainsEditor”。 添加约束文件在UCF文件中描述管脚分配的语法为:NET“端口名称”LOC=引脚编号;需要注意的是,UCF文件是大小敏感的,端口名称必须和源代码中的名字一致,且端口名字不能和关键字一样。但是关键字NET是不区分大小写的。在工程管理区中,将“Sourcefor”设置为“Synthesis/Implementation”,然后双击过程管理区中“UserConstrains”下的“EditConstraints(Text)”就可以打开约束文件编辑器,就会新建当前工程的约束文件。约束文件编辑窗口 添加用户约束 约束XC3S200部分引脚分配如图 实现所谓实现(Implement)是将综合输出的逻辑网表翻译成所选器件的底层模块与硬件原语,将设计映射到器件结构上,进行布局布线,达到在选定器件上实现设计的目的。实现主要分为3个步骤:翻译(Translate)逻辑网表,映射(Map)到器件单元与布局布线(Place&Route)。翻译的主要作用是将综合输出的逻辑网表翻译为Xilinx特定器件的底层结构和硬件原语。映射的主要作用是将设计映射到具体型号的器件上(LUT、FF、Carry等)。布局布线步骤调用Xilinx布局布线器,根据用户约束和物理约束,对设计模块进行实际的布局,并根据设计连接,对布局后的模块进行布线,产生FPGA/CPLD配置文件。 实现在翻译过程中,设计文件和约束文件将被合并生成NGD(原始类型数据库)输出文件和BLD文件,其中NGD文件包含了当前设计的全部逻辑描述,BLD文件是转换的运行和结果报告。在映射过程中,由转换流程生成的NGD文件将被映射为目标器件的特定物理逻辑单元,并保存在NCD(展开的物理设计数据库)文件中。映射的输入文件包括NGD、NMC、NCD和MFP(映射布局规划器)文件,输出文件包括NCD、PCF(物理约束文件)、NGM和MRP(映射报告)文件。布局和布线(Place&Route):通过读取当前设计的NCD文件,布局布线将映射后生成的物理逻辑单元在目标系统中放置和连线,并提取相应的时间参数。布局布线的输入文件包括NCD和PCF模板文件,输出文件包括NCD、DLY(延时文件)、PAD和PAR文件。 实现 基于ISE的芯片编程生成二进制编程文件并下载到芯片中,也就是所谓的硬件编程和下载,是FPGA设计的最后一步。生成编程文件在ISE中的操作非常简单,在过程管理区中双击GenerateProgrammingFile选项即可完成。生成的编程文件放在ISE工程目录下,是一个扩展名为.bit的位流文件。双击过程管理区的GenerateProgrammingFile选项下面的ConfigureDevice(iMPACT)项,然后在弹出的ConfigureDevice对话框中选取合适的下载方式,ISE会自动连接FPGA设备。成功检测到设备后会出现iMPACT的主界面。 双击generateprogramingfile生成配置文件。 下载设计到FPGA芯片准备工作:将xilinx的USB-JTAG电缆分别和计算机USB接口及FPGA扩展板上的JTAG10针插口连接;计算机自动安装JTAG驱动程序;把扩展模块左下角红色钉子+5V接实验箱的+5V电源,黑色钉子GND接实验箱的GND,给实验箱上电,扩展板电源灯亮,实验箱电源亮. 基于ISE的芯片编程iMPACT主界面 基于ISE的芯片编程在主界面的中间区域内单击鼠标右键,并选择菜单的“InitializeChain”选项,如果FPGA配置电路JTAG测试正确,则会将JTAG链上扫描到的所有芯片在iMPACT主界面上列出来iMPACT主界面扫描正确后的窗口界面两个芯片连接在JTAG链路上,Xcf01s-Xilinx的串行Flash芯片,xc3s200-Xilinx的FPGA芯片,点击“Yes”按钮 基于ISE的芯片编程连续点击cancel退出前1个设备的配置,在第2个选中综合实现之后的bit文件选择位流文件 基于ISE的芯片编程选中下载文件后,单击“打开”按键,在iMPACT的主界面会出现一个芯片模型以及位流文件的标志,在此标志上单击鼠标右键,在弹出的对话框中选择Program选项,就可以对FPGA设备进行编程对FPGA设备进行编程示意图 基于ISE的芯片编程FPGA配置成功指示界面 参考电子资料:Verilog经典教程FPGA操作说明基于FPGA的的设计新一代USB2.0微机接口实验指导书 孟郊孟郊(751年-814年),字东野,唐代诗人,唐朝湖州武康(今浙江德清)人,汉族。现存诗歌500多首,以短篇的五言古诗最多,没有一首律诗。代表作有《游子吟》。有“诗囚”之称,又与贾岛齐名,人称“郊寒岛瘦”。 游子吟慈母手中线,游子身上衣。临行密密缝,意恐迟迟归。谁言寸草心,报得三春晖。 结爱心心复心心,结爱务在深。一度欲离别,千回结衣襟。结妾独守志,结君早归意。始知结衣裳,不如结心肠。坐结行亦结,结尽百年月。 列女操梧桐相待老,鸳鸯会双死。贞妇贵殉夫,舍生亦如此。波澜誓不起,妾心井中水。 登科后昔日龌龊不足夸,今朝放荡思无涯。春风得意马蹄疾,一日看尽长安花。 在艺术手法上,孟郊的诗歌中出现了大历、贞元诗歌所没有、在这以前也不曾有过的新特点,即韩愈《贞曜先生墓志铭》中所说的“钩章棘句,掏擢胃肾“式的险奇艰涩。这一方面与他刻意求工,精思苦吟有关,另一方面与他心情郁闷、情绪低沉有关。在《夜感自遣》中,他说自己“夜学晓不休,苦吟鬼神愁。如何不自闲,心与身为仇”。苦苦地写诗,就必然要道人所未道,刻意寻求新词句,用过去诗中少见的僻字险韵与生冷意象;而心理的压抑、不平,使得他所追求的新的语言表现多带有冷涩、荒寞、枯槁的色彩和意味,从而尽可能把内心的愁哀刻划得入骨和惊耸人心,如: 老虫干铁鸣,惊兽孤玉咆(《秋怀十五首》之十二);病骨可剸物,酸呻亦成文。瘦攒如此枯,壮落随西曛(同上之五);冷露滴梦破,峭风梳骨寒。席上印病文,肠中转愁盘(同上之二);蜿蜒相缠掣,荦确亦回旋。黑草濯铁发,白苔浮冰钱(《石淙十首》之四);劲飙刷幽视,怒水慑余湍(同上之十)。'