芯动力-硬件加速设计方法 第一课 概述
不同类型的芯片有不同的选择,比如数字信号处理类的芯片偏好MATLAB
这个阶段需要大量的时间,数以月计
在该功能之前,所以的工作都可以认为是虚拟的,和现实无关的,而从逻辑综合开始,后续的所以工作,都将与工艺的物理特性,电特性等
逻辑综合的功能主要是将VERILOG HDL格式的文本映射为网表格式的文本 ,因此,它的功能等同于 文本编译器
在逻辑综合过程中,整个文本格式的编译过程,是在给定的人为约束条件下进行的,通过这些约束和设定的目标来指导工具完成综合过程。
从逻辑综合开始,基本上每做一次大的调整,都会完成一次STA分析,以保证每步都能实现时许收敛,该特点重要,primetime成为signoff的重要工具
所有SDC同逻辑综合 通常设计里面会存在大量的违例路径,STA会修大量的setup hold等,如何修这些违例。就可以体现工作经验的重要性
此外,如果是在前端修timing违例,一般会修的比较快,但是会有一个比较大的问题,代码被前端修改后,是否会存在新的bug,是否还需要重新仿真确认,仿真会消耗数以月计的时间,所以除非万不得已,一般不会再找前端来修这个timing
RTL代码和 逻辑综合后的网表(netlist) 都可以抽象为两个由节点和边构成的图
输出两张图节点是否match,功能是不是verify
数字后端设计又称物理设计,主要是将网表格式的文本转化成一个个有物理大小和位置的单元,连线。并且在实现过程中,要满足面积,功耗,性能等要求
FLOOR PLAN是将DESIGN导入后端工具以后来检查输入文件是否缺少或者有错误,确保DESIGN正常初始化之后就可以进行调整FLOOR PLAN
FLOOR PLAN主要目的 确定DESIGN的形状大小,出pin的位置以及macro的摆放
PLACEMENT的目的是将 所有STD CELL放入CORE AREA中,并且满足congestion和timing的要求。简单来说可分为两步,GLOBAL 和DETAIL PLACE. GLOBAL不考虑cell放的位置是否legal,detail place就要将cell放到附近legal的位置。在placement过程中为了得到更好timing结果,会对关键路径进行逻辑重组,删除一些buffer trees
在placement之后,CTS之前,我们会进行一次setup timing的优化,原因是clock trees还没有做,所有的clock都是理想的
CTS 芯片中的时钟网络要驱动电路中所有的时许单元,所以时钟源端门单元带载很多,其负载延时很大并且不平衡,需要插入缓冲器减小负载和平衡延时,时钟网络及其上的缓冲器构成时钟树。
ROUTING :CTS之后整个芯片的大体结构就已经定下来了,我们要将信号线通过金属连接起来。绕线过程主要完成以下几个目标,绕线过程中会考虑DRC和LVS,绕完之后必须要保证不能再有DRC和LVS violations ,绕线过程中不会导致timing变差,也不会引入新的SI问题
时许仿真是最后一个仿真阶段,和功能仿真相似。只是将RTL代码替换为网表,然后需要加载SDF文件和工艺库模型,该步骤的目的在于在延迟等近似实际工作的条件下来观察我们的功能是否还能保持正确
这门课集中于RTL设计 逻辑综合 静态时许分析三个部分