晶圓廠(FAB)提供的library一般有HVT/SVT/LVT枷遂,在cell delay方面湿蛔,HVT>SVT>LVT; 而在power方面, HVT<SVT<LVT
一般出于功耗的考慮,綜合時盡量使用HVT抵知,避免使用LVT墙基,甚至完全禁用LVT;如果timing無法滿足刷喜,則可以考慮使用部分LVT cell残制。使用LVT cell有兩種做法,一種是前端綜合時完全禁用LVT吱肌,后端在修timing的時候痘拆,進(jìn)行LVT cell的替換;另外一種就是在綜合時氮墨,放開LVT cell的使用纺蛆,盡量滿足timing的要求吐葵。
這篇文章主要講如何在綜合的時候使用Multi-VT library,以及如何查看各個VT library在綜合后的gate netlist中的占比(以Synopsis的Design Compiler為例)
1. 在綜合時使用Multi-VT library
在target_library中加入相關(guān)VT的library
譬如桥氏,原來只有HVT的target_library:
set target_library "hvt_wc.db"
現(xiàn)在要加入LVT library温峭,改成下面這樣既可:
set target_library "hvt_wc.db lvt_wc.db"
2. 限制LVT or SVT cell的占比
可以使用set_multi_vth_constraint來約束LVT/SVT cell使用的比例,不過從實際應(yīng)用來看字支,效果一般凤藏。建議不加這個約束,讓Design Compiler根據(jù)timing driver自主決定使用LVT/SVT的比例
set_multi_vth_constraint -lvth_percentage 10.0 -lvth_groups {lvt} -type soft/hard
-type soft/hard: default是soft堕伪,表示timing優(yōu)先揖庄,Design Compiler在滿足timing的情況下,盡量滿足LVT占比要求欠雌;如果改成hard蹄梢,則以LVT占比為優(yōu)先,這樣timing可能會受到影響
3. 查看各個VT library在綜合后gate netlist中的占比
我們比較關(guān)心使用LVT library后富俄,LVT cell在整個gate netlist中的占比禁炒,如果占比過大,功耗方面可能沒法接受霍比。
可以使用report_threshold_voltage_group來查看各個VT library在綜合后gate netlist中的占比
在使用這個command之前幕袱,要先設(shè)置HVT/LVT library,讓tool可以清晰的知道要檢查和區(qū)分的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}