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

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

相关推荐
爱吃汽的小橘4 小时前
基于ads1256的ADC控制实现
fpga开发
易享电子1 天前
基于单片机车窗环境监测控制系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·fpga开发·51单片机·proteus
cycf1 天前
系统同步接口输入延迟(五)
fpga开发
cmc10281 天前
131.如何区分FPGA芯片型号是-2l还是-2方法
fpga开发
sz66cm1 天前
FPGA基础 -- 无毛刺时钟切换(glitch-free clock switching)
fpga开发
Blossom.1181 天前
把AI“绣”进丝绸:生成式刺绣神经网络让古装自带摄像头
人工智能·pytorch·python·深度学习·神经网络·机器学习·fpga开发
电子凉冰1 天前
FPGA强化-VGA显示设计与验证
fpga开发
XINVRY-FPGA1 天前
XC7A100T-2FGG484I Xilinx Artix-7 FPGA
arm开发·嵌入式硬件·fpga开发·硬件工程·信息与通信·信号处理·fpga
cmc10281 天前
129.FPGA绑定管脚时差分管脚只绑_p是不行的,tx与rx只绑一个也不行
fpga开发
望获linux2 天前
【实时Linux实战系列】FPGA 与实时 Linux 的协同设计
大数据·linux·服务器·网络·数据库·fpga开发·操作系统