Cadence skill說話簡介
)
( condition1 exp11 exp12 ... )
("Number:" 1)
==
car( cdr( ... ) )
對應參數的意義如下,printf需要注意輸出類型的對應
)
) ; cond
upper right corner
numeric
when( inPort
case的判斷可所以數位和字串,也能夠是它們構成的list,但不支援變數和運算式
and
print 和 println 函數都可以用來顯示單個資料,println可以在顯示的資料後多加一個回車
Skill說話有n多函數,加上眾多東西的介面函數,可以用不計其數來形容,初學者可能會感應蒙頭轉向,無從下手。其實只要瞭解根基的變數,節制語句,輸入輸出和一些經常使用工具的基本函數就可以了,大多數函數都可以用到再查閱。入手下手進修skill時可以細心看看SKILL Language User Guide,其他的可以用到時再查閱,這裏列出幾個常常會用到的文檔:SKILL Language Reference -Skill說話相幹的函數,Cadence User Interface SKILL Functions Reference-Cadence利用程式圖形介面介面函數,Design Framework II SKILL Functions Reference,SKILL Custom Layout Reference,SKILL Schematic Composer Reference別離是Cadence的Design Framework II,邦畿,電路的介面函數。
greaterp
Number: 3
else expN1expN2 ....
llx = caar( bBox)
!=
%[-][width][.precision]conversion_code
P - point list (Ignores width and precision fields.)
3.3. Skill List是Skill基於Lisp(List Processing)語言的顯示,它是skill資料物件的一個有序調集,skill資料甚至程式自己都可以看作是一個list,這是C說話中所沒有的概念。下面是skill list的簡單例子
Function
) ; foreach
inPort = infile( "~/.cshrc" )
if…then…else的then是不能省略的(除了只有一個if,沒有else的情況),
case( shapeType
bBox = list( lowerLeft upperRight )
t
這是調用skill函數的一個常見問題,其他的問題還有:
d - decimal(integer)
返回的成績是最後一個計較的運算式,是以與/或邏輯操作可以取代繁瑣的if / when等節制語句,例如:C說話中的操作符, a>b ? c=a : c=b; 即c取a b中較大的一個Skill中沒有雷同的操作符,可以用下面語句來完成此操作:
用list命令和 ' 來表示一個bBox,list命令先計較變數或運算式,然後賦給list,' 默示的list和字面的一樣,不管帳算變數或運算式的值
car( car( cdr( ... ) ) )
println( list( "Number:" i) myPort )
B - Bounding box list (Ignores width and precision.)
c - character
"hello"
"hello""hello""hello"
(fibonacci (difference n 2))))
運行cdsdoc&, 點擊Search打開Cadence help的搜索功能,工具會自動啟動一個http服務,同時打開搜索網頁,啟動辦事後,你也能夠在windows的IE裏輸入http://hostname:9000/search.htm,一樣可以打開搜刮頁面,需要注意的是,在C:\WINNT\system32\drivers\etc\hosts檔中需要插手hostname對應的ip,如:
Skill語言的許多處所和C說話差不多,如變數,函數,節制佈局,輸入輸出等,具體的介紹可以參考User Guide,這裏只作簡單介紹。
返回的成績都是 => "Hello翻譯社 everyone!"
Specify all the elements as evaluated arguments to the list function.
a = 1 => 1
2).用cons饬令添加一個元素到一個list的頭部
nth用索引接見list的某個元素,注意索引從0入手下手
B). 接見list或list中某些元素的方式:
numeric
Function
while( gets( nextLine inPort )
3). 從檔讀取資料:intfile定義輸入介面檔,gets一次從介面檔讀取一行字串,fscanf憑據指定的花式從介面檔讀取,close封閉打開的介面
close( myPort )
foreach( shapeType shapeTypeList
( "polygon" ++polygonCount )
1. Skill說話和Lisp說話的關係
(defun fibonacci (n)
)
2.1 Skill函數的查閱方式
Example
xValue = 300 length( numbers ) => 3 member( 4 numbers ) => nil numbers = '( 1 2 3 ) => ( 1 2 3 ) cdr訪問list除第一個元素外的其他元素,注意返回依然是個list bBox = '(( 300 400 ) ( 500 450 )) Using car and cdr with Bounding Boxes Expression cadr |
也可以用邏輯操作符: c = (a>b)&&a || (a<b)&&b t general Example lessp leqp |
3.0 == 3 |
t |
|||||||||||||||||||||||
Sample Logical Operators |
general nil |
println( nextLine ) 打開~/.cshrc,輸出檔的每行 輸出到檔/tmp/myFile2. myPort = outfile( "/tmp/myFile2" ) 輸出到檔 /tmp/myFile1. s - string or symbol [.precision] = number of characters to be printed ) Skill程式就像一個list表,類似Lisp語言,程式的操作就像運算元據(list)一樣,可以生成,點竄,求值等
3.1. Skill的變數不需要事前聲明,Skill第一次用到是會主動生成變數。變數可以由字元、數位、“_” 和 “?” 構成,注意第一個字元不克不及是數位和”?”。由於Cadence所開辟的Skill中的變數、函數都是第一個字母小寫,以_為開首的是Cadence的專用函數,為了避免衝突,建議各人函數和變數定名都以大寫字母開首翻譯 3.2. Skill的函數的調用體式格局有三種, a. 軟體沒回應,好比在CIW中輸入段代碼,軟體沒有反映,什麼後果也沒有,通常爲因為( )或者” “不成對釀成的,一般可以經由過程鍵入 ] 來解決,它默示補充完舛錯稱的括弧(可以代替隨意率性多個右括弧),若是還沒有回應,鍵入 “] 這時大部份環境下,系統會有回應 or a symbol (type template = "S") – 5 (1) A list containing the single element 1 list( a b 3 ) => ( 1 2 3 ) car( numbers ) => 1 Listc = append( Lista Listb) => ( 4 5 6 1 2 3 ) >= |
numeric |
println( word ) shapeTypeList = '( "rect" "polygon" "rect" "line" ) => ( "rect" "polygon" "rect" "line" ) 上面臨skill語言作了一個或者的介紹,固然進修skill需要瞭解的許多,這裏就不再一一作詳細的介紹了,只是對一些需要注意的地方做一下總結,具體的照舊要進修User Guide 2.首碼表示法 SKILL說話支援一套近似C語言的語法,初學者有了一定的C語言基礎,入門是很輕易的翻譯Cadence的東西可以經由過程CIW,Bindkey,Form,Menu等多種方式挪用skill函數,送到skill說話的註釋器來履行各種操作。 固然還有其他眾多東西的介面函數,是以Skill需要方便的函數查閱方法,這裏列出3種:
|
通過car和cdr的組合可以訪問bBox每一個元素,而且有相關的簡化函數,如下表: lowerLeft = 300:400 xCoord( aCoordinate ) => 300 Cadence help的搜刮功能默許是用Netscape打開搜刮網頁,假如沒有裝Netscape,可能會打不開網頁。可以先打開firefox,mozila等流覽器,再啟動cadence doc搜刮http辦事,這樣就可以打開搜索網頁了 |
string list strcat( "Hello" "," " everyone" "!" ) ;常見的類C格局
|
||||||||||||||||||||
y-coord of lower left corner equal cadar ) 4 >=3 |
t |
|||||||||||||||||||||||||
x-coord of lower left corner numeric caar ) numeric List的相關操作有良多,這裏就不具體介紹了,可以參考User Guide裏的Advanced List Operations 2). 邏輯操作符,以下表:
strcat "Hello" "翻譯社" " everyone" "!" ;上面的括弧可以省略 |
"hello" |
|||||||||||||||||||||||||
ury = cadadr( bBox) |
cadadr |
urx = caadr( bBox) |
=> *Error* eval: not a function - "Hello" |
strcat( "Mary had a" 5 ) |
||
留言列表