包括shape 和re-shape 、 cell density map 、pin density map 、timing map 、timing chart 、highlight timing path 、clock structure map、highlight module、Fin-Fet grid check等。
準備系統(tǒng)研究一下INNOVUS。讀者們?nèi)绻€想知道更多,歡迎底部留言。
Floorplan?view?和Amoeba?view和Physical?view
在INN的gui界面的右上角有三個如圖所示的logo,從左到右分別是Floorplan view 和Amoeba view和Physical view。
Amoeba View可以清晰的看到hire module的place邊界,可以用來指導調(diào)整floorplan形狀和module位置。
Physical?view會清晰顯示blocks, standard cells, nets, blockage、連線shape,可以移動任何object。
Floorplan view可以看到各個logic module的形狀和交互關系,還可以基于module做partition(切分)子模塊。
Shape 和Re-shape
指定形狀,F(xiàn)looplan→Specify Floorplan。
Flooplan→Specify Floorplan→Cut Rect就會有一個小剪刀出來,可以對flooplan進行reshape,這樣可以得到多邊形的floorplan。
cell?density map和pin?density?map
Place→Display→Display Density Map可以顯示cell density map,還可以手動調(diào)整顯示的density map的范圍。例如0% → 100%。此時INN的命令行還會顯示每個bin(類似于route的gcell,是一個place單元范圍)的大小 (圖中是24site*10row),還會顯示每個density區(qū)間的bin數(shù)量的百分比。
Place→Display→Display Pin Density Map可以顯示pin density map,較高的pin density一般會導致local congestion,可以考慮提前換inst 類型,或者手動控制cell density來規(guī)避。
Clock?tree?structure?map
Clock – CCOpt Clock Tree Debugger可以顯示時鐘樹結構,有什么作用呢?可以從后端的角度判斷時鐘結構是否合理或者是否有錯誤。
Timing?map
Timing → Display Timing Map可以顯示以endpoint為標的的timing violation各個區(qū)間的分布情況。也可以手動調(diào)整范圍大小。
Debug?timing?report
Timing → Debug Timing可以load不同的timing report進來,會在gui界面生成按violation大小前后分布的表單和條形圖,點擊每個path的endpoint可以在gui上highlight不同的path。
Highlight某一條特定的timing?path
在physical Viewer模式下,將report_timing 和-gui同時使用就可以,例如:
report_timing -from? TDSP_CORE_INST_DECODE_INST_ir_reg[8]/clk -to? TDSP_CORE_INST_EXECUTE_INST_p_reg[31]/d?-gui
Highlight?hierarchy?module
方法1:可以在hierarchy browser中選中某些inst或者module,手動著色。
方法2:可以使用腳本。
腳本1:
proc highlightModule { } {
set file1 [open module_highlight.tcl w]
puts $file1 "dehighlight -all;setPreference HighlightColorNumber 16"
set module_list [dbGet top.hInst.treeHInsts.name *]
set count 0
foreach m $module_list {
if {$count != 0 && $count < 17 } { puts $file1 "selectModule $m ; highlight -index $count;deselectAll " }
incr count
}
close $file1
}
定義了一個proc?“highlightModule”,執(zhí)行這個proc就會自動給hierarchy?module著色,不過這個hierarchy?module?list是通過?“dbGet top.hInst.treeHInsts.name *”這個命令展開的,這個命令似乎會展開所有層次,可能不太好用。
改進方法是可以手動指定hier關鍵字或者hier深度。
proc highlight_macro_per_module {{depth 0}} {
set hier_list [get_db designs .local_hinsts -depth $depth]
set i 1
foreach hier $hier_list {
set macro_list [get_db [get_db $hier .insts -if {.base_cell.base_class == "block"}] .name]
if {$macro_list != ""} {
selectInst $macro_list
highlight -index $i
deselectAll
if {$i < 63} {
incr i
} else {
set i 1
}}}}
tech?Fin-Fet grid
在 FinFET 中,F(xiàn)ET 柵極環(huán)繞擴散鰭的三個側面,如下所示。這在垂直鰭結構的三個側面形成導電通道。與平面晶體管相比,這種方法可以更好地控制溝道電流??梢允褂枚鄠€鰭片來提供更多電流。
INN可以識別Fin-Fet規(guī)則,F(xiàn)in-Fet規(guī)則在tech lef中定義,包括X軸的pitch和Y軸的pitch。
命令:
snapFPlan -all,可以自動將floorplan中的macro等object snap到Fin-Fet格點。