Vivado开发工具熟悉之工具使用杂记

时间:2023-03-09 16:51:51
Vivado开发工具熟悉之工具使用杂记

这两天基本完成了实验室工程从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。这里因为是移植工程没有新的源代码的编辑,所以不了解这个编译器是否好用。

其次就是仿真,这里仿真不再是Isim,Xilinx重新编写了仿真工具,而且效率快很多,使用简便,点击对应testbench文件,run simulation就行。

再次就是synthesis步骤,这里每次synthesis结束之后,可以打开synth,对应着open synthesized design,这时候发现主界面原来是project manager,就变成了synth_1(对应implementation也是一样),synthesis结果打开之后,可以edit timing constraints,可以report timing 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约束文件中,这样快一些。

讲了半天还是时序约束相关的多一点。毕竟这个是高级功能。

转载:https://blog.****.net/celery1124/article/details/42805613