1 / 34

FPGA 系统设计与实践

FPGA 系统设计与实践. 综合. 第五章 综合. 内容提要 本章介绍了 Xilinx 公司的 ISE5.2 中的综合工具 XST 的综合属性、 HDL 代码参数设置、专用参数选项设置,使用 XST 综合设计、实行设计的步骤与方法。 ISE5.2 集成的下载配置工具 iMPACT 的结构、 操作步骤与方法。 Altera 公司的 Qua rtusII3.0 编译器和编程器的使用 步骤与方法。. 第五章 综合. 知识要点 : 综合,实行,配置, 综合工具 XST, 下载配置工具 iMPACT, 编译器,编程器 教学建议:

vega
Télécharger la présentation

FPGA 系统设计与实践

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FPGA系统设计与实践 综合

  2. 第五章 综合 • 内容提要 • 本章介绍了Xilinx公司的ISE5.2中的综合工具XST的综合属性、HDL代码参数设置、专用参数选项设置,使用XST综合设计、实行设计的步骤与方法。ISE5.2集成的下载配置工具iMPACT的结构、操作步骤与方法。Altera公司的QuartusII3.0编译器和编程器的使用步骤与方法。

  3. 第五章 综合 • 知识要点: • 综合,实行,配置,综合工具XST,下载配置工具iMPACT,编译器,编程器 • 教学建议: • 本章的重点是掌握Xilinx公司 ISE5.2中的综合工具XST和下载配置工具iMPACT,Altera公司的QuartusII3.0编译器的结构特点与使用方法。

  4. 第五章 综合 • 建议学时数为4学时。注意区分Xilinx公司的综合、实行、配置工具与Altera公司的编译与编程工具的不同点。在学习过程中,应结合第8章中的应用实例设计,去掌握ISE5.2综合、实行、配置或者QuartusII3.0编译与编程的步骤、属性设置及技巧。注意综合、实行、配置或者编译与编程中属性参数的设置对设计的影响。应通过大量的实际设计过程加深对ISE5.2综合、实行、配置或者QuartusII3.0编译与编程的理解。

  5. FPGA系统设计与实践 ISE5.2中的综合工具XST

  6. 5.1 ISE5.2中的综合工具XST • XST(Xilinx Synthesis Technology)是Xilinx ISE内嵌的综合工具。虽然XST与Synplify Pro等业界流行的综合工具相比特点并不突出,功能也不全面,但是Xilinx对自己的FPGA/CPLD内部的结构最为了解,所以XST对Xilinx器件的支持也最为直接,更重要的是XST内嵌在ISE中,安装ISE后可以直接使用,不需要另外付费。

  7. 5.1 ISE5.2中的综合工具XST • ISE中XST设计流程的综合阶段约束文件与实现阶段约束文件的概念并不分明,综合阶段的约束条件常常通过实现阶段的约束文件来完成。

  8. 5.1 ISE5.2中的综合工具XST • XST的综合约束文件是XCF(XST Constrain File),而在布局布线阶段,最重要的约束文件是用户约束文件UCF(User Constraint File),两者有着千丝万缕的关系,UCF几乎支持XCF的所有约束语言与命令。通常在使用XST综合流程时,仅仅通过综合属性设置来设置全局性的综合策略与参数,细化的约束是通过实现阶段的约束文件UCF完成的。

  9. 5.1.1 XST的综合属性 • XST是内嵌在ISE中的,使用起来也非常方便。XST综合是自动完成的,但是用户可以对其相关的参数进行设置。参数设置的目的是使XST根据设计者的需要完成综合过程,以便达到设计要求。

  10. 1.选择XST综合工具 选择综合工具

  11. 2.XST综合属性 • XST的可设置参数比较多,适当的设置综合参数,可以在一定程度上提高综合质量。综合参数主要是一些综合策略,大部分是通过选择来完成参数的设定。下面对XST中的参数进行简单的介绍。在Process for current sources中的Synthesize图标上单击鼠标右键,然后选择Properties,弹出的综合属性设置对话框如图所示。

  12. 2.XST综合属性 综合对话框

  13. 2.XST综合属性 • (1)综合目标(Optimization Goal) • 综合目标设置可以确定综合时的全局优化目标是面积(Area)还是速度(Speed)。由于大多数情况下,系统运行的速度是相当重要的,所以在缺省(默认)状态下,此属性的值为速度(Speed)。

  14. 2.XST综合属性 • (2)综合难度(Optimization Effort) • 综合难度用来指定XST的综合工作的程度,有两个值可供选择,如果对速度或者面积要求不是很高可以选择Normal,否则选择High。这里有一个问题需要注意,设计者不要寄希望于XST的综合效果,并不是选择High就一定得到好的综合结果,真正重要的是设计者要保证设计的质量。

  15. 2.XST综合属性 • (3)综合约束文件(Synthesis Constraint File) • Synthesis Constraint File用于指定综合约束文件的所在路径。 (4)使用综合约束文件(Use Synthesis Constraint File) 如果设计中有综合约束文件,那么在指定综合约束文件的所在路径后在此参数后打上勾,使XST在综合时受到综合约束文件的约束。

  16. 2.XST综合属性 • (5)全局优化目标(Global Optimization Goal) • 全局优化目标参数仅对FPGA有效,它用于一些时钟优化策略,包括的优化属性有: • 所有时钟节点约束(ALLCLOCKNETS) • 输入偏移约束(OFFSET_IN_BEFORE) • 输出偏移约束(OFFSET_OUT_AFTER) • 网线最大延迟约束(MAXIMUM_DELAY) • 输入到输出约束(INPAD_TO_OUTPAD)

  17. 2.XST综合属性 这些约束主要用于指定寄存器之间,输入引脚到第一级寄存器之间,末级寄存器到输出引脚之间,输入引脚到输出引脚之间的约束策略。

  18. 2.XST综合属性 • (6)生成寄存器传输级原理图(Generate RTL Schematic) • XST可以将综合结果生成RTL视图。通过RTL视图可以分析设计和修改设计。选择YES或NO确定是否需要生成RTL视图。

  19. 2.XST综合属性 • (7)写时序约束条件(Write Timing Constrains) • Write Timing Constrains参数仅对FPGA有效,用以指定在HDL源代码或是XST约束文件中指定的时序约束关系是否对Xilinx的NGC网表有效。

  20. 3.HDL代码参数设置 • HDL代码参数设置与XST的编译有关,也就是说告诉编译工具如何理解HDL代码。HDL代码参数选项对话框如右图所示。

  21. 3.HDL代码参数设置 • (1)有限状态机编码方式(FSM Encoding Algorithm) • 有限状态机有多种编码方式,比较常见的有: 一位热码(One-Hot)、顺序编码(Sequential)、格雷码(Gray)等,在默认状态下,XST的有限状态机编码方式为自动编码(Auto),即根据器件中的资源进行有效的编码。

  22. 3.HDL代码参数设置 • (2)RAM的提取方式(RAM Extraction) • RAM Extraction参数用来指定是否使用RAM宏单元。 • (3)RAM实现的类型(RAM Style) • RAM Style参数仅对FPGA有效。FPGA中含Block RAM(有块RAM)和可以形成Distributed RAM(分布式RAM),可以通过设置RAM Style使XST从代码中提取需要的RAM类型。

  23. 3.HDL代码参数设置 • (4)ROM的提取方式(ROM Extraction) • ROM Extraction参数用来指定是否使用RAM宏单元。 • (5)ROM实现的类型(ROM Style) • ROM Style参数仅对FPGA有效。FPGA中含有块RAM(Block RAM)和可以形成分布式RAM(Distributed RAM),可以通过设置ROM Style使XST从代码中提取需要的ROM类型。

  24. 3.HDL代码参数设置 • (6)多路选择器提取方式(MUX Extraction) • MUX Extraction参数仅对FPGA有效,有以指定是否使用多路选择器宏单元。 • (7)多路选择器实现类型(MUX Style) • MUX Style参数仅对FPGA有效,有以指定多路选择器宏单元的类型。缺省状态下为自动(Auto)。

  25. 3.HDL代码参数设置 • (8)译码器提取方式(Decoder Extraction) • Decoder Extraction参数仅对FPGA有效,用于指定是否使用译码器(Decoder)宏单元。 • (9)优先编码器提取方式(Priority Encoder Extraction) • Priority Encoder Extraction参数仅对FPGA有效,用于指定是否使用优先编码器(Priority Encoder)宏单元。缺省为自动(Auto)。

  26. 3.HDL代码参数设置 • (10)移位寄存器提取方式(Shift Register Extraction) • Shift Register Extraction参数仅对FPGA有效,用于指定是否使用移位寄存器(Shift Register)宏单元。 • (11)逻辑移位寄存器提取方式(Logical Shifter Extraction) • Logical Shifter Extraction参数仅对FPGA有效,用于指定是否使用逻辑移位寄存器(Logical Shifter)宏单元。

  27. 3.HDL代码参数设置 • (12)异或单元合并方式(XOR Collapsing) • XOR Collapsing参数仅对FPGA有效,用于指定相关联的异或(XOR)单元是否合并为一个较大的异或宏单元。 • (13)资源共享(Resource Sharing) • Resource Sharing参数用于指定是否要求XST复用运算模块。

  28. 3.HDL代码参数设置 • (14)乘法器实现类型(Multiplier Style) • Multiplier Style参数仅对FPGA有效,用于指定XST综合乘法器的类型,是基于查找表的(LUT)乘法器还是基于块乘法器(Block Multiplier)。

  29. 4. Xilinx专用参数选项 • Xilinx专用参数选项对话框中包含了一些Xilinx专有的结构中可以设置的属性。Xilinx 专用参数选项对话框如右图所示。

  30. 4. Xilinx专用参数选项 • (1)添加I/O缓冲器(Add IO Buffers) • Add IO Buffers参数用于指定是否需要在I/O上加上I/O缓冲器(IO Buffers) • (2)最大扇出数(Max Fanout) • Max Fanout参数仅对FPGA有效,用于指定信号和网线的最大扇出数。

  31. 4. Xilinx专用参数选项 • (3)寄存器复制(Register Duplication) • Register Duplication参数仅对FPGA有效,用于指定是否允许进行寄存器复制(Register Duplication)。 • (4)等效寄存器删除(Equivalent Register Removal) • Equivalent Register Removal参数用于指定是否把寄存器传输级功能相等的寄存器删除,以减少资源占用。

  32. 4. Xilinx专用参数选项 • (5)寄存器配平(Register Balancing) • Register Balancing参数仅对FPGA有效,用于指定是否需要寄存器配平。寄存器配平是使较长路径缩短,较短路径加长,使其达到平衡从而提高工作频率的一种技术。

  33. 4. Xilinx专用参数选项 • (6)Slice打包(Slice Packing) • Slice Packing参数仅对FPGA有效,用于指定是否使用Slice打包技术(Slice Packing),使相关路径查找表逻辑尽量布局在同一个Slice中,从而缩短查找表之间的布线距离,提高了设计频率。

  34. 4. Xilinx专用参数选项 • (7)是否使用I/O内部的寄存器实现I/O寄存器 • (Pack I/O Register into IOBs) • Pack I/O Register into IOBs参数仅对FPGA有效,用于指定是否使用I/O内部的寄存器作为设计的第一级寄存器。

More Related