tfpwl_lj的个人空间 http://blog.eetop.cn/1638430 [收藏] [复制] [分享] [RSS]

日志

ECO 流程梳理

热度 10已有 409 次阅读2021-9-13 13:59 |系统分类:芯片设计| ECO

1.

一般而言,ECO就是在芯片设计流程中到了后期,综合网表、PR网表都已经做好了,或者是芯片已经流片回来在测试中,发现有部分功能需要修改,在不对网表进行重新综合、布局布线的前提下(非常耗时间),对综合网表和PR网表进行小范围的功能修改,以修复bug或者增加某些小功能。

2.

需要准备的文件:

RTL源码 综合网表 PR网表 工艺库Cell单元文档 DC/formality脚本

3.

步骤:

  a. 修改RLT源码并完成验证,确保功能正常;

  b. 将RTL源码中修改的部分翻译成网表格式代码,使用工艺库中的cell单元进行设计;注意综合网表中使用的cell的工艺角(HVT SVT LVT),及cell面积大小(7T 9T 12T);

  c. 使用DC-TCL脚本将b中翻译的网表改写成TCL脚本,主要关键字:current_instance, create_cell, create_net, disconnect_net, connect_net, 搭配些for循环,if语句;另外,如果要断开已有的cell的某些接口,最好使用get_pins -of_objects [get_nets xxx] -filter “XXX”语句来获取cell的pin,这样方便修改;

  d, 综合网表和PR网表,PR网表已经插入了时钟树、做好了时序的网表,信号的名字和极性都会有变化,使用c中方法写的TCL脚本,很大概率在PR网表中找不到对应的信号且信号极性相反;并非一定要写TCL脚本,也可以直接在网表上修改;但是,一旦修改的逻辑多了,写TCL脚本的优势就会体现出来。PR TCL脚本同理。

  e, 使用c中的综合TCL脚本生成新的综合网表(在原来综合网表基础上,加入新增加的修改逻辑),接着再与a中的RTL代码进行形式验证(formality),如果形式验证不通过,则需要打开formality的图形界面进行debug,通过了,则进行下一个步骤。

  f, 使用d中的PR TCL脚本生成新的PR网表(在原来PR网表基础上,加入新增加的修改逻辑),接着再与e中的新生成且通过形式验证的综合网表进行形式验证(formality),如果形式验证不通过,则需要打开formality的图形界面进行debug,通过了,则本次ECO基本结束。

  g, 关于formality图形界面debug, 使用start_gui打开formality的图像界面之后,会列出一系列没有对比通过的点,这些点是寄存器。Formality会将这些寄存器的输入端D的一部分逻辑显示出来,并标上1和0;对比REF和IMP的两个寄存器,会发现他们有1和0不一致的某些输入端,追踪这些输入端,直到定位到我们修改的部分,再观察是哪些逻辑没有比对上;往前追信号是很繁琐的,寄存器输入端D前面的有些逻辑在REF和IMP中是不一样的,很可能会追迷惑,导致追丢,会比较耗精力,直到追溯到我们修改的部分。

   h, 注意,如果ECO修改不是基于寄存器来修改的,而是基于某些组合逻辑信号,那么很可能在PR网表中是找不到这个信号的,其次,即使能找到信号,但是信号的极性是反的;如果修改的信号不多,这种极性相反的情况也还好处理,一旦多起来,就要耗费很多时间去修改-验证-再修改-再验证,甚至可能无法修改(非寄存器信号极多的时候)。

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| 在线咨询 |  EETOP 创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2021-9-21 21:35 , Processed in 0.029970 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部