当前位置:首页 > 电源 > 数字电源
[导读]耗费数月精力做出的设计却无法满足时序要求,这确实非常令人伤心。然而,试图正确地对设计进行约束以保证满足时序要求的过程几乎同样令人费神。找到并确定时序约束本身通常也是非常令人头痛的问题。时序问题的恼人之

耗费数月精力做出的设计却无法满足时序要求,这确实非常令人伤心。然而,试图正确地对设计进行约束以保证满足时序要求的过程几乎同样令人费神。找到并确定时序约束本身通常也是非常令人头痛的问题。

时序问题的恼人之处在于没有哪种方法能够解决所有类型的问题。由于客户对于和现场应用工程师共享源代码通常非常敏感,因此我们通常都是通过将工具的潜力发挥到极致来帮助客户解决其时序问题。当然好消息就是通过这种方法以及优化RTL代码,可以解决大多数时序问题。


但在深入探讨之前,我们首先需要对时序问题进行一点基本分析。这里的目标是首先排除明显的问题,如将时钟引脚置于器件的上部、在器件下部驱动数字时钟管理器(DCM),然后再在器件上部驱动全局缓冲(BUFG)。


有时,此类引脚布局会导致根本没有办法满足时序要求。通过察看时序报告中的延迟,通常可以发现这些明显的时序问题。在这些情况下,为了解决这些明显的问题,都需要利用底层规划工具“floorplanner”将造成问题的部分锁定在适当的位置。底层布局规划工具还可以帮助以可视的方式来理解时序问题。


用最新工具进行时序分析


假设问题并非这么明显,那么为了锁定问题所在,需要了解所使用的器件系列以及软件版本。通常,每种器件系列对应一种最优的软件版本。如Xilinx Virtex-4器件对应的最佳软件是ISE软件9.2i版,而对Virtex-5 FPGA则是ISE软件10.1版。


综合工具的版本也很重要,因此当采用最新的器件架构时,下载并使用最新版软件非常重要。软件开发几乎总是滞后于硬件功能,因此我不提倡使用旧版软件进行基于新器件的设计。


然而,有些客户由于担心新的和未知的软件缺陷而不愿意升级软件。但是,在使用最新的器件时,如果希望更好地处理时序挑战,强烈建议下载最新版软件。


拥有了最适用于目标器件系列的软件,还需要确定最佳的实现选项。可惜,并没有适用于所有情况的超级选项组合。对于设计实现工具来说,有成千上万种不同的实现选项组合。根据所使用的实现选项不同,时序分数(即所有存在错误的时序路径与时序要求的差异总和,以皮秒表示)也会有很大不同。


赛灵思的几款工具可帮助确定适用于特定设计的最佳实现选项。ISE软件现在包括两个工具:Xplorer以及最近发布的SmartXplorer。SmartXplorer可充分发挥多处理器优点,能够以不同选项组合运行多个实施实例。


SmartXplorer需要Linux支持,但使用非常容易。其命令行很简单:smartxplorer designname.edn -p xc5vlx110t-1ff1136.


只要用户约束文件(UCF)和网表约束文件(NCF)文件名相同,SmartXplorer会自动使用正确的选项。唯一需要做的是编辑主机列表文件。


SmartXplorer可以通过SSH/rsh安全shell登录到其他机器。只需要在名为smartxplorer.hostlist的文件中将每台机器一行将机器名字添加进去就可以了。如果机器有两个处理器,请将机器列出两次。表1给出了SmartXplorer的一组结果。

表1:对基于Virtex-5 FPGA的设计SmartXplorer 10.1的一个例子。

PlanAhead软件也包括了与SmartXplorer类似的称为ExploreAhead的功能。ExploreAhead支持同时在多台Linux机器上分布式运行布局布线任务。所有这些工具的目的都是类似的:确定实现工具的最佳选项组合,以获得最好的时序得分。


请注意选项的不同组合对于时序得分和运行时间的巨大影响。仔细调整综合选项也非常重要。例如,在综合选项中关闭结构层次(hierarchy)通常会大大提高性能。综合过程中的约束条件好坏在满足时序方面的作用也很突出。

[!--empirenews.page--]

用PlanAhead分析时序


在了解实现选项对最佳时序分值的影响之后,现在可以开始有效地分析时序问题了。这时候,PlanAhead是一款非常有价值的工具,可以视觉化显示布局布线后的设计。利用它,还可以导入时序约束并在已布局窗口交叉探查(cross-probe)时序失败的路径。


当工具本身的决策不好时,则可以通过平面布局模块或通过手工布局部分组件的方式来纠正。这一过程通常需要反复多次,才能够确定时序优化的最佳设计布局方式。PlanAhead软件的可视化功能确实使这一工作的完成更容易了。


利用PlanAhead软件,首先创建项目(project),然后将HDL或网表文件导入工具中。一旦创建了一个项目,就可以选择“File→Import Placement”。选择时序优化效果最佳的布局布线后(ncd)文件,将布局布线信息导入PlanAhead软件项目。


软件会将PlanAhead项目组织到几个不同的窗口。左上窗口是物理分层窗口,描述了设计中的当前区域组。选定窗口在下面,包含了当前选定的数据详细信息。中间窗口是网表窗口,给出了整个网表的分层结构。最右侧窗口是器件观察窗(Device view),里面已经充满了设计实施完成后的逻辑。


然后,将时序分析报告(TWR/TWX)导入到PlanAhead工具中。选择“File→Import TRCE Report”。这一步将时序报告数据添加到底部窗口。按照时序余量(timing slack)对这一窗口进行排序可以将焦点首先集中于违反时序要求最多的地方。经常的情况是解决了这些时序偏差最大的地方所存在的问题也就解决了整个设计的时序问题。

图1. PlanAhead 10.1版显示出已实施的设计,一条时序失败路径高亮显示。


一旦选择了一条时序失败的路径,PlanAhead软件就会选定时序失败路径上的实例和连接。按F9键放大显示选定的部分。


这儿的事情显得有些复杂。必须进行一定的审查和思考才能够明显布局布线工具将基本单元(primitive)放在某个地方,以及为什么对于当前的特定设计来说还有更好的方法。


可以放大显示任何高亮的基本单元。鼠标点击一个基本单元并拖动,可以更好地观察其连接情况。在网表窗口,还可以移动到包含了所选实例的顶层模块。鼠标右击模块名称并为选定的实例选择颜色,这样就可以显示出这一模块在芯片中的布局,以及组内单元是靠近还是散开的。


可能发现有时需要更好地锁定特定的基本单元。Block RAM和DSP模块的自动布局是导致时序失败的常见原因。很容易发现布局布线工具将Mult18安排的位置很不好。时序失败路径中的块RAM输出连接到Mult18,后者的输出又馈送到进位链。块RAM在上部、Mult18在下部,而逻辑部分又位于上部。如果布线不需要上上下下、边边角角地来回绕,该路径应当可以满足时序要求。

[!--empirenews.page--]

时序问题不同,在PlanAhead软件中处理这些时序问题的解决方案也跟着变化。在PlanAhead设计工具中解决时序问题需要不断实践。该解决方案体现以下操作步骤中:


1. 选择高亮显示失败的时序路径。

2. 右击路径上的某个实例,选择“Highlight With →color of choice”。

3. 在左侧栏中,将底部第二个Mult18释放。右击“Unplace。这将为时序失败的块RAM腾出空间。

4. 点击拖动底部的Mult18向左上移动一个位置。

5. 点击拖动右边的块RAM到底部左侧的自由块RAM位置。

6. 选定失败的时序路径,确认路径看起来是优化的。

7. 选择“Tools→Clear PlacementConstraints”。点击第一个选项中的“Next”。

8. 选择“Unplace All But SelectedInstances”。在余下的向导步骤点击“Next”。

9. 如果希望在“PlanAhead软件外运行实施流程,选择“File →Export Floorplan”。

10. 工具会输出一个新的文件名为“top.ucf”的UCF文件。你可直接使用这一文件,或者将文件中的约束加入到原始UCF中。

11. 另一个选择是在PlanAhead软件内运行实施工具。


选择“Tool→Run ISE Place & Route with ExploreAhead。

ExploreAhead提供了许多很好的功能,包括:自动从器件观察窗导入约束到UCF;简化了从ExploreAhead中运行的布局和时序结果的导入。

图2. PlanAhead 10.1版软件显示出将DSP48和块RAM锁定后的正确路径。


Pblock和底层规划


如果发现布局中有许多时序失败路径,手工布局调整通常无法解决问题。反过来,应当创建区域组。创建区域组(Pblock)的方式之一是在网表窗口中右击模块名字并选择“Draw Pblock”。然后在器件观察窗中希望放置区域组的地方画一个长方形。


工具会创建一个Pblock,同时会显示有关的详细信息。属性窗口会显示Pblock需要的逻辑资源以及画出的长方形区域组中可用的资源。


设计的底层规划是一个需要深度交互的过程。你可能会发现需要反复多次调整区域组才能够达到目标。请记住有时创建的区域组越小越少越好。你并不是总需要将整个模块固定为区域组。集中于时序失败的基本单元,将它们组合为区域组并单独为其进行底层规划。


在此过程中,应当利用Pblock指标(Metrics)来更好地理解有关功能,如区域组中可配置的逻辑块(CLB)的利用情况如何(可以在PlanAhead软件左上窗口中点击Metrics标签来查看可用的指标)。这可帮助确定是否某个特定区域中太拥挤以致妨碍布线。如果确实比较拥挤,可能需要通过平面规划将设计逻辑放得散开一些。


一旦利用PlanAhead软件获得尽可能好的时序分数,最后的任务就是优化代码。PlanAhead设计工具现在支持HDL源文件。根据你导入的源文件不同,你可以从时序问题出发通过交叉探查功能回查到网表或HDL。


利用原理图观察窗(Schematic view),可以察看整个时序路径。只需要从时序结果中选择时序路径并按F4。仔细观察从其他模块扇入扇出的逻辑。由于外部接口要求,工具可能经常需要将模块在芯片上散开部署。如果是这样,可能需要使用流水线。


Block RAM和DSP输出时序是引起时序问题的常见原因。通过在这些模块的输出进行存储,通常可以恢复一纳秒甚至更多的时间。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭