info的选项有很多
info exists
语法格式为:
info exists var
意思是说info exists varName
如果名为varName
的变量在当前上下文(作为全局或局部变量)存在,返回1,否则返回0。
create cell
这句cmd是SNPS的cmd,代表的意思是说创建一个leaf cells或者是一个hierarchy cell在当前的design或者是sub_design.
set SDFF SVN_FSDPQ0_8
create_cell cisco $SDFF
如上,首先是定义SDFF是lib里面的哪一颗SDFF,然后create一个新的cell出来,这个cell的reference_name是这个SVN_FSDPQ0_8的cell,从而,tool会创建一个名字叫做cisco的cell,并且指导这个新cell的端口方向,pin的数目等的创建。
create_net
可以指导create_net可以创建一个net的list,如果有选项-power的话,就会接power,如果有选项-ground的话,就会接地。
不过这个只在topo模式下有效
在net_list里面可以创建的是signle bit的net,一定要注意的是在一个hierarchy下面只能有一个唯一名字的net。
如果你想将这些scalar net(signle bit)变成bus的话,可以用create_bus的命令
注意,你在一个hierarchy下面创建的net都是没有连接的,如果你想要建立起来连接关系,你需要使用cmd:
connect_net
如果你想要移除掉这种连接关系,可以使用remove_net
这个cmd。
如上的例子,在当前的中,在mid1的sub design下面创建了net:
N1 N2 N3 N4 .
然后如果要看见是否创建成果,可以采用get_nets mid1*
也就是把hierarchy在mid1下面的net都抓了出来。
connect_net
這句cmd的作用是connect指定过的net到指定的pin或者是ports上面。
注意这个net必须是signgle bit,不可以是bus,必须要存在在当前的design中。
net是指明要连接的net
object_list指的是net要连接到的pin和ports的list,如果这个ports或者说pin已经被连接上了,那么tool就会报错。一个net可以连接到很多pin或者ports,但是你不能一个pin或者ports上连接是超过一个net。
另外net,你可以再任何hierarchy下面,但是,你指定的所有port和pins必须要在一个hierarchy 。
如上图所示,pin和ports要在指定的net相同的hierarchy,换句话说创建的net不能跨域自己的hierarchy去连接。
实验验证如下,一旦跨域,就会报错。
如下图,可以看到我们create的port,当没有指明方向的时候默认是input
如下图所示,可以看到相当于整个port assign赋值给了CISCO这个net。
如上,可以看到默认连接到了input,而这个net还是floating的。
现在再创近一个output,然后将这个CISCO的net连接到了output上去。
疑问:如何指定任意一个地方创建了net后,然后连接到任意的port上?