设为首页 加入收藏

TOP

静态时序分析STA基础(一)
2023-08-06 07:49:46 】 浏览:165
Tags:时序分 STA 基础

@

一、TCL语言和synopsys TCL语言入门

基本目标:
1.掌握常用TCL基本指令(至少要看得懂)
2.掌握常用synopsys TCL常用指令,包括信息与属性的获取以及过滤
3.重点关注TCL正则匹配与文本处理方法,能够写出简单的文本处理脚本

1.1 TCL基本指令

置换:变量置换$、命令置换[]、反斜杠置换\

变量赋值与输出:set、puts

其他:\t、\n、""、{}、#

set X 1.2
set Y 1.3
puts "[expr $X + $Y]"		
#结果为2.5
puts "\[expr $X + $Y\]"		
#结果为[expr 1.2 + 1.3]
puts "\[expr \$X + \$Y\]"	
#结果为[expr $X + $Y\]
puts {\[expr \$X + \$Y\]}	
#结果为[expr \$X + \$Y\]

数组:使用array指令获取数组信息

set cell_1(ref_name) "bufx2"
set cell_1(full_name) "top/cell_1"
set cel1_1(pins) "A B C"
puts $cell_1(ref_name)	
#结果为bufx2 
arry size cel1_1	
#结果为3
arry names cel1_1	
#结果为ref_name full_name pins

列表:concat、lindex、llength、lappend、lsort

在这里插入图片描述

set list1 {bufx1 bufx2 bufx4}	
set list2 {ivtxl ivtx2 ivtx4}
concat $list1 $list2	
#输出结果为bufx1 bufx2 bufx4 ivtxl ivtx2 ivtx4
llength $list1	
#输出结果为3
llength [concat $list1 $list2]	
#输出结果为6
lindex $list1 1	
#输出结果为bufx2 
lindex $list1 [expr [llength $list1] - 1]	
#输出结果为bufx4 
lappend list1 bufx5
#输出结果为bufx1 bufx2 bufx4 bufx5
set list3 {4 1 2 3 2 1}
lsort -real $list3
#按数字大小排序,输出结果为1 1 2 2 3 4
lsort -unique $list3
#按唯一性输出1 2 3 4


控制流:if、foreach、break、continue、while、for
Tips:脚本语句的'{'一定要写在上一行,因为如果不这样,TCL 解释器会认为if命令在换行符处已结束,下一行会被当成新的命令,从而导致错。

if
在这里插入图片描述

foreach……break
在这里插入图片描述

foreach……continue
在这里插入图片描述

while
在这里插入图片描述
for
在这里插入图片描述

过程函数:proc
Tips:指令global,可以在过程内部引用全部变量

proc proc_name {argument} {
	......
	return return_value
}

在这里插入图片描述

正则匹配:
\w,用来匹配一个字母、数字、下划线
\d ,用来匹配一个数字
\s表示空格
. 表示任意一个字符

正则匹配-量词在这里插入图片描述

正则匹配-锚位
在这里插入图片描述
捕获变量
在这里插入图片描述

文本处理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 synopsys TCL常用语言

1.信息获取

#语法
get_ports 端口名称
get_cells 单元名称
get_nets 网表名称
get_pins 管脚名称

获取信息的时候可以搭配通配符*去获取想要的信息,以get_ports指令为例子:

get_ports *		#返回所有的端口名称
get_ports I*	#返回所有的以I开头的端口名称
get_ports *1	#返回所有的以1结尾的端口名称

在这里插入图片描述

2.属性获取


get_attribute [get_cells 单元名] ref_name
#单元对象 的 ref_name 属性:用来保存其映射到参考单元的名称

get_attribute [get_nets 网表名] full_name
#网表对象 的 full_name 属性:用于保存网表名称

get_attribute [get_pins 单元/引脚] owner_net
#引脚对象 的 owner_net 属性:用来保存与之相连的网表名称

get_attribute [get_ports 单元名] direction
#端口对象 的 direction 属性:用来保存端口的方向

3.属性过滤和对象连接

get_ports 端口名 -f "过滤条件"
#“-f”可以用来过滤属性,以得到我们想要的object

get_nets -of [get_ports 端口名]
#“-of”可以用来得到指定object相连接的object

在这里插入图片描述
在这里插入图片描述

二、STA基本概念

2.1 时序弧(Timing Arc)与线延迟、单元延迟

时序弧用来描述,两个节点延时信息的参数。通常分为Net delay(线延迟)Cell delay(单元延迟)。其中Cell delay(单元延迟)内部有两种延迟,分别为 Transition delay(翻转延迟)Logic gate delay(

首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇痞子衡嵌入式:AppCodeHub - 一站.. 下一篇Espressif乐鑫AT固件库使用全梳理

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目