DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1281|回复: 0
打印 上一主题 下一主题

[待整理] 提高FPGA设计生产力的工具、技巧和方法指南

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 19:55:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
能否快速了解设计时序状态是衡量任何FPGA设计环境有效性的关键。
  
影响FPGA设计周期生产力的最大因素是什么?许多设计人员的答案是,时序收敛(timing closure)是影响产品设计走向市场的关键,他们还为这个答案提供了充足的理由。高效实现时序收敛,获得可信的结果是每一位设计师的梦想。然而,这仅仅是问题的一部分。要在整个设计周期中真正做到高效率,设计师需要依赖整个设计环境以及其中的多种工具来管理流程复杂性,并为FPGA设计的独特风格和方法提供真实的解决方案。一个完整有效的设计环境提供了问题的焦点和透明性。与许多设计良好的工具一样,最好是提供一个无缝的解决方案。
  
要提供最大的生产力,一个完整的FPGA设计环境应当包括如下一些主要特性:
    
(1) 快速确定时序问题 - 所提供的工具能够为设计师提供关键信息,从而使他们迅速发现潜在的瓶颈。

(2) 利用一系列视图探究结果 - 并非所有问题都是采用同样的方法解决的。设计良好的工具可以让设计师从多个视角察看有关时序路径的信息。这些工具既可以提供足够的细节,又能够保持问题的焦点。

(3) 以设计为中心,而非工具 - 能够在不同视图间无缝切换,工具操作是透明的,但设计问题依然清晰。

(4) 提供有意义的中间结果 - 生产力包括能在尽早的阶段监测设计性能。如果设计师可以尽早解决问题,直接产生的结果是每天可  以有更多的反复机会。

(5) 管理复杂的源代码结构 - FPGA设计工具需要方便源文件的管理,提供兼容设计人员所喜好的源代码控制机制的能力和方法。

使用支持更快、更容易的时序收敛并且支持设计聚集的设计工具,下面的例子详细讨论了上面的话题。

快速确定时序问题

“设计满足时序要求吗?”每次通过布局布线完成设计实施时,通常设计师都会问这个问题。无论答案是什么,设计人员都希望以简洁的形式立即获得此类信息(图1)。
 

       
1. 性能摘要表

下一个问题就是“到底有多少满足时序要求,又有多少没有达到?”图2给出了每一约束对应的时序结果简表。



2. 约束摘要表

利用不同的视图探究结果
  
一旦以摘要形式呈现时序结果,还可以很容易地察看特定约束或路径的详细信息。从上面的摘要中,简单地点击一条约束,设计师就可以看到更详细的时序报告,如图3所示。


      
3. 详细时序路径报告
  
设计人员可以非常快速方便地从高层时序摘要转到详细的文本信息,了解特定的时序路径。

文字信息只是了解设计时序特性的一种方法。通常,图形显示更有帮助。对于上面的设计,点击超链接可以得到路径在FPGA器件中实际物理实现的图形显示(图4)。


       
4. 时序路径的器件视图
  
图4中的例子显示出时序路径从一个起始模块,通过每个中间模块,最后终止在路径端点的实际物理布局。这一视图也给出了这些模块间实际布线实现的视觉表现。该视图可以帮助回答与时序相关的问题,如:“有没有特别长的路径?”以及“有没有逻辑的布局跨越了多个时钟区域?”随着设计师逐渐放大视图到特定点,应当可以看到如图5所示的内部逻辑片配置。



5. 器件视图中的时序路径详细显示
  
上面的物理器件视图通常很有用,但对于理解设计中不同的时序路径细节来说,其它表示方式也同样有用。一种基于原理图技术的视图如图6所示。



6. 时序路径的技术视图
  
在这一时序路径视图中,很容易看出数据路径中的逻辑层次数量,并了解时序路径如何穿越设计层次中的不同部分。还可以逐渐放大显示的原理图,显示其它逻辑连接到构成本路径的单元的情况。
以设计为中心,而非工具
  
通过提供同一设计问题的多种视图,设计师能够以不同的方式考虑时序问题,并定制针对问题的最适合的解决方案。当所有这些视角都集成在单个设计环境中时,在不同视图之间的切换就只需点击一下鼠标就可以了,不必再学习如何在不同的点式应用间以不同的方式来显示时序路径。有时还可以将多个视图叠加或并列显示,如图7所示。



7. 时序路径的不同视图并列显示

提供有意义的中间结果
  
在FPGA设计过程的中间,运行多个实施是很平常的。对于有大量时序要求的大型设计来说,能够检查中间结果是很方便的。通过方便的方法暂停、检测和恢复实施过程,设计师可以在设计编译的过程中获得更好的设计可视性。图8所示的设计工具提供了此类直接控制。



8. 控制设计流程察看中间结果。
  
想象一下,过度的时序约束可能需要更多时间才能够完成设计实施的布局和布线阶段。通过中止流程,有些设计师可能认为设计时序已经“足够收敛”,从而可以将设计提交到实验室继续进行功能调试。同时,做完这一步后,还可以恢复布局布线,继续进行优化处理以满足最终时序要求。   

更重要的是,通过检查中间结果,设计师可以更快地确定是否存在任何时序关键区域并尽早采取行动。

管理复杂的源代码结构

随着设计复杂性的增加,源代码结构的复杂性也在增加。许多设计师采用第三方源代码控制工具来管理复杂性并保证源代码文件的一致性。这些文件不仅限于HDL源文件,还包括约束文件、仿真测试基准等。
  
每位设计师都有处理这些问题的特有风格和方法,因此并没有适用于所有用户的万能解决方案。通过提供方便的机制(图9)来确定并有选择地输出FPGA设计项目中的所有源代码/文件,设计师可以采用最适合自己需要的外部源代码控制工具。输出过程还包括输出ASCII 形式的项目信息,以后可利用这一信息重建这一项目的早期阶段。



9. 源代码管理支持。

结论
  
对FPGA设计生产力来说,快速实现时序收敛确实是一项关键因素。能否快速了解设计时序状态是衡量任何FPGA设计环境有效性的关键。由于导致时序路径出现时序失败的原因很多,因此设计师需要从多种不同角度(文字和图形)掌握方便察看时序信息的能力。这样他们才能够做出如何改进设计时序的最佳决策。以无缝且透明的方式提供综合工具将可帮助快速实现时序收敛。
  
除了核心的时序收敛技术以外,外围的设计工具环境也会大大影响生产力。检查和利用中间结果以及灵活管理复杂源代码结构等能力都会使设计师提高生产力。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-23 05:49 , 耗时 0.088072 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表