您的位置 首页 FPGA

FPGA实战开发技巧(3)

FPGA实战开发技巧(3)-所谓综合,就是将HDL语言、原理图等设计输入翻译成由与、或、非门和RAM、触发器等基本逻辑单元的逻辑连接( 网表),并根据目标和要求( 约束条件) 优化所生成的逻辑连接,生

5.3.1 归纳东西XST的运用

所谓归纳,便是将HDL言语、原理图等规划输入翻译成由与、或、非门和RAM、触发器等根本逻辑单元的逻辑衔接( 网表),并依据方针和要求( 束缚条件) 优化所生成的逻辑衔接,生成EDF 文件。XST 内嵌在ISE 3 今后的版别中,而且在不断完善。此外,因为XST 是赛灵思公司自己的归纳东西,关于部分赛灵思芯片独有的结构具有更好的交融性。

完结了输入、仿真以及管脚分配后就能够进行归纳和完结了。在进程管理区双击Synthesize-XST,如图5-1所示,就能够完结归纳,而且能够给出开始的资源耗费状况。图5-2 给出了模块所占用的资源。

图5-1 规划归纳窗口

图5-2 归纳成果陈述

归纳或许有3 种成果:假如归纳后完全正确,则在Synthesize-XST 前面有一个打钩的绿色小圈圈;假如有正告,则呈现一个带感叹号的黄色小圆圈;假如有过错,则呈现一个带叉的赤色小圈圈。归纳完结之后,能够通过双击View RTL SchemaTIcs 来检查RTL 级结构图,观察归纳结构是否依照规划目的来完结电路。ISE 会主动调用原理图编辑器ECS 来阅读RTL 结构。关于一个计数器,其RTL 结构图如图5-3 所示,归纳成果契合规划者的目的,调用了加法器和存放器来完结逻辑。

图5-3 通过归纳后的RTL级结构图

2.归纳参数的设置

一般在运用XST 时,一切的特点都选用默认值。其实XST 对不同的逻辑规划可提供丰厚、灵敏的特点装备。下面临ISE9.1 中内嵌的XST 特点进行阐明。翻开ISE 中的规划工程,在进程管理区选中“Synthesis –XST”并单击右键,弹出界面如图5-4 所示。

图5-4 归纳选项

由图5-4 能够看出,XST 装备页面分为归纳选项(Synthesis OpTIons)、HDL 言语选项(HDL OpTIons) 以及赛灵思特别选项(Xilinx Specific OpTIons) 等三大类,别离用于设置归纳的大局方针和全体战略、HDL 硬件语法规矩以及赛灵思特有的结构特点。

1) 归纳选项参数

归纳参数装备界面如图5-4 所示,包含8 个选项,详细如下所列:

【Optimization Goal】:优化的方针。该参数决议了归纳东西对规划进行优化时,是以面积仍是以速度作为优先准则。面积优先准则能够节约器材内部的逻辑资源,即尽或许地选用串行逻辑结构,但这是以献身速度为价值的。而速度优先准则确保了器材的全体作业速度,即尽或许地选用并行逻辑结构,但这样将会糟蹋器材内部很多的逻辑资源,因而,它是以献身逻辑资源为价值的。

【Optimization Effort】:优化器尽力程度。这儿有【normal】和【high】两种挑选方法。关于【normal】,优化器对逻辑规划只是进行一般的优化处理,其成果或许并不是最好的,可是归纳和优化流程履行地较快。假如挑选【high】,优化器对逻辑规划进行重复的优化处理和剖析,并能生成最理想的归纳和优化成果,在对高功用和终究的规划一般选用这种形式;当然在归纳和优化时,需求的时刻较长。

【Use Synthesis Constraints File】:运用归纳束缚文件。假如挑选了该选项,那么归纳束缚文件XCF 有用。

【Synthesis Constraints File】:归纳束缚文件。该选项用于指定XST 归纳束缚文件XCF 的途径。

【Global Optimization Goal】:大局优化方针。能够挑选的特点包含有【AllClockNets】、【Inpad To
Outpad】、【Offest In Before】、【Offest Out After】、【Maximm Delay】。该参数仅对FPGA 器材有用,可用于挑选所设定的存放器之间、输入引脚到存放器之间、存放器到输出引脚之间,或许是输入引脚到输出引脚之间逻
辑的优化战略。

【Generate RTL Schematic】:生成存放器传输级视图文件。该参数用于将归纳成果生成RTL 视图。

【Write Timing Constraints】:写时序束缚。该参数仅对FPGA 有用,用来设置是否将HDL 源代码中用于操控归纳的时序束缚传给NGC 网表文件,该文件用于布局和布线。

【Verilog 2001】:挑选是否支撑Verilog 2001 版别。

HDL言语选项

HDL 言语选项的装备界面如图5-5 所示,包含16 个选项,详细如下所列:

图5-5 HDL言语选项的装备界面选项

【FSM Encoding Algorithm】:有限状况机编码算法。该参数用于指定有限状况机的编码方法。选项有【Auto】、
【One-Hot】、【Compact】、【Sequential】、【Gray】、【Johnson】、【User】、【Speed1】、【None】编码方法,默以为【Auto】编码方法。

【Safe Implementation】:将增加安全形式束缚来完结有限状况机,将增加额定的逻辑将状况机从无效状况
调转到有用状况,不然只能复位来完结,有【Yes】、【No】两种挑选,默以为【No】。

【Case Implementation Sytle】:条件句子完结类型。该参数用于操控XST 归纳东西解说和推论Verilog 的
条件句子。其间选项有【None】、【Full】、【Parallel】、【Full-Parallel】,默以为【None】。 关于这四种选项,差异如下:(1)【None】,XST 将保存程序中条件句子的原型,不进行任何处理;(2)【Full】,XST 以为条件句子是完好的,防止锁存器的发生;(3)【Parallel】,XST 以为在条件句子中不能发生分支,而且不运用优先级编码器;(4)【Full-Parallel】,XST 以为条件句子是完好的,而且在内部没有分支,不运用锁存器和优先级编码器。

【RAM Extraction】:存储器扩展。该参数仅对FPGA 有用,用于使能和制止RAM 宏接口。默以为答应运用RAM 宏接口。

【RAM Style】:RAM 完结类型。该参数仅对FPGA 有用,用于挑选是选用块RAM 仍是分布式RAM 来作为RAM 的完结类型。默以为【Auto】。

【ROM Extraction】:只读存储器扩展。该参数仅对FPGA 有用,用于使能和制止只读存储器ROM 宏接口。默以为答应运用ROM 宏接口。

【ROM Style】:ROM 完结类型。该参数仅对FPGA 有用,用于挑选是选用块RAM 仍是分布式RAM 来作为ROM 的完结和推论类型。默以为【Auto】。

【Mux Extraction】:多路复用器扩展。该参数用于使能和制止多路复用器的宏接口。依据某些内定的算法,关于每个已辨认的多路复用/ 挑选器,XST 能够创立一个宏,并进行逻辑的优化。能够挑选【Yes】、【No】和【Force】
中的任何一种,默以为【Yes】。

【Mux Style】:多路复用完结类型。该参数用于胃宏生成器挑选完结和推论多路复用/ 挑选器的宏类型。能够挑选【Auto】、【MUXF】和【MUXCY】中的任何一种,默以为【Auto】。

【Decoder Extraction】:译码器扩展。该参数用于使能和制止译码器宏接口,默以为答应运用该接口。

【Priority Encoder Extraction】:优先级译码器扩展。该参数用于指定是否运用带有优先级的编码器宏单元。

【Shift Register Extraction】:移位存放器扩展。该参数仅对FPGA 有用,用于指定是否运用移位存放器宏单元。默以为使能。

【Logical Shifter Extraction】:逻辑移位存放器扩展。该参数仅对FPGA 有用,用于指定是否运用逻辑移位存放器宏单元。默以为使能。

【XOR Collapsing】:异或逻辑兼并方法。该参数仅对FPGA 有用,用于指定是否将级联的异或逻辑单元兼并成一个大的异或宏逻辑结构。默以为使能。

【Resource Sharing】:资源共享。该参数用于指定在XST 归纳时,是否答应复用一些运算处理模块,如加法器、减法器、加/ 减法器和乘法器。默以为使能。假如归纳东西的挑选是以速度为优先准则的,那么就不考虑资源共享。

【Multiplier Style】:乘法器完结类型。该参数仅对FPGA 有用,用于指定宏生成器运用乘法器宏单元的方法。选项有【Auto】、【Block】、【LUT】和【Pipe_LUT】。默以为【Auto】。挑选的乘法器完结类型和所挑选的器材有关。

2) 赛灵思特别选项

赛灵思特别选项用于将用户逻辑适配到赛灵思芯片的特别结构中,不仅能节约资源,还能进步规划的作业频率,其装备界面如图5-6 所示,包含10 个装备选项,详细如下所列。

图5-6 赛灵思指定的选项

【Add I/O Buffers】:刺进I/O 缓冲器。该参数用于操控对所归纳的模块是否主动刺进I/O 缓冲器。默以为主动刺进。

【Max Fanout】:最大扇出数。该参数用于指定信号和网线的最大扇出数。这儿扇出数的挑选与规划的功用有直接的联系,需求用户合理挑选。

【Register Duplication】:存放器仿制。该参数用于操控是否答应存放器的仿制。关于高扇出和时序不能满足要求的存放器进行仿制,能够削减缓冲器输出的数目以及逻辑级数,改动时序的某些特性,进步规划的作业频率。默以为答应存放器仿制。

【Equivalent Register Removal】:等效存放器删去。该参数用于指定是否把存放器传输级功用等效的存放器删去,这样能够削减存放器资源的运用。假如某个存放器是用赛灵思的硬件原语指定的,那么就不会被删去。默以为使能。

【Register Balancing】:存放器配平。该参数仅对FPGA 有用,用于指定是否答应平衡存放器。可选项有【No】、【Yes】、【Forward】和【Backward】。选用存放器配平技能,能够改进某些规划的时序条件。其间【Forward】
为前移存放器配平,【Backward】为后移存放器配平。选用存放器配平后,所用到的存放器数就会相应地增减。默以为存放器不配平。

【Move First Flip-Flop Stage】:移动前级存放器。该参数仅对FPGA 有用,用于操控在进行存放器配平常,是否答应移动前级存放器。假如【Register Balancing】的设置为【No】,那么该参数的设置无效。

【Move Last Flip-Flop Stage】:移动后级存放器。该参数仅对FPGA 有用,用于操控在进行存放器配平常,是否答应移动后级存放器。假如【Register Balancing】的设置为【No】,那么该参数的设置无效。

【Pack I/O Registers into IOBs】:I/O 存放器置于输入输出块。该参数仅对FPGA 有用,用于操控是否将逻辑规划中的存放器用IOB 内部存放器完结。在赛灵思系列FPGA 的IOB 中别离有输入和输出存放器。假如将规划中的榜首级存放器或最终一级存放器用IOB 内部存放器完结,那么就能够缩短IO 引脚到存放器之间的途径,这一般能够缩短大约1~2ns 的传输时延。默以为【Auto】。

【Slice Packing】:优化Slice 结构。该参数仅对FPGA 有用,用于操控是否将要害途径的查找表逻辑尽量装备在同一个Slice 或许CLB 模块中,由此来缩短LUT 之间的布线。这一功用关于进步规划的作业频率、改进时序特性对错常有用的。 默以为答应优化Slice 结构。

【Optimize Instantiated Primitives】:优化已例化的原语。该参数操控是否需求优化在HDL 代码中已例化的原语。默以为不优化。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/179496.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部