IC Flow

来源:互联网 发布:股权拆分源码 编辑:程序博客网 时间:2024/06/01 15:39

http://www.360doc.com/content/13/0426/11/8804122_281039874.shtml

系统级设计阶段 :

  • 根据产品需求,确定待设计芯片,选择工艺、封装、面积、功耗、接口等各方面要求
  • 定义架构、对模块功能进行划分、选择合适IP

前端设计:

  • 完成R2N 的过程:RTL –>netlist 。 设计和功能验证
    • 设计:模块设计/系统集成: spyglass 做语法、可综合性、连接性检查
    • 验证:
      • 模块级:验证基础功能、基于coverage的验证,Function 和code —》UVM
      • 集成级:连接性和模块间交互的场景。
        C case , 直接将C指令编译成二进制文件,打入core中,进行仿真。
      • FPGA : 在FPGA上,提前将软件部分介入。做软硬件协同验证的工作。
  • 包含DFT:插入扫描链接、做pattren等

后端 :完成N2G的过程: netlist –> GDS

  • 基于Netlist 布局布线,做出GDS文件
  • 做一些PV的check,即物理级check; 包括DRC、LVS (layout VS Netlist 一致性检查)
  • 提取RC ,进而得到SDF(后文会讲)给前端做gate仿真

关于SDF与RC信息

布局布线后——QRC(提取寄生参数RC)——》spef——PT(计算)——》得到SDF。

布局布线后由“QRC”弄出spef,给PT得到sdf。
SDF文件既可以用于STA遍历所有时序路径,也可以反标进行后仿真动态分析。
SDF文件是把布局布线过程中的器件延时和线延时信息记录下来,从而在进行路径时序分析时可以将整条路径的时序计算出来,再根据时序约束条件判断是否满足时序要求。
设计过程中如果时序不满足时需要多次迭代的。每次布局布线后都会通过QRC抽取连线寄生参数,配合timing library得到当前的SDF时序反标信息,从而帮助设计人员对时序违背的路径进行修改。
一般,在时序收敛前用SDF分析帮助修改设计,时序满足后,利用SDF进行动态仿真double check下时序满足情况。后仿真时,可以把电路中功耗信息抓取出来,帮助进行功耗分析。
SDF直接提供了延时的信息,spef提供了各个节点的寄生参数R/C,PT会根据这些值再计算延时。
PT分析应该用spef,后仿真用SDF。
SDF应该是基于spef的实际物理连线的RC参数来计算延时的,而不是基于线载模型的吧?
SDF反标用$sdf_annotate

STA

State Timing Analysis (STA),静态时序分析,这也属于验证范畴,它主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。这个是数字电路基础知识,一个寄存器出现这两个时序违例时,使没有办法正确采样数据和输出数据的,所以以寄存器为基础的数字芯片功能肯定会出现问题。STA工具有Synopsys的prime time。
思考:setup 和hold 出现问题时会出现什么状况呢?亚稳态?