SKILL:从指定library中自动调取所有cell
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SKILL:从指定library中自动调取所有cell相关的知识,希望对你有一定的参考价值。
参考技术A 说明:自动调取library中的layout cell到当前打开的cell中。procedure(inst_all_cells(libname)
let((cv libid is_cell_there x width)
x=0.0
cv=getEditRep()
libid=ddGetObj(libname)
foreach(cell libid~>cells~>name
printf("instancing %L\n" list(libname cell))
is_cell_there = ddGetObj(libname cell "layout")
if(is_cell_there then
xcv = dbOpenCellViewByType(libname cell "layout" "maskLayout" "r")
when(xcv
width=getPrbWidth(xcv)
dbCreateInst(cv xcv "" list(x 0) "R0")
x=x+width
)
dbClose(xcv)
)
)
)
)
procedure(getPrbWidth(xcv)
prog((prblayer prb width)
if(xcv then
prblayer=setof(x xcv~>shapes x~>lpp=='("prBoundary" "drawing"))
(注意prBoundary修改成STDcell中的prboundary层)
prb=car(prblayer)
width=rightEdge(prb)-leftEdge(prb)
return(width)
else
return(nil)
)
)
)
procedure(inst_all_cells(libname)
let((cv libid is_cell_there x width)
x=0.0
cv=getEditRep()
libid=ddGetObj(libname)
foreach(cell libid~>cells~>name
printf("Working on %L\n" list(libname cell))
is_cell_there = ddGetObj(libname cell "layout")
if(is_cell_there then
xcv = dbOpenCellViewByType(libname cell "layout" "maskLayout" "r")
when(xcv
width=rightEdge(xcv)-leftEdge(xcv)
dbCreateInst(cv xcv "" list(x 0) "R0")
x=x+width
)
dbClose(xcv)
)
)
)
)
base(C# 参考)
原文地址:https://msdn.microsoft.com/zh-cn/library/hfw7t1ce.aspx
base 关键字用于从派生类中访问基类的成员:
-
调用基类上已被其他方法重写的方法。
-
指定创建派生类实例时应调用的基类构造函数。
基类访问只能在构造函数、实例方法或实例属性访问器中进行。
从静态方法中使用 base 关键字是错误的(这里情况估计和this关键字一致,因为静态方法属于类一级,而非属于对象一级)。
所访问的基类是类声明中指定的基类。 例如,如果指定 class ClassB : ClassA,则无论 ClassA 的基类如何,从 ClassB 上访问 ClassA 的成员。
示例
在本例中,基类 Person 和派生类 Employee 都有一个名为 Getinfo 的方法。 通过使用 base 关键字,可以从派生类中调用基类的 Getinfo 方法。
public class Person { protected string ssn = "444-55-6666"; protected string name = "John L. Malgraine"; public virtual void GetInfo() { Console.WriteLine("Name: {0}", name); Console.WriteLine("SSN: {0}", ssn); } } class Employee : Person { public string id = "ABC567EFG"; public override void GetInfo() { // Calling the base class GetInfo method: base.GetInfo(); Console.WriteLine("Employee ID: {0}", id); } } class TestClass { static void Main() { Employee E = new Employee(); E.GetInfo(); } } /* Output Name: John L. Malgraine SSN: 444-55-6666 Employee ID: ABC567EFG */
示例
本示例显示如何指定在创建派生类实例时调用的基类构造函数。
public class BaseClass { int num; public BaseClass() { Console.WriteLine("in BaseClass()"); } public BaseClass(int i) { num = i; Console.WriteLine("in BaseClass(int i)"); } public int GetNum() { return num; } } public class DerivedClass : BaseClass { // This constructor will call BaseClass.BaseClass() public DerivedClass() : base() { } // This constructor will call BaseClass.BaseClass(int i) public DerivedClass(int i) : base(i) { } static void Main() { DerivedClass md = new DerivedClass(); DerivedClass md1 = new DerivedClass(1); } } /* Output: in BaseClass() in BaseClass(int i) */
以上是关于SKILL:从指定library中自动调取所有cell的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Alexa Skill lambda 函数中正确指定 SSML?
有关其他示例,请参见 new、virtual 和 override。