数字IC开发:布局布线

数字IC开发:布局布线


前端经过DFT,综合后输出网表文件给后端,由后端通过布局布线,将网表转换为GDSII文件;网表文件只包含单元器件及其连接等信息,GDS文件则包含其物理位置,具体的走线;布局布线就是将单元器件及其连接信息,转换为具体版图的过程;本文是对布局布线的一个简单介绍(不包含验证过程)


1 . FloorPlan(布局规划)

🐶首先要对布局有一个规划,确定芯片的尺寸,形状,IO,宏单元的放置,数字部分,模拟部分,电源等等的放置和规划;这个过程就是FloorPlan(布局规划);

2. Place(布局)

🐭对各个元器件进行摆放,芯片一般不允许大面积留白,因此在空余的地方需要填充一些元器件。这里一般填充些与非门和D触发器(DFF),以便后期做ECO;

🐹ECO: Engineering Change Order; 后端已经开始,但我们前面发现了一些bug,为了节省开发时间,会选择让后端直接在版图设计时进行修改,如果是已经流片后发现的bug,则可以在金属层只修改其对应位置;在留白部分放置些与非门和DFF,可以方便连线完成ECO,否则如果后面发现bug,就需要新增元器件,从而增大eco成本;

3. CTS(Clock Tree Synthesis,时钟树综合)

🐰如图,时钟clk到达clk1和clk2的时间是不一样的,我们称这种偏差为skew;

🐺时钟信号clk本身也不是绝对标准的,有时可能高电平维持时间长些,有时可能低电平维持时间长些,这种时钟的抖动为jitter;

🐸此外DFF的输出数据需要一个保持时间(hold time)的延时,输入数据需要满足建立时间(setup time)的延时

CTS通过在时钟信号线路径上插入一些buff来改变时钟路径的延时,从而降低jitter,skew的影响,并使DFF传输数据🐯满足保持时间和建立时间的延时,从而保证DFF传输数据过程中不会出现错误;

4. Route(布线)

连接各个元器件的引脚;时钟信号可能会引起附近信号的波动,还要考虑天线效应,拥塞等等,这块还是比较麻烦和耗时的;

5. 参考资料

本文只是对数字布局布线原理的一个很简单梳理,具体细节可以参考下面的参考资料;

相关推荐
千宇宙航13 小时前
闲庭信步使用图像验证平台加速FPGA的开发:第二十七课——图像腐蚀的FPGA实现
图像处理·计算机视觉·fpga开发·图像腐蚀
小白到大佬21 小时前
High Speed SelectIO Wizard ip使用记录
fpga开发·lvds·高速接口
嵌入式-老费1 天前
再谈fpga开发(fpga开发的几个特点)
fpga开发
SAP龙哥1 天前
SAP在未启用负库存的情况下,库存却出现了负数-补充S4 1709 BUG
运维·bug
lxmyzzs1 天前
【已解决】YOLO11模型转wts时报错:PytorchStreamReader failed reading zip archive
人工智能·python·深度学习·神经网络·目标检测·计算机视觉·bug
范纹杉想快点毕业1 天前
基于C语言的Zynq SOC FPGA嵌入式裸机设计和开发教程
c语言·开发语言·数据库·嵌入式硬件·qt·fpga开发·嵌入式实时数据库
JHCan3331 天前
一个没有手动加分号引发的bug
前端·javascript·bug
lxmyzzs1 天前
【已解决】Jetson Orin NX apt更换国内源
嵌入式硬件·计算机视觉·bug
YONYON-R&D2 天前
LAYOUT 什么时候需要等长布线?
嵌入式硬件·fpga开发
我不是程序猿儿2 天前
【Servo】裸机还是RTOS驱动架构如何选?
驱动开发·fpga开发·架构·伺服驱动器·伺服