打印

提高FPGA设计生产力的工具、技巧和方法指南(转)

[复制链接]
1929|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AutoESL|  楼主 | 2011-9-11 13:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 AutoESL 于 2011-9-29 22:09 编辑

影响FPGA设计周期生产力的最大因素是什么?许多设计人员的答案是,时序收敛(timing closure)是影响产品设计走向市场的关键,他们还为这个答案提供了充足的理由。高效实现时序收敛,获得可信的结果是每一位设计师的梦想。然而,这仅仅是问题的一部分。要在整个设计周期中真正做到高效率,设计师需要依赖整个设计环境以及其中的多种工具来管理流程复杂性,并为FPGA设计的独特风格和方法提供真实的解决方案。一个完整有效的设计环境提供了问题的焦点和透明性。与许多设计良好的工具一样,最好是提供一个无缝的解决方案。      要提供最大的生产力,一个完整的FPGA设计环境应当包括如下一些主要特性:   
    快速确定时序问题 - 所提供的工具能够为设计师提供关键信息,从而使他们迅速发现潜在的瓶颈。   
    利用一系列视图探究结果 - 并非所有问题都是采用同样的方法解决的。设计良好的工具可以让设计师从多个视角察看有关时序路径的信息。这些工具既可以提供足够的细节,又能够保持问题的焦点。  
    以设计为中心而非工具 - 能够在不同视图间无缝切换,工具操作是透明的,但设计问题依然清晰。  
    提供有意义的中间结果 - 生产力包括能在尽早的阶段监测设计性能。如果设计师可以尽早解决问题,直接产生的结果是每天可以有更多的反复机会。  
    管理复杂的源代码结构 - FPGA设计工具需要方便源文件的管理,提供兼容设计人员所喜好的源代码控制机制的能力和方法。  
    使用支持更快、更容易的时序收敛并且支持设计聚集的设计工具,下面的例子详细讨论了上面的话题。  
    快速确定时序问题
   “设计满足时序要求吗?”每次通过布局布线完成设计实施时,通常设计师都会问这个问题。无论答案是什么,设计人员都希望以简洁的形式立即获得此类信息(图1)。
led="f" stroked="f">
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设计环境有效性的关键。由于导致时序路径出现时序失败的原因很多,因此设计师需要从多种不同角度(文字和图形)掌握方便察看时序信息的能力。这样他们才能够做出如何改进设计时序的最佳决策。以无缝且透明的方式提供综合工具将可帮助快速实现时序收敛。   
    除了核心的时序收敛技术以外,外围的设计工具环境也会大大影响生产力。检查和利用中间结果以及灵活管理复杂源代码结构等能力都会使设计师提高生产力。

相关帖子

沙发
foreverly| | 2011-9-14 16:02 | 只看该作者
帮顶一下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:天使宝贝 博客IT人生 From C/C++/SystemC to Xilinx FPGA

0

主题

2517

帖子

3

粉丝