首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

提升设计效率超乎你的想象!---技术专家设计实评Vivado

提升设计效率超乎你的想象!---技术专家设计实评Vivado

Vivado高效设计案例分享参赛作品我在2012年因项目需要选用了7系列的器件,也因此有幸较早地成为Vivado的用户。在用过了几乎所有的正式发行过版本的过程中,学习并积累了一些经验,也见证了它的强大和逐渐完善。一般说来Vivado区别于ISE以及其他传统开发工具有3大特征:1.       统一的操作界面,相当于集成了core generator、planAhead、FPGA Editor、ChipScope、iMPACT 等所有工具的功能。单一的操作平台也方便在不同视图间交叉定位。2.       统一的约束语言,适用于全流程;以及统一的内部模型。而ISE的每个操作步骤都有不同的数据模型,工具需要在ngc、ncd、ncm等等之间频繁转换。因此vivado会更加高效。3.       不仅如此,vivado在算法采用全新的“分析”算法。传统的退火算法是基于种子在1个维度上搜索局部最优解,而新的算法在timing、congestion和wire length 3个维度上搜索最优解。相同的代码、相同的约束vivado每次运行结果都是确定的。[[wysiwyg_imageupload:1292:]]用交叉定位(cross-probing)功能定位问题十分高效,source、schematic、device三个视图随意切换。这些功能上的改进究竟能在实用的角度带给我们多大改进呢?下面从收敛时间、布通率、开发周期角度来看一下。我跑过的大概100K~200K LUT左右规模的几个设计,收敛时间都在2~3个小时左右。而100K与200K的设计在收敛时间上相差不大,似乎工具应对这个规模的设计绰绰有余。其实这些设计并不简单,都要跑到320M以上。其中还有一些设计是从早先低频代码中继承过来的,最差路径有9~10级LUT。工具出乎意料的收敛了,这也省了我一些代码优化的工作量。对于复杂设计vivado也能做很好的控制,比如我所做过的一个超过70%的资源利用率,接近400K LUT的规模,绝大部分频率300M以上的,大数据位宽的超复杂设计,工具跑一次要8个小时。从最初的-10ns slack,经过反复迭代,最终实现了完全收敛。而相似的设计也在另外一个厂家上也做过,只做到了40%的利用率(尝试过再高,但已经无法收敛了),工具跑了16个小时。而vivado似乎还有余量,因该设计中最高的局部(pblock)利用率高达85%。计算性能的提升,会缩小迭代周期;加上工具本身的易用性,极大缩短了开发周期。我所完成的几个200K以内的设计,从代码交付到布通收敛,基本上在1周内。如果是高资源利用率、高频率的复杂设计,1个月可以完成。当然这是指对工具比较熟悉的情况来说,我第一次用vivado也费了相当长的时间。[[wysiwyg_imageupload:1293:]]我的大部分设计的收敛情况和官方的预测曲线还是比较吻合的Vivado的使用有一套设计方法学支撑,Xilinx官方网站有很多相关文章可以学习,如ug904、ug905、ug946等。Vivado原生支持tcl,用脚本的方式可以定制自己的流程和策略,而且很多新的功能和隐藏功能都只有在tcl才能执行,因此使用脚本也更加高效。一般简单的设计,可以放心交给工具去做,很快就可以收敛。对于具有挑战性的设计,如资源占用率高、主频和数据位宽都比较大的设计。有2个方法比较有效:一种是hierarchy design的设计,可以把复杂设计分割成若干个小的设计。采用化整为零的方法逐个收敛,然后再合并。Vivado从2012.4开始在tcl上支持这种设计,在2013.4已经完全在图像化上支持了。模块级的综合可以用-mode out_of_context选项,限于篇幅,细节大家可以查看手册。另外一种是闭环设计。一般的流程在综合阶段不知道布局的情况只能用模型估计,而布局的时候不知道布线的情况也只能用模型估计,等到了布线的时候所有的数据都有了但是已经没有办法修复前面的问题了。Vivado有个隐含命令place_design –post_place_opt,可以在完成布线之后再重新布局。重新布局时是参考了布线的真实数据,而且可以反复迭代直到完全收敛。目前版本图像界面的默认流程里应该还没有这个操作,用户自己可以用脚本的方法定制执行。一般前2次循环的效果最好,次数再多就改进很少了,反而增加收敛时间。总的来说,Vivado在收敛速度上较传统工具有2~3倍的提升;布通率与对手相比也要高出一倍左右。Vivado功能强悍,可以适应各种具有挑战性的设计。用户可以定制适合自己设计的收敛方法,解决各式各样的设计上的挑战。
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表