数字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. 参考资料

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

相关推荐
上园村蜻蜓队长41 分钟前
ARM芯片架构之CoreSight SoC-400组件详解
arm开发·fpga开发·架构·rtl
上园村蜻蜓队长2 小时前
FPGA自学笔记--VIVADO FIFO IP核控制和使用
笔记·fpga开发
xxy.c7 小时前
基于IMX6ULL的时钟,定时器(EPIT,GPT)
单片机·嵌入式硬件·fpga开发
初圣魔门首席弟子13 小时前
flag使用错误出现bug
c++·bug
风已经起了15 小时前
FPGA学习笔记——图像处理之对比度调节(直方图均衡化)
图像处理·笔记·学习·fpga开发·fpga
szxinmai主板定制专家17 小时前
基于ZYNQ的ARM+FPGA+yolo AI火灾实时监测与识别系统
arm开发·yolo·fpga开发
初圣魔门首席弟子17 小时前
友元类和友元函数bug
bug
初圣魔门首席弟子17 小时前
switch缺少break出现bug
c++·算法·bug
毕设源码-邱学长17 小时前
【开题答辩全过程】以 Bug交流网站为例,包含答辩的问题和答案
bug
debug 小菜鸟17 小时前
aws 实战小bug
云计算·bug·aws