Transcript
Page 1: FPGA 系统设计与实践

FPGA系统设计与实践

综合

Page 2: FPGA 系统设计与实践

第五章 综合 内容提要 本章介绍了 Xilinx 公司的 ISE5.2 中的综合工具

XST 的综合属性、 HDL 代码参数设置、专用参数选项设置,使用 XST 综合设计、实行设计的步 骤 与 方 法 。 ISE5.2 集 成 的 下 载 配 置 工 具iMPACT 的结构、操作步骤与方法。 Altera 公司的 QuartusII3.0 编译器和编程器的使用步骤与方法。

Page 3: FPGA 系统设计与实践

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

Page 4: FPGA 系统设计与实践

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

者 QuartusII3.0 编译与编程的理解。

Page 5: FPGA 系统设计与实践

FPGA系统设计与实践

ISE5.2 中的综合工具 XST

Page 6: FPGA 系统设计与实践

5.1 ISE5.2 中的综合工具 XST

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

Page 7: FPGA 系统设计与实践

5.1 ISE5.2 中的综合工具 XST

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

Page 8: FPGA 系统设计与实践

5.1 ISE5.2 中的综合工具 XST

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

Page 9: FPGA 系统设计与实践

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

Page 10: FPGA 系统设计与实践

1. 选择 XST 综合工具

选择综合工具

Page 11: FPGA 系统设计与实践

2.XST 综合属性 XST 的可设置参数比较多,适当的设置综合参数,可以在一定程度上提高综合质量。综合参数主要是一些综合策略,大部分是通过选择来完成参数的设定。下面对 XST 中的参数进行简单的介绍。在 Process for

current sources 中的 Synthesize 图标上单击鼠标右键,然后选择 Properties ,弹出的综合属性设置对话框如图所示。

Page 12: FPGA 系统设计与实践

2.XST 综合属性

综合对话框

Page 13: FPGA 系统设计与实践

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

Page 14: FPGA 系统设计与实践

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

Page 15: FPGA 系统设计与实践

2.XST 综合属性 ( 3 )综合约束文件( Synthesis Constraint File ) Synthesis Constraint File 用于指定综合约束文件的所在路径。 ( 4 ) 使 用 综 合 约 束 文 件( Use Synthesis Constraint

File ) 如果设计中有综合约束文件,那么在指定综合约束文件的所在路径后在此参数后打上勾,使 XST 在综合时受到综合约束文件的约束。

Page 16: FPGA 系统设计与实践

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

Page 17: FPGA 系统设计与实践

2.XST 综合属性

这些约束主要用于指定寄存器之间,输入引脚到第一级寄存器之间,末级寄存器到输出引脚之间,输入引脚到输出引脚之间的约束策略。

Page 18: FPGA 系统设计与实践

2.XST 综合属性 ( 6 )生成 寄存器传输级原理 图 ( Generate RTL

Schematic )

XST 可以将综合结果生成 RTL视图。通过 RTL视图可以分析设计和修改设计。选择 YES 或 NO 确定是否需要生成 RTL视图。

Page 19: FPGA 系统设计与实践

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

Page 20: FPGA 系统设计与实践

3.HDL 代码参数设置 HDL 代码参数设置与 XST 的编译有关,也就是说告诉编译工具如何理解

HDL 代 码 。 HDL代码参数选项对话框如右图所示。

Page 21: FPGA 系统设计与实践

3.HDL 代码参数设置 ( 1 ) 有限状 态机编 码 方式( FSM Encoding

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

Page 22: FPGA 系统设计与实践

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类型。

Page 23: FPGA 系统设计与实践

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类型。

Page 24: FPGA 系统设计与实践

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

Page 25: FPGA 系统设计与实践

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

Extraction ) Priority Encoder Extraction 参数仅对 FPGA 有效,用于指定是否使用优先编码器( Priority Encoder )宏单元。缺省为自动( Auto )。

Page 26: FPGA 系统设计与实践

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

Extraction ) Logical Shifter Extraction 参数仅对 FPGA 有效,用于指定是否使用逻辑移位寄存器( Logical Shifter )宏单元。

Page 27: FPGA 系统设计与实践

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

Page 28: FPGA 系统设计与实践

3.HDL 代码参数设置( 14 )乘法器实现类型( Multiplier Style ) Multiplier Style 参数仅对 FPGA 有效,用于指定

XST 综合乘法器的类型,是基于查找表的( LUT )乘法器还是基于块乘法器( Block Multiplier )。

Page 29: FPGA 系统设计与实践

4. Xilinx 专用参数选项 Xilinx 专用参数选项对话框中包含了一些

Xilinx 专有的结构中可以设置的属性。 Xilinx 专用参数选项对话框如右图所示。

Page 30: FPGA 系统设计与实践

4. Xilinx 专用参数选项( 1 )添加 I/O缓冲器( Add IO Buffers ) Add IO Buffers 参数用于指定是否需要在 I/O 上加

上 I/O缓冲器( IO Buffers )

( 2 )最大扇出数( Max Fanout ) Max Fanout 参数仅对 FPGA 有效,用于指定信号和网线的最大扇出数。

Page 31: FPGA 系统设计与实践

4. Xilinx 专用参数选项( 3 )寄存器复制( Register Duplication ) Register Duplication 参数仅对 FPGA 有效,用于指定是否允许进行寄存器复制( Register Duplication )。

( 4 )等效寄存器删除( Equivalent Register Removal ) Equivalent Register Removal 参数用于指定是否把寄存器传输级功能相等的寄存器删除,以减少资源占用。

Page 32: FPGA 系统设计与实践

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

Page 33: FPGA 系统设计与实践

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

Page 34: FPGA 系统设计与实践

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


Top Related