在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 428|回复: 2

[求助] 之前在公司实习使用的后端脚本,求大神解释

[复制链接]
发表于 2024-6-5 22:38:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
主要有这两个文件看不懂,希望有人能讲讲这两个文件在干什么,如果想要深入了解学习,需要往哪个方向学习,有哪些知识储备
脚本1



## gflow proc gflow_exec_plug_cmds
proc gflow_exec_plug_cmds { var_name } {
    global gflow
    puts "GFLOW INFo: exec plug cmds var $var_name"
    if { [ info exists $var_name] } {
        eval "set all cmds \$$var name"
        if { [ llength $all_cmds ] > 0 } {
            foreach cmd $all_cmds {
                puts "GFLOW INFO: plug cmd: $cmd"
                if { [ catch {eval $cmd} err1 err2 ] } { puts $err1 ; puts $err2 }
            }
            puts "GFLOW INFO: finish exwc plug cmds $var_name"
        } else {
            puts "GFLOW INFO : var $var_name defined is empty"
        }
    } else {
        puts "GFLOW INFO: can't find var $var_name defined"
    }
    return
}

##gflow proc gflow_source_plug_file
proc gflow_source_plug_file { file_path } {
    global gflow
    puts "GFLOW INFO: source plug file $file_path"
    if { [ file exists $file_path ] } {
        if { [ catch { source -verbose $file_path } err1 err2 ] } { puts $err1 ; puts $err2 }
        puts "GFLOW INFO: finish source plug file $file_path"
    } else {
        puts "GFLOW INFO: can't find plug file $file_path"
    }
    return
}

#gflow fer gflow no empty value
proc gflow_get_gflow_no_empty_vaule { init mode args } {
    global gflow
    set result $init
    foreach var $args {
        if { [ info exists $var ] && $mode == 0 } { eval "if { ! \[ regexp {^\s*$} \$${var} \] } { set result \$${var} } " }
        if { [ info exists $var ] && $mode == 1 } { eval "set result \$${var}" }
    }
    return $result
}

脚本2

if { [array exists gflow] } { unset gflow }
global gflow
set gflow(block_eco_signoff_targets) {staeco preco prfinish genrc gandm gencdl mergedm lvs drc ant sta gentwf sir dir sem}
set gflow(block_signoff_targets) {prfinish genrc gendm gencdl mergedm lvs drc ant sta gentwf sir dir sem}
set gflow(boundart_cell,addEndCap,-prefix){END_CAP}
set gflow(boundary_cell,setEndCapMode,-bottomEdge) {GDCAPBWP7T FILL1BWP7T}
set gflow(boundary_cell,setEndCapMode,-boundary_tap) {true}
set gflow(boundary_cell,setEndCapMode,-leftEdge) {DCAPBWP7T}
set gflow(boundary_cell,setEndCapMode,-rightEdge) {DCAPBWP7T}
set gflow(boundary_cell,setEndCapMode,-topEdge) {GDCAPBWP7T FILL1BWP7T}
set gflow(boundary_cell,set_well_tap_mode,-bottom_tap_cell) {TAPCELLBWP7T}
set gflow(boundary_cell,set_well_tap_mode,-cell) {TAPCELLBWP7T}
set gflow(boundary_cell,set_well_tap_mode,-rule) {28}
set gflow(boundary_cell,set_well_tap_mode,-top_tap_cell) {TAPCELLBWP7T}
set gflow(boundary_cell,use_gflow_script) {true}
set gflow(boundary_cell,user_script) {}
set gflow(calibre,lvs,post_includes) {
    { LVS BOX EE0256X1CA180GM01 EE0256X1CA180GM01 }  
}
set gflow(ccopt_property,buffer_cells) {CKBD1OBWP7T CKBD8BWP7T CKBD6BWP7T CKBD4BWP7T}
set gflow(ccopt_property,clock_gating_cells) {CKLNQD8BWP7T CKLNQD6BWP7T CKLNQD4BWP7T CKLNQD2BWP7T CKLHQD8BWP7T CKLHQD6BWP7T CKLHQD4BWP7T CKLHQD2BWP7T}  
set gflow(ccopt_property,inverter cells) {CKND1OBWP7T CKND8BWP7T CKND6BWP7T CKND4BWP7T}
set gflow(ccopt_property,logic_cells) {CKXOR2D4BWP7T CKXOR2D2BWP7T CKMUX2D2BWP7T CKMUX2D1BWP7T CKAN2D8BWP7T CKAN2D4BWP7T CKAN2D2BWP7T CKND2D4BWP7T CKND2D3BWP7T CKND2D2BWP7T}
set gflow(ccopt_property,max_fanout) {20}
set gflow(ccopt_property,max_source_to_sink_net_length) {350}
set gflow(ccopt_property,primary_delay_corner) {ss_1p62v_125c_cmax_125c}
set gflow(ccopt_property,target_max_trans) {0.5}
set gflow(ccopt_property,target_skew) {0.5}
set gflow(ccopt_property,use_inverters) {true}




发表于 2024-6-6 02:16:29 | 显示全部楼层
第一个脚本 gflow_exec_plug_cmds 是拼接命令,gflow_source_plug_file 设置源文件 , gflow_get_gflow_no_empty_vaule 判断是不是有空值变量。第二个脚本是设置boundary cell 也就是芯片的四个边, 接下来就是设置pdk里对应逻辑单元的单元数组之后就是设置些必要参数。 这些脚本都是tcl脚本语言,学好tcl脚本语言然后再看看EDA有啥对外 function 和咋使用,那写个流程不是问题。
 楼主| 发表于 2024-6-6 09:51:57 | 显示全部楼层


轩辕志瑜 发表于 2024-6-6 02:16
第一个脚本 gflow_exec_plug_cmds 是拼接命令,gflow_source_plug_file 设置源文件 , gflow_get_gflow_no_ ...


好的好的 非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-6-20 23:09 , Processed in 0.042199 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表