布局布线工具INNOVUS使用心得

电子说

1.2w人已加入

描述

Floorplan view 和Amoeba view和Physical view

在INN的gui界面的右上角有三个如图所示的logo,从左到右分别是Floorplan view 和Amoeba view和Physical view。

时钟树

Amoeba View可以清晰的看到hire module的place边界,可以用来指导调整floorplan形状和module位置。

时钟树

Physical view会清晰显示blocks, standard cells, nets, blockage、连线shape,可以移动任何object。

Floorplan view可以看到各个logic module的形状和交互关系,还可以基于module做partition(切分)子模块。

时钟树

Shape 和Re-shape

指定形状,Flooplan→Specify Floorplan。

时钟树

时钟树

Flooplan→Specify Floorplan→Cut Rect就会有一个小剪刀出来,可以对flooplan进行reshape,这样可以得到多边形的floorplan。

时钟树

cell density map和pin density map

Place→Display→Display Density Map可以显示cell density map,还可以手动调整显示的density map的范围。

例如0% → 100%。此时INN的命令行还会显示每个bin(类似于route的gcell,是一个place单元范围)的大小 (图中是24site*10row),还会显示每个density区间的bin数量的百分比。

时钟树

时钟树

时钟树时钟树

Place→Display→Display Pin Density Map可以显示pin density map,较高的pin density一般会导致local congestion,可以考虑提前换inst 类型,或者手动控制cell density来规避。

Clock tree structure map

Clock – CCOpt Clock Tree Debugger可以显示时钟树结构,有什么作用呢?可以从后端的角度判断时钟结构是否合理或者是否有错误。

时钟树

时钟树

Timing map

Timing → Display Timing Map可以显示以endpoint为标的的timing violation各个区间的分布情况。也可以手动调整范围大小。

时钟树时钟树

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”,执行这个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 中,FET 栅极环绕扩散鳍的三个侧面,如下所示。这在垂直鳍结构的三个侧面形成导电通道。

与平面晶体管相比,这种方法可以更好地控制沟道电流。可以使用多个鳍片来提供更多电流。

时钟树

INN可以识别Fin-Fet规则,Fin-Fet规则在tech lef中定义,包括X轴的pitch和Y轴的pitch。

命令:

snapFPlan -all,可以自动将floorplan中的macro等object snap到Fin-Fet格点。

时钟树







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分