Use Multi-VT library with Design Compiler

晶圆厂(FAB)提供的library一般有HVT/SVT/LVT,在cell delay方面,HVT>SVT>LVT; 而在power方面, HVT<SVT<LVT

一般出于功耗的考虑,综合时尽量使用HVT,避免使用LVT,甚至完全禁用LVT;如果timing无法满足,则可以考虑使用部分LVT cell。使用LVT cell有两种做法,一种是前端综合时完全禁用LVT,后端在修timing的时候,进行LVT cell的替换;另外一种就是在综合时,放开LVT cell的使用,尽量满足timing的要求。

这篇文章主要讲如何在综合的时候使用Multi-VT library,以及如何查看各个VT library在综合后的gate netlist中的占比(以Synopsis的Design Compiler为例)

1. 在综合时使用Multi-VT library

在target_library中加入相关VT的library

譬如,原来只有HVT的target_library:

set target_library "hvt_wc.db"

现在要加入LVT library,改成下面这样既可:

set target_library "hvt_wc.db lvt_wc.db"

2. 限制LVT or SVT cell的占比

可以使用set_multi_vth_constraint来约束LVT/SVT cell使用的比例,不过从实际应用来看,效果一般。建议不加这个约束,让Design Compiler根据timing driver自主决定使用LVT/SVT的比例

set_multi_vth_constraint -lvth_percentage 10.0 -lvth_groups {lvt} -type soft/hard

-type soft/hard: default是soft,表示timing优先,Design Compiler在满足timing的情况下,尽量满足LVT占比要求;如果改成hard,则以LVT占比为优先,这样timing可能会受到影响

3. 查看各个VT library在综合后gate netlist中的占比

我们比较关心使用LVT library后,LVT cell在整个gate netlist中的占比,如果占比过大,功耗方面可能没法接受。

可以使用report_threshold_voltage_group来查看各个VT library在综合后gate netlist中的占比

在使用这个command之前,要先设置HVT/LVT library,让tool可以清晰的知道要检查和区分的cell的类型

set_attribute [get_libs hvt_wc] -type string default_threshold_voltage_group hvt

set_attribute [get_libs lvt_wc]  -type string default_threshold_voltage_group lvt

report_threshold_voltage_group -lvth_groups {hvt lvt}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 以下三个是最经常被问到的,基本上属于介绍性的题目,无所谓正确答案,在我看来,这些不算真正的问题。 Discuss ...
    蜀湘情缘阅读 6,232评论 0 8
  • 匆匆那年,时过境迁,现在想来多想回到那从前。 四个多小时的火车硬座,再一次体会到这个社会的冷暖,每次坐火车都有一种...
    iiKris阅读 184评论 0 1
  • 我要好好活着,为了单亲的伤痛不在延续。我要好好活着,为了一对可爱的儿女不会像我自卑痛苦着回忆。 我要好好活着,因为...
    徽州骑士阅读 396评论 0 3
  • 挺好看的,依然保持着横山秀夫一贯的写实风格,展现给读者们非常真实,具现实主义的普通刑警们工作、生活中的状态。科室内...
    乌丽曼阅读 1,239评论 0 1
  • 6 才聚了一场,又散 既然散,那就算 还要我怎样 7 说句狠话 把回忆抹杀 不曾拿起,何谈放下 8 窗外的细雨,浸...
    孤独风阅读 310评论 2 1