包括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等。
準(zhǔn)備系統(tǒng)研究一下INNOVUS。讀者們?nèi)绻€想知道更多,歡迎底部留言。
Floorplan?view?和Amoeba?view和Physical?view
在INN的gui界面的右上角有三個(gè)如圖所示的logo,從左到右分別是Floorplan view 和Amoeba view和Physical view。
Amoeba View可以清晰的看到hire module的place邊界,可以用來(lái)指導(dǎo)調(diào)整floorplan形狀和module位置。
Physical?view會(huì)清晰顯示blocks, standard cells, nets, blockage、連線shape,可以移動(dòng)任何object。
Floorplan view可以看到各個(gè)logic module的形狀和交互關(guān)系,還可以基于module做partition(切分)子模塊。
Shape 和Re-shape
指定形狀,F(xiàn)looplan→Specify Floorplan。
Flooplan→Specify Floorplan→Cut Rect就會(huì)有一個(gè)小剪刀出來(lái),可以對(duì)flooplan進(jìn)行reshape,這樣可以得到多邊形的floorplan。
cell?density map和pin?density?map
Place→Display→Display Density Map可以顯示cell density map,還可以手動(dòng)調(diào)整顯示的density map的范圍。例如0% → 100%。此時(shí)INN的命令行還會(huì)顯示每個(gè)bin(類(lèi)似于route的gcell,是一個(gè)place單元范圍)的大小 (圖中是24site*10row),還會(huì)顯示每個(gè)density區(qū)間的bin數(shù)量的百分比。
Place→Display→Display Pin Density Map可以顯示pin density map,較高的pin density一般會(huì)導(dǎo)致local congestion,可以考慮提前換inst 類(lèi)型,或者手動(dòng)控制cell density來(lái)規(guī)避。
Clock?tree?structure?map
Clock – CCOpt Clock Tree Debugger可以顯示時(shí)鐘樹(shù)結(jié)構(gòu),有什么作用呢?可以從后端的角度判斷時(shí)鐘結(jié)構(gòu)是否合理或者是否有錯(cuò)誤。
Timing?map
Timing → Display Timing Map可以顯示以endpoint為標(biāo)的的timing violation各個(gè)區(qū)間的分布情況。也可以手動(dòng)調(diào)整范圍大小。
Debug?timing?report
Timing → Debug Timing可以load不同的timing report進(jìn)來(lái),會(huì)在gui界面生成按violation大小前后分布的表單和條形圖,點(diǎn)擊每個(gè)path的endpoint可以在gui上highlight不同的path。
Highlight某一條特定的timing?path
在physical Viewer模式下,將report_timing 和-gui同時(shí)使用就可以,例如:
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,手動(dòng)著色。
方法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
}
定義了一個(gè)proc?“highlightModule”,執(zhí)行這個(gè)proc就會(huì)自動(dòng)給hierarchy?module著色,不過(guò)這個(gè)hierarchy?module?list是通過(guò)?“dbGet top.hInst.treeHInsts.name *”這個(gè)命令展開(kāi)的,這個(gè)命令似乎會(huì)展開(kāi)所有層次,可能不太好用。
改進(jìn)方法是可以手動(dòng)指定hier關(guān)鍵字或者h(yuǎn)ier深度。
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)繞擴(kuò)散鰭的三個(gè)側(cè)面,如下所示。這在垂直鰭結(jié)構(gòu)的三個(gè)側(cè)面形成導(dǎo)電通道。與平面晶體管相比,這種方法可以更好地控制溝道電流??梢允褂枚鄠€(gè)鰭片來(lái)提供更多電流。
INN可以識(shí)別Fin-Fet規(guī)則,F(xiàn)in-Fet規(guī)則在tech lef中定義,包括X軸的pitch和Y軸的pitch。
命令:
snapFPlan -all,可以自動(dòng)將floorplan中的macro等object snap到Fin-Fet格點(diǎn)。