点击蓝字关注我们
关注、星标公众号,精彩内容每日送达
来源:网络素材
找到设计的 hot spot
所谓的hot spot,这里引用了Xilinx官方文档wp381的说法,即设计中逻辑电路拥塞严重、连线较多的点。拥塞严重是指各个逻辑单元、BIockRAM、DSP等“挤”在一块。连线较多是指各个逻辑单元中的连线很多,因此,各逻辑单元挤在一起,加上连线复杂,布线工具无法完成布线也是情理之中。
那么,如何才能找到设计的hotspot呢?基本上可以从FPGA的布局图(如Xilinx的Plan ahead或者Altera的 Chip planer)看出来。这类hot spot基本上有如下特点:
基本上hotspot里都有扇出很大的控制信号。由于在很多大型的设计里,一个关键的控制信号会控制非常多寄存器的翻转,因此该控制信号的扇出很大,从而带来布局和布线上的困难。
如果采用的是异步复位、同步释放或者同步复位的方式,那么布线工具将会把该类信号当作单周期的时序信号做Recover/Remove分析。而复位信号又是扇出极大的信号,尽管会把复位信号放到全局时钟缓冲,但是如果单周期很短,那么由于全局时钟缓冲的延时很大,不能满足单周期的延时,因此也会带来布线上的困难。
大容量Block RAMIP的生成以及大量DSP硬CORE的使用。设计里用FPGA 工具生成的BIockRAMIP容量过大,如单个生成的RAMIP的容量上Mbit,由于BlocKRAM在芯片的基底里按照列布局,因此过大BIockRAMIP组成的大容量RAM很容易造成布局布线时的信号连线过长。
设计中的逻辑电路交叉线过多。该类特征一般是几路信号进去有互相交叉运算(蝶形滤波器,FFT中的蝶形运算),或者是数据流存在很多反馈(自适应滤波器),或者是一些数据的拼接工作。
引脚分配(PinLocaion)不合理,导致输入数据流之间或者输出数据流之间出现很多交叉,造成布线困难。
以上是笔者在遇到此类布局布线失败时常见到的情况,如果读者遇到此类问题,可以优先在以上方面考虑做改进。
想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索