chanon的个人空间 https://blog.eetop.cn/56214 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

Xilinx ISE MAP 属性全面研究(l转)

热度 1已有 2010 次阅读| 2011-3-7 14:55 |个人分类:(转)

跑ISE的P&R的时候,MAP属性对结果的影响是至关重要的。一直想把这部分内容好好过一遍,今天开出这个帖子,请大家一起监督。因为工作繁忙,先把英文原文放在这里占个座位,一边工作,一边利用空余时间把内容补足。



[b]Perform. Timing-Driven Packing and Placement [/b](Advanced) 
(Virtex-II, Virtex-II Pro, Virtex-4, Spartan-3, Spartan-3A and Spartan-3E devices only)

Specifies whether or not to give priority to timing critical paths during packing in the Map process. User-generated timing constraints are used to drive the packing and placement operations. The timing constraints are generally specified in the User Constraints File (UCF) and are annotated onto the design during the Translate process. At the completion of the process, the result is a completely placed design, and the design is ready for routing. If Timing-Driven Packing and Placement is selected in the absence of user timing constraints, the tools will automatically generate and dynamically adjust timing constraints for all internal clocks. This feature is referred to as Performance Evaluation mode. This mode allows the clock performance for all clocks in the design to be evaluated in one pass. The performance achieved by this mode is not necessarily the best possible performance each clock can achieve. Instead it is a balance of performance between all clocks in the design. By default, this property is set to False (checkbox is blank).

[color=Red]大家都知道,略[/color]

[b]Perform. Timing-Driven Packing[/b] (Advanced) 
(Virtex and Spartan-II devices only)

Specifies whether or not to give priority to timing critical paths during packing in the Map process. User-generated timing constraints are used to drive the packing operation. The timing constraints are generally specified in the User Constraints File (UCF) and are annotated onto the design during the Translate operation. By default, this property is set to False (checkbox is blank), and timing-driven packing is not performed.

[color=Red]大家都知道,略[/color]
[b]
Map Effort Level (Advanced)[/b] 
(Virtex-II and Virtex-II Pro, Virtex-4, Spartan-3, Spartan-3A and Spartan-3E devices only)

Note Available only when Perform. Timing-Driven Packing and Placement is set to True (checkbox is checked). Specifies the effort level you want to apply to the Map process. [color=Red]The effort level controls the amount of time used for packing and placement by selecting a more or less CPU-intensive algorithm for placement.[/color] You can set the effort level from Standard (fastest run time) to High (best results). This property is available only when the Perform. Timing-Driven Packing and Placement property in this dialog box is set True (checkbox is checked). Select an option from the drop-down list. 
- Standard: Gives the fastest run time with the lowest mapping effort. Appropriate for a less complex design. 
- Medium: Gives a medium run time with good mapping results. 
- High: Gives the longest run time with the best mapping results. Appropriate for a more complex design.
By default, this property is set to Medium.

[color=Red]大家都知道,略[/color]

[b]Extra Effort (Advanced)[/b]

Map spends additional run time in an effort to meet difficult timing constraints.
Note The Extra Effort property is available only when the Map Effort Level is set to High.
Select an option from the drop-down list. 
- None: No extra effort level is applied.
- Normal: Runs until timing constraints are met unless they are found to be impossible to meet. This option focuses on meeting timing constraints.
- Continue on Impossible: Continues working to improve timing until no more progress is made, even if timing constraints are impossible. This option focuses on getting close to meeting timing constraints.
By default, this property is set to None.

[color=Red]大家都知道,略[/color]

[b]Placer Effort Level (Advanced) (Virtex-5 only)[/b]

Specifies the effort level you want to apply to the Map process. The effort level controls the amount of time used for packing and placement by selecting a more or less CPU-intensive algorithm for placement. You can set the effort level from Standard (fastest run time) to High (best results).
Select an option from the drop-down list. 
- Standard: Gives the fastest run time with the lowest mapping effort. Appropriate for a less complex design. 
- High: Gives the longest run time with the best mapping results. Appropriate for a more complex design.
By default, this property is set to High.

[color=Red]大家都知道,略[/color]

[b]Placer Extra Effort (Advanced) (Virtex-5 only)[/b]

This property sets the extra effort level for timing-driven packing.
This property is only enabled if the Placer Effort Level is set to High.
Select an option from the drop-down list. 
- None: No extra effort level is applied.
- Normal: Runs until timing constraints are met unless they are found to be impossible to meet. This option focuses on meeting timing constraints.
- Continue on Impossible: Continues working to improve timing until no more progress is made, even if timing constraints are impossible. This option focuses on getting close to meeting timing constraints.
By default, this property is set to None.

[color=Red]大家都知道,略[/color]

[b]Starting Placer Cost Table (1 - 100) [/b](Advanced)

Specifies a mapping initialization value with which to begin the map attempts. Each subsequent attempt is assigned an incremental value based on the mapping initialization value. By default, this property is set to 1. This property is available only when the Perform. Timing-Driven Packing and Placement property in this dialog box is set to True (checkbox is checked).

[color=Red]大家都知道,略[/color]

[b]Combinatorial Logic Optimization[/b] (Advanced) (Virtex-II, Virtex-II Pro, Virtex-4, Virtex-5, Spartan-3, Spartan-3A and Spartan-3E devices only)

Specifies whether or not to run a process that revisits the combinatorial logic within a design to see if any improvements can be made that will improve the overall quality of results. Timing constraints and logic packing information are considered when this process is run. This property is part of the physical synthesis tools in ISE. By default, this property is set to False (checkbox is blank), and this process is not run on the design. This property is available only when the Perform. Timing-Driven Packing and Placement property in this dialog box is set to True (checkbox is checked).

[color=Red]组合逻辑优化是物理综合的一部分,可以提高整体电路的质量。在执行的优化的时候,同时考虑时序约束和逻辑装箱的制约。[/color]

[b]Register Duplication[/b] (Advanced) (Not available for Virtex or Spartan-II devices)

Specifies whether or not you want to replicate the registers to help control fanout. By default, this property is set to False (checkbox is blank), and register duplication is not performed during timing optimization and fanout control. This property is available only when the Perform. Timing-Driven Packing and Placement property in this dialog box is set True (checkbox is checked).

[color=Red]寄存器复制用于减小扇出,以满足时序约束。[/color]

[b]Global Optimization[/b] (Advanced) (Virtex-4 and Virtex-5 only)

When this property is set to True (checkbox is checked), Map performs global optimization routines on the fully assembled netlist before mapping the design. Global optimization includes logic remapping and trimming, logic and register replication and optimization, and logic replacement of tristates. These routines will extend the runtime of Map because extra processing occurs. By default, this property is set to False (checkbox is blank). With Global Optimization set to True, using Partitions is not recommended, and Formal Verification flows will be negatively affected. Also, certain Map properties are not allowed in conjunction with Global Optimization: neither Trim Unconnected Signals (-u) nor Replicate Logic to Allow Logic Level Reduction (-l) may be set to False when running Global Optimization.

[color=Red]全局优化是在MAPPING动作以前对网表进行优化处理,比如逻辑重映射和裁剪,逻辑与寄存器的复制与优化,三态的替换等等。造成的后果是MAP时间变长,同时与RTL的等价性也丧失,因此partition / Fromal verification 都受到负面影响,一些选项也因此关闭。[/color]

[b]Retiming[/b] (Advanced) (Virtex-4 and Virtex-5 only)

When this property is set to True (checkbox is checked), registers are moved forward or backwards through the logic to balance out the delays in a timing path to increase the overall clock frequency. The overall number of registers may be altered due to the processing. By default, this property is set to False (checkbox is blank). This property is available only when the Global Optimization property is set to True (checkbox is checked).

[color=Red]retiming通过寄存器的前后移动来平衡时序路径,从而提高全局的时钟频率。[/color]
[color=Red]前提:打开Global Optimization[/color]

[b]Equivalent Register Removal [/b](Advanced) (Virtex-4 and Virtex-5 only)

When this property is set to True (checkbox is checked), any registers with redundant functionality are examined to see if their removal will increase clock frequencies. By default, this property is set to True (checkbox is checked). This property is available only when the Global Optimization property is set to True (checkbox is checked). 

[color=Red]删除等价寄存器:如果发现冗余功能寄存器,则判断将其删除是否可以提高时钟频率。[/color]
[color=Red]前提:打开Global Optimization[/color]

[b]Ignore User Timing Constraints[/b]

This property controls the use of timing constraints during placement. The primary method of specifying timing requirements is by entering them in the User Constraints File (UCF). For detailed information about timing constraints, see the Constraints Guide. If this property is not selected (checkbox is blank), Map packs and places in accordance with any timing constraints specified in the User Constraints File (UCF). If this property is selected (checkbox is checked), timing constraints in the UCF are ignored when Map runs. Map will proceed as follows: For all devices except Virtex-5, packing and placement will run without timing constraints. The Timing Mode property below will indicate Non Timing Driven mode. For Virtex-5, the setting of the Timing Mode property (described below) determines whether MAP will automatically generate timing constraints to control packing and placement or will run without timing constraints.

[color=Red]决定是否忽略用户定义的时序约束(UCF文件)。造成的结果是没有时序约束,或者MAP自动产生时序约束。[/color]
[color=Red]和下面的timing mode配合使用,我们可以看到其真正用途。[/color]

[b]Timing Mode[/b]

This property is enabled when the Ignore User Timing Constraints property (see above) is selected. Select an option from the drop-down list.
- Performance Evaluation (Virtex-5 Only): This selection triggers the "Performance Evaluation" mode. In this mode timing constraints specified in the User Constraints File (UCF) are ignored. Instead, timing constraints for all internal clocks are generated automatically and dynamically adjusted during Map to increase performance. This mode is used to evaluate realistic performance targets for the design. Performance Evaluation is described in the "MAP" chapter in the Development System Reference Guide.
- Non Timing Driven: In this mode, timing constraints specified in the UCF are ignored, and packing and placement will run with no timing constraints. This selections will make the Map process run faster, but will not take into account timing constraints while generating the resulting output.

[color=Red]对于Virtex-5,可以采用performance evaluation模式来评估设计的最高时钟。所以xilinx的真实意图就是:用户先不加约束,ISE自己来动态调整提高性能,最后推导出最高的工作时钟。对于其他系列device,这个功能不可用,所以也没有操作的价值。[/color]

[b]Trim Unconnected Signals[/b]

Specifies whether or not to trim unconnected components and nets from the design before mapping occurs. Leaving this option blank is useful for estimating the logic resources required for a design and for obtaining timing information on partially finished designs. When implementing an unfinished design, set this property to False (checkbox is blank) to map unconnected components and nets. By default, this property is set to True (checkbox is checked), and unconnected components and nets are trimmed. 

[color=Red]没有连接的信号当然要删除了,且慢!结论不能这么武断。当设计没有完全结束时,会存在大量的未连接信号,这个时候我们也可以跑一遍P&R,从而预估设计所需资源,从而决定是否选择某款FPGA。原文还提到了可以对部分完成的设计提前进行时序验证,这个貌似和是否删除未连接信号无关啊。[/color]

[b]Replicate Logic to Allow Logic Level Reduction[/b] (Advanced)

Specifies whether or not to replicate logic, such that a single driver that drives multiple loads is replicated, and each separate component drives an individual load. This option is useful for creating a mapping strategy that may more readily meet your timing constraints. It reduces the number of logic elements through which a signal must pass, thereby eliminating path delays. By default, this property is set to True (checkbox is checked), and logic is replicated.

[color=Red]赋值逻辑减少层次:当一个逻辑驱动多个负载时,将该逻辑赋值,每个逻辑只驱动一个负载。[/color]
[color=Red]感觉这样做的话减少了扇出,可以缩小延迟,提高时序性能。
[color=SeaGreen]但是原文提到可以“logic level reduction”,不知道是个什么意思?[/color][/color]

[b]Allow Logic Optimization Across Hierarchy[/b] (Advanced)

When this property is set to True (checkbox is checked), Map ignores any Keep Hierarchy properties set for the Synthesize process and Map can perform. optimizations across any hierarchical boundaries. This property is used to preserve the signals that span the hierarchical boundaries for the purpose of simulation, or to ensure that optimizations do not affect of the behavior. of the designs using Partitions. Better timing performance can be attained by performing such optimizations. By default, this property is set to False (checkbox is blank).  

[color=Red]逻辑优化可以跨越层次结构:采用该设置可以令逻辑优化在全局跨越式进行,从而获取更好的时序性能。[/color]
[color=Red]不采用该选项的理由是:为了仿真维持原有的结构及相关信号;不影响采用partition的设计。[/color]
[color=Red]按照这个说法,默认情况下其实优化只是在局部进行的,那对于层次间耦合紧密(比如跨越同一时钟周期)的设计来说,还真的有些问题。[/color]

[b]Map to Input Functions[/b] (Advanced)

Specifies the maximum size of functions covered for FPGA architectures. Select a function between 4 (F4MUX) and 8 (F8MUX) from the drop-down list. By default, this option is set to 6 for Virtex-5 devices, and 4 for all other devices. 

[color=Red]选择功能块的最大尺寸:从字面意思看应该是选择LUT4或者LUT6之类意思,按照我的了解,V5以前的主要是LUT4,那么选大于4的值的话,应该是要两个LUT4组合起来构成一个大的LUT才行。由于V5是采用LUT6所以可以看到他的默认值也是6。这个值应该采用默认即可,除非你的逻辑块的输入都是固定的5输入、6输入之类的应用,那样的话,可以专门设置一下。[/color]

[b]Optimization Strategy[/b] (Cover Mode) (Advanced)

Specifies the criteria used during the "cover" phase of MAP. In the "cover" phase, MAP assigns the logic to CLB function generators (LUTs). Select an option from the drop-down list. 
- Area: Select Area to make reducing the number of LUTs (and therefore the number of CLBs) the highest priority.
- Speed: Select Speed to make reducing the number of levels of LUTS (the number of LUTs a path passes through) the highest priority. This setting makes it easiest to achieve your timing constraints after the design is placed and routed. For most designs there is a small increase in the number of LUTs (compared to the area setting), and in some cases the increase may be large.
- Balanced: Select Balanced to balance two priorities; reducing the number of LUTs and reducing the number of levels of LUTs. The Balanced option produces results similar to the Speed setting but avoids the possibility of a large increase in the number of LUTs.
- Off: Select Off to disable optimization.
By default, this property is set to Area.

[color=Red]优化策略:面积优先或者时序优先,或者两者平衡或者都不采用,面积和时序互相制约,面积大点则时序增强,反之亦然。[/color]
[color=Red]这个优化发生在MAP的cover阶段,将逻辑赋值给LUT。[/color]
[color=Red]推荐:使用balanced比较好,性能上接近时序优先,但是面积又不会变很大。[/color]

[b]Generate Detailed MAP Report[/b]

Specifies whether or not to display a detailed report. A detailed Map Report displays redundant blocks that were removed and signals that were merged during the mapping process. It also displays expanded logic, signal cross-references, and symbol cross-references. By default, this property is set to False (checkbox is blank), and a detailed Map Report is not generated.

[color=Red]产生详细MAP报告:默认关闭该选项,看需要自己决定吧。[/color]

[b]Use RLOC Constraints[/b] (Advanced)

Specifies whether or not to use the RLOC information that contains the relative placement of one CLB to another. By default, this property is set to True (checkbox is checked), and MAP uses the RLOC information, even invalid information that could result in a Map process error.

[color=Red]RLOC约束定义了CLB之间的location关系,这个不太了解,不乱讲了。[/color]

[b]Pack I/O Registers/Latches into IOBs[/b]

Controls the packing of flip-flops or latches within an I/O cell. Normally, the mapper packs flip-flops or latches within an I/O cell only if such packing is specified by your design entry method. This option allows you to control packing after the design entry phase. Select an option from the drop-down list. 
- Off: Select Off to pack flip-flops or latches as specified by your design entry method.
- For Inputs Only: Select Inputs Only to pack flip-flops or latches into input I/O cells.
- For Outputs Only: Select Outputs Only to pack flip-flops or latches into output I/O cells.
- For Inputs and Outputs: Select Inputs and Outputs to pack flip-flops or latches into both input and output I/O cells.
By default, this property is set to Off for Virtex-5 devices, and For Inputs and Outputs for all other devices.

[color=Red]将寄存器锁存器打包到IOB内。这么做的优点是可以令输入和输出的延迟最小,因为输入输出信号都是直接从IOB走的,FPGA内再也没有别的延迟(IDELAY和ODELAY除外)。而如果没有打包入IOB的话,信号从寄存器出来后还要经过IOB延迟一下,这个影响还是比较大的。所以以前有这样的建议,就是将输入输出全部用寄存器处理,同时寄存器都pack到IOB,这样,input delay和output delay就不用再约束了,因为已经是最小的了。[/color]

[b]Disable Register Ordering[/b] (Advanced)

Controls register ordering. When you map a design containing registers, the mapper can optimize the way the registers are grouped into CLBs. This optimized mapping is called register ordering. By default, this property is set to Off (checkbox is blank).

[color=Red]寄存器排序,这个处理用于优化寄存器在CLB内的grouping。[/color]
[color=Red]我不知道这个优化的具体含义,以后了解了再补充。[/color]

[b]Maximum Compression[/b] (Advanced) (Virtex-5 only)

When set to True (checkbox is checked), this option instructs Map to pack the design logic as densely as possible. This is done at the risk of negative place and route performance. By default, this property is set to False (checkbox is blank).

[color=Red]最大压缩,这个操作令MAP将逻辑块紧密压缩,可以减小FPGA面积,但是对布局布线是个不小的挑战。[/color]

[b]CLB Pack Factor Percentage[/b] (Advanced)

Specifies how densely logic will be partitioned using a percentage value. A higher percentage number will result in lower density packing. A high CLB pack factor percentage can adversely affect place and route performance, resulting in higher delays and more unrouted nets. Note This property is not available for Virtex-5 devices. The command line equivalent to setting this property is -c [packfactor], where packfactor is the percentage of CLBs available in a target device for packing your designs logic. Enter a numeric value in this property. By default, this property is set to 100 (%) which means that all CLBs in a target part are available for design logic. This property is grayed out and cannot be set when either the Perform. Timing-Driven Packing and Placement property is set True (checkbox is checked) or the Perform. Timing-Driven Packing property is set True (checkbox is checked).

[color=Red]CLB PACK 百分比,这个概念不是很清楚。总之数值越大,逻辑布局会越分散,对布局布线的影响越不利。[/color]
[color=Red]采用time-driven的P&R方式的话,这个选项是关闭的。客观的讲,这个选项不是给一般用户使用的。[/color]

[b]Tri-state Buffer Transformation Mode[/b] (Advanced)

Specifies the type of bus transformation that Map will perform. Note This property is not available for Virtex-5, Virtex-4, Spartan-3, or Spartan-3E devices because tri-state buffer transformations are performed automatically for these devices. Select one of the options from the drop-down list. 
-Off: Does not transform. tristate buses.
- On: Transforms tristate buses to LUT or CY logic, as necessary.
- Aggressive: Transforms all tristate buses to LUT or CY logic.
- Limit: Transforms only the portions of buses that exceed the device limitations.
By default, this property is set to Off.

[color=Red]三态缓存模式,用于定义三态总线的实现方式,比如LUT或者CY逻辑。[/color]

[b]LUT Combining[/b] (Advanced) (Virtex-5 only)

LUT combining enables the merging of LUT pairs with common inputs into single dual-output 6-input LUTs in order to improve design area. This optimization process may reduce design speed. Select one of the options from the drop-down list. 
- No: Disables LUT combining.
- Auto: Map tries to make a tradeoff between area and speed.
- Area: Map performs maximum LUT combining to provide as small an implementation as possible.
By default, this property is set to Off.

[color=Red]LUT组合,这个选项只在V5中提供,作用是将相同输入的两个LUT用一个 “双输出LUT-6” 来替代。[/color]
[color=Red]目的很明确,就是要精简面积,当然对时序的影响是消极的。[/color]

[b]Map Slice Logic into Unused Block RAMs[/b] (Advanced)

Specifies whether or not MAP attempts to place LUTs and flip-flops into Block RAMs. By default, this property is set to False (checkbox is blank).

[color=Red]MAP是否将slice逻辑放入BRAM中,不知道这样做的优势在哪里?[/color]
[color=Red](看来ISE的帮助文档写得也不完整啊,这种必需解答的问题没有解答,用户怎么敢轻易使用这些选项)。[/color]

[b]Power Reduction[/b] (Advanced) (Spartan-3, Spartan-3A, Spartan-3E, and Virtex-4 only)

If enabled, Map will optimize placement during timing-driven packing and placement to reduce the power consumed by the design. This property is enabled when the Perform. Timing-Driven Packing and Placement property is set enabled (checkbox is checked). By default, this property is disabled.

[color=Red]功率削减,这个选项可以帮助设计降低功耗。[/color]
[color=Red]前提:Perform. Timing-Driven Packing and Placement[/color]

[b]Power Activity File[/b] (Advanced) (Spartan-3, Spartan-3A, Spartan-3E, and Virtex-4 only)

This property allows you to specify a simulation file, *.vcd or *.saif, to guide Map when it optimizes the design for power reduction. This file is the output of a simulation run on the design. For power reduction, Map uses this file to set frequencies and activity rates of internal signals, which are signals that are not inputs or outputs but internal to the design. Note Simulation is the most accurate method of determining the exact activity rates. Back-annotated post-place and route simulation provides the best data for determining activity rates since it most closely represents physical implementation. By default, this property is blank (no file name).

[color=Red]功率活动文件,这个文件来自仿真(应该是后仿真,否则内部信号如何匹配)的输出,格式为*.vcd或者*.saif。[/color]
[color=Red]由于仿真文件包含了典型的scenario,因此可以为ISE提供每个内部信号的活动频率,指导上述功率削减过程。[/color]
[color=Red]ISE根据仿真文件判断内部功耗较大和较小的部分。至于如何进行功率削减,文档没有提及,我们看些资料再谈这个问题吧。[/color]

[b]Other Map Command Line Options [/b](Advanced)

Enter additional command line options. Multiple options are separated with a space. The options entered in this property appear first on the command line, before all other property options specified in the graphical user interface. Avoid setting duplicate property options. For more information about command line options, see the Development System Reference Guide.

Copyright  2008, Xilinx Inc. All rights reserved.
1

点赞

刚表态过的朋友 (1 人)

发表评论 评论 (1 个评论)

回复 fengbohan1 2022-7-22 12:42
好文章,谢谢博主分享经验

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 13

    获赞
  • 50

    评论
  • 2787

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-25 10:07 , Processed in 0.015654 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部