Hello
I am using Ic 616 along with calibre for physical verification.
I have a file that has a custom made layout and am trying to instantiate it in another layout out file (create multiple instances of that cell). When I run DRC, the CIW shows the following message:
ERROR (XSTRM-341): The translation stopped for the following reason: Cannot open design RRAMgen/1T1R_LEAF_tune/layout: "Open of RRAMgen/1T1R_LEAF_tune/layout failed - primary file for design is invalid.". Ensure that the specified cellview exists on disk and that you have permission to open it, then run the translation again.
I do not know though if this is a calibre related issue or I can fix it through SKILL. A snippet from my skill is below:
procedure(LEAF(m,cvID)
;cvID=dbOpenCellViewByType("RRAMgen" "1T1R_LEAF_tune" "layout" "maskLayout" "w")
;dbCreateRect(cvID list("RX" "drawing") list(0:0.36 0.38:0.6))
;dbCreateRect(cvID list("M1" "drawing") list(0:0.36 0.12:0.6))
;dbCreateRect(cvID list("M2" "drawing") list(0:0.36 0.12:0.6))
;dbCreateRect(cvID list("V1" "drawing") list(0.01:0.43 0.11:0.53))
;dbCreateRect(cvID list("CA" "drawing") list(0.015:0.435 0.105:0.525))
;dbCreateRect(cvID list("M1" "drawing") list(0.26:0.36 0.38:0.6))
;dbCreateRect(cvID list("M2" "drawing") list(0.26:0.056 0.38:0.6))
;dbCreateRect(cvID list("V1" "drawing") list(0.27:0.43 0.37:0.53))
;dbCreateRect(cvID list("CA" "drawing") list(0.275:0.435 0.365:0.525))
;dbCreateRect(cvID list("PC" "drawing") list(0.16:0.111 0.22:0.875))
for(i 1 m
dbCreateRect(cvID list("RX" "drawing") list(0:0.36+(i-1)*0.24 0.38:0.6+(i-1)*0.24))
dbCreateRect(cvID list("M1" "drawing") list(0:0.36+(i-1)*0.24 0.12:0.6+(i-1)*0.24))
dbCreateRect(cvID list("M2" "drawing") list(0:0.36+(i-1)*0.24 0.12:0.6+(i-1)*0.24))
dbCreateRect(cvID list("V1" "drawing") list(0.01:0.43+(i-1)*0.24 0.11:0.53+(i-1)*0.24))
dbCreateRect(cvID list("CA" "drawing") list(0.015:0.435+(i-1)*0.24 0.105:0.525+(i-1)*0.24))
dbCreateRect(cvID list("M1" "drawing") list(0.26:0.36+(i-1)*0.24 0.38:0.6+(i-1)*0.24))
dbCreateRect(cvID list("M2" "drawing") list(0.26:0.056+(i-1)*0.24 0.38:0.6+(i-1)*0.24))
dbCreateRect(cvID list("V1" "drawing") list(0.27:0.43+(i-1)*0.24 0.37:0.53+(i-1)*0.24))
dbCreateRect(cvID list("CA" "drawing") list(0.275:0.435+(i-1)*0.24 0.365:0.525+(i-1)*0.24))
dbCreateRect(cvID list("PC" "drawing") list(0.16:0.111+(i-1)*0.24 0.22:0.905+(i-1)*0.24))
)
dbCreateRect(cvID list("M1" "drawing") list(0:0.6+(m-1)*0.24 0.12:0.82+(m-1)*0.24))
dbCreateRect(cvID list("M2" "drawing") list(0:0.6+(m-1)*0.24 0.12:0.82+(m-1)*0.24))
dbCreateRect(cvID list("V1" "drawing") list(0.01:0.709+(m-1)*0.24 0.11:0.809+(m-1)*0.24))
dbCreateRect(cvID list("PC" "drawing") list(0.08:0.905+(m-1)*0.24 0.22:1.045+(m-1)*0.24))
dbCreateRect(cvID list("M1" "drawing") list(0.07:0.91+(m-1)*0.24 0.23:1.040+(m-1)*0.24))
dbCreateRect(cvID list("V1" "drawing") list(0.105:0.93+(m-1)*0.24 0.195:1.0195+(m-1)*0.24))
dbCreateRect(cvID list("RR" "drawing") list(0.17:0.0 0.47:0.3))
dbCreateRect(cvID list("VRB" "drawing") list(0.27:0.1 0.37:0.2))
dbCreateRect(cvID list("VRT" "drawing") list(0.27:0.1 0.37:0.2))
dbCreateRect(cvID list("M1" "drawing") list(0.26:0.069 0.64:0.229))
dbCreateRect(cvID list("V1" "drawing") list(0.53:0.099 0.63:0.199))
dbCreateRect(cvID list("M2" "drawing") list(0.52:0.0 0.64:0.229))
)
procedure(T1Rarray(M,N,m,cvID,cellID)
;cvID=dbOpenCellViewByType("RRAMgen" "1T1R_LEAF_tune" "layout")
;cellID = dbOpenCellViewByType("RRAMgen" "1T1R_array" "layout" "maskLayout" "w")
cell_height = 1.09+(m-1)*0.24
cell_width = 0.74
for(i 1 M
for(j 1 N
dbCreateInst(cellID cvID nil (j-1)*cell_width:(i-1)*cell_height "R0" 1)
)
)
for(i 1 N
dbCreateRect(cellID list("M2" "drawing") list(0.52+(i-1)*cell_width:0.0 0.64+(i-1)*cell_width:0.229+(M-1)*cell_height))
)
for(i 1 M
dbCreateRect(cellID list("M1" "drawing") list(0.0:0.09+0.6+(m-1)*0.24+(i-1)*cell_height 0.12+(N-1)*cell_width:0.09+0.6+(m-1)*0.24+0.13+(i-1)*cell_height))
dbCreateRect(cellID list("M1" "drawing") list(0.07:0.31+0.6+(m-1)*0.24+(i-1)*cell_height 0.23+(N-1)*cell_width:0.31+0.6+(m-1)*0.24+0.13+(i-1)*cell_height))
)
)
m=4
M=2
N=8
;load("/data1/RRAMgen/1T1Rgen.il")
;LEAF(m)
cvID=dbOpenCellViewByType("RRAMgen" "1T1R_LEAF_tune" "layout" "maskLayout" "w")
LEAF(m,cvID)
cellID = dbOpenCellViewByType("RRAMgen" "1T1R_array" "layout" "maskLayout" "w")
T1Rarray(M, N, m, cvID, cellID)