无论在设计的哪个阶段,RTL Analysis、Synthesis还是Implementation,打开Design Run的结果,都可以看到Device视图。如果没有显示Device视图,可在Vivado菜单下找到Window,点击Device即可显示出来。那么在Device视图下我们能看到什么呢?
FPGA内部结构
RTL Analysis阶段(Elaborated Design)或者综合阶段,Device视图似乎是空的,因为此时还没有将设计放置到FPGA内,也就是还没有完成布局操作。但此时Device视图是有丰富的内容的。比如FPGA内部结构,如下图所示。这是一个SSI器件,这里显示的是SLR1(也称为Die1)。同时,还可以看到类似XmYn的坐标。这些坐标其实就是Clock Region的坐标。显而易见,Clock Region的大小是不一样的,但是包含的内容基本一致。
把Clock Region放大,可以看到FPGA内部资源是以列形式排列的,也就是同列的资源类型是相同的,可能都是SLICE、BRAM或者DSP等。
进一步放大,可以看到SLICE内部结构,如下图所示。SLICE中包含的LUT、F7MUX、F8MUX、F9MUX、FF和CARRY都一览无余(不同系列芯片,SLICE中的内容可能会有所不同,这里是UltraScale Plus系列芯片)。FPGA内部结构并没有那么神秘,对于初学者而言,认识并了解这一点是非常重要的。
代码与FPGA内部资源的映射关系
打开Implemented Design,此时已完成布局布线,因此可以清楚地看到当前设计已经被放置到FPGA中,有哪些资源被使用。如下图所示,图中蓝色标记的资源是已经被占用的资源。
进一步,选择一个被占用的资源,比如这里的LUT,按下F7,就可以返回到相应的RTL代码部分,这对于理解代码与硬件电路的对应关系、改善代码风格很有帮助。
走线
打开Implemented Design,在Device视图下,点击下图中的红色方框,就可以显示当前设计的走线情形。这在时序分析时很有帮助。有时时序违例是因为线延迟太大,在Device视图中就会看到源和目的端相距很远;或者出现布线拥塞。
Pblock
所谓Pblock,就是对某些某些实施Floorplan,也就是手工划定其在FPGA内的位置,这是一种面积约束,同时也是间接的位置约束,只是并不是绝对的位置约束,而是把该模块限定在Pblock所在的区域内。在Implemented Design或者Synthesis Design阶段,打开Device视图,都可以看到Pblock。
文 | Lauren 图 | Lauren
Copyright @ Lauren的FPGA
转载事宜请私信 | 获得授权后方可转载