fpga 系统设计与实践

34
FPGA 系 系系系系系 综综

Upload: vega

Post on 16-Mar-2016

127 views

Category:

Documents


5 download

DESCRIPTION

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

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 内部的寄存器作为设计的第一级寄存器。