从 RTL 到 GDS:那些文件到底在干什么
首发于公众号「如是有为」 · 查看原文
刚学 VLSI 时,最容易把人劝退的,其实不是 RTL。
Verilog 刚写顺一点,仿真也能跑了,突然有人扔给你一个项目目录:
.lib、.lef、.def、.sdc、.spef、.upf、.gds
第一次打开的时候,真正麻烦的不是「这些后缀背不下来」,而是你根本不知道工具为什么需要这些东西。
后来才发现,根本不用背文件名。物理设计工具一直在问几个非常具体的问题:
电路里有什么? —— Netlist
时序要求是什么? —— SDC
这个标准单元到底能跑多快? —— LIB
单元长什么样、Pin 在哪里? —— LEF
芯片上的东西最终摆在哪里? —— DEF
布完线以后,真实的 RC 寄生有多大? —— SPEF
电源域怎么切、哪里需要隔离和电平转换? —— UPF
DFT/Scan 链最后怎么排? —— SCANDEF
最终交给晶圆厂的几何图形是什么? —— GDS / OASIS
这样再去看一个 ASIC 项目目录,感觉会完全不一样。
.lib 不再是一个陌生后缀,它其实是在告诉 STA:这颗门在什么 PVT、什么输入 slew、什么负载下面,需要多少时间。
.lef 也不只是“版图文件”,它故意不把晶体管内部细节全部告诉 P&R,只告诉工具:这个 cell 多大,哪些地方能走线,Pin 在哪。
而 .spef 出现以后,事情又变了一层。前面你看到的是逻辑连接,到了这里,工具开始承认一件真正属于物理世界的事:
线不是理想的。
它有电阻,有电容,会拖慢边沿,也会改变时序。
所以 VLSI 后端真正难学的,从来不是十几个文件扩展名。
而是慢慢看懂:从 RTL 到 GDS,工具每往前走一步,都在向你索取一部分更接近真实硅片的信息。


关注公众号「如是有为」
微信扫一扫,新文章先在公众号发出。