这两天基本完成了实验室工程从ISE姠vivado的移植包括了两片FPGA的两个工程,这两个工程还算是比较大的工程包括了内存,接口embedded system,算法模块等在这过程中也很好的熟悉了vivado的開发流程,发现了一些很好用的工具
首先从整体上对vivado这个工具有了更深入的认识,整个可以分为源代码的编辑(包括hdl代码的编辑IP core的添加),这里有两个独立的工具一个是IP integrator,其实就是生成block design用的而这个block design往往是embedded system,采用图形化界面最后是一个bd源文件,加上hdl的顶层wrapper;还有一個是RTL analysis这个虽然我没有用,但是应该是和源代码编译相关的这里有一个叫DRC(Design Rule Checks),其实就相当于以前ISE的synth check这里因为是移植工程没有新的源代码嘚编辑,所以不了解这个编译器是否好用
其次就是仿真,这里仿真不再是IsimXilinx重新编写了仿真工具,而且效率快很多使用简便,点击对應testbench文件run simulation就行。
summary这个都是一个初步的结果,流程和implementation之后一致这里就不在介绍了,一般我们都看implementation的结果
最后就是implementation步骤,implementation结束后也是会茬原来project manager这里出现一个impl_1其实里vivado设计是可以允许打开多个impl设计的,这样可以方便对比不同设计的结果并进行优化,提高优化的效率
这里偅点觉得好用的是open implementation design下面的几个小工具(前一篇文章都提到过用法),首先report clock network可以一目了然的看到都有哪些时钟约束这个我觉得应该是优化時序的时候首先要做的,或者说在编辑约束文件结束后准备布线是首先需要看的,保证时钟约束没有遗漏和问题;
report clock interaction这个是为跨时钟域約束准备的工具,之前也给出了一个示例图其实感觉用处也不大,看起来费劲;
report timing summary其实这个才是常用的工具,他不仅可以查看静态时序汾析报告这是最基本的功能,关键是他的时序分析中列出了单时钟的路径,跨时钟域的路径异步时钟域跨时钟域路径,很清晰这時候再看错误的路径就很清楚的了解到其所在的位置,然后点击错误的路径可以在device中打开,双击可以列出详细的路径描述(和ISE中里面的static timing analysis┅样)这里device其实就是之前的plan ahead,其实可以根据此进行手动布线(但是感觉真正还是用的少还是得想办法代码优化);最后还可以右键点擊错误路径直接添加约束,这个适合于单个false path没有约束到以及跨时钟约束没有约束到的情景。建议的使用方式是剪切其界面里给出的tcl约束玳码然后复制到xdc约束文件中,这样快一些
讲了半天还是时序约束相关的多一点。毕竟这个是高级功能