Quantcast
Channel: Cadence Custom IC Skill Forum
Viewing all articles
Browse latest Browse all 5187

CIW error messages for SKill script

$
0
0

Hello,

I have a sample skill script, on running it gives an error message in the CIW.

Here is the Code:

procedure(place_devices(cellView devLib devCell Length nfunit wfunit DUM1nf DUM1wf DUM2nf DUM2wf yPitch Pattern)
let((params array nRows nCols Type dev name nf wf inst devCounts x y xPitch (x0 0.0) (y0 0.0))

devCounts=makeTable('DEVCOUNT 0)
array = listToVector(foreach(mapcar row reverse(pattern) listToVector(parseString(row " "))))
nRows=length(pattern)
y=y0
for(row 0 nRows-1
x=x0
nCols=length(array[row])
for(col 0 nCols-1
dev=array[row][col]
devCounts[dev]++
name=sprintf(nil "%s.%d" dev devCounts[dev])
Type=cond(
(eq('M getchar(array[row][col] 1)) 'device)
(zerop(row) && (zerop(col) || col==nCol-1) 'corner)
(zerop(col) && (zerop(row) || row==nRows-1) 'corner)
(zerop(row) || row==nRows-1 'topBottom)
(zerop(col) || col==nCols-1 'leftRight)
(t 'dummy)
)
caseq(Type
((device dummy)
nf=nfunit
wf=wfunit
)

(corner
nf=DUM1nf
wf=DUM2wf
)

(topBottom
nf=DUM2nf
wf=DUM2wf
)

(leftRight
nf=DUM1nf
wf=DUM1wf
)

(t error("type=%l\n" Type)
)
)

params = list(
list("l" "string" aelSuffixNotation(1u * Length))
list("wf" "string" aelSuffixNotation(1u * wf))
list("fingers" "string" sprintf(nil "%d" nf))
list("routePolydir" "string" "Top")
) ; params

when(zerop(col)
; Device is on left edge. Add detached bodytie.
params = xcons(params
list("bodytie_type" "string" "Detached"))
)

when(col==nCols-1
; Device is on right edge. Add detached bodytie.
params = xcons(params
list("bodytie_typeR" "string" "Detached"))
)

inst=dbCreateParamInstByMasterName(cellView devLib devCell "layout" list(x y) "R0" params)
xPitch = nf * (Length + 0.1) + 0.12

;; TODO: Replace numbers with space/extension params
;; Or, use rodGetObj and/or M1 geometry of the
;; inst->master cellView to calculate the xPitch
;; of the instantiated device

;; Calculate x coordinate for next device
x = x + xPitch

)
)

)) ; let ; procedure

place_devices(
geGetEditCellView() ; cellView
"tsmcN65" ; devLib
"pch" ; devCell
0.2 ; Length (um)
2 ; nfunit
6.0 ; wfunit (um)
2 ; DUM1nf
6.0 ; DUM1wf (um)
2 ; DUM2nf
2.0 ; DUM2wf (um)
1.0 ; yPitch (um)
list(
"Du Du Du Du Du"
"Du M1 M2 M1 Du"
"Du M2 M1 M2 Du"
"Du Du Du Du Du"
) ; pattern (rows)
)

here is the message in the CIW for the highlighted line above:

*Error* dbCreateParamInstByMasterName: argument #6 should be a list (type template = "dggggltxlg") at line 67

Can you please tell me what is the issue with that? how can i define the orientation in a list?

Regards


Viewing all articles
Browse latest Browse all 5187

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>