# "calibre view generation encountered a fatal error" but spectre PEX extraction works

#### OG_

##### Newbie level 5
"calibre view generation encountered a fatal error" but spectre PEX extraction works

Hello,

I am using cadence (version 16) and calibre.

I have a DRC and LVS clean layout and was able to extract a spectre PEX netlist and simulate it from the command line. However, it seems much easier to use the calibreview file to run the PEX outputs in spectre. Almost all of the tutorials I find online do it this way.

However, when I run the calibreview extraction I get the following in the output log file:

Code:
Summary of Options :
library                                 chip
strmFile                               ./calibre/AND6.calibre.db
topCell                                 AND6
view                                    layout
runDir                                 ./calibre/
logFile                                 PIPO.LOG.AND6
summaryFile                             PIPO.SUM.AND6
case                                    Preserve
convertDot                              node

INFO (XSTRM-223): 1. Translating cellView TECH_XI10/POLY1CON/layout as STRUCTURE POLY1CON_CDNS_560263268430
INFO (XSTRM-223): 2. Translating cellView TECH_XI10/VIA_C/layout as STRUCTURE VIA_C_CDNS_560263268431
INFO (XSTRM-223): 3. Translating cellView PRIMLIB/nbta4/layout as STRUCTURE nbta4_CDNS_560263268430
INFO (XSTRM-223): 4. Translating cellView PRIMLIB/pbta4/layout as STRUCTURE pbta4_CDNS_560263268431
INFO (XSTRM-223): 5. Translating cellView PRIMLIB/pbta4/layout as STRUCTURE pbta4_CDNS_560263268432
INFO (XSTRM-223): 6. Translating cellView PRIMLIB/nbta4/layout as STRUCTURE nbta4_CDNS_560263268433
INFO (XSTRM-223): 7. Translating cellView chip/AND6/layout as STRUCTURE AND6
INFO (XSTRM-180): You have not used the objectMap option. The design has instance(s) of at least one of following OpenAccess objects: oaBlockage, oaBoundary, oaRow, and oaMarker. Any information about these objects will not be translated into the generated stream file. Use the objectMap option to translate/preserve these objects using XStream. For details on the objectMap option, refer to the "Design Data Translator's Reference" guide for XStream.

Summary of Objects Translated:
Scalar Instances:                       14
Array Instances:                        0
Polygons:                               4
Paths:                                  0
Rectangles:                             397
Lines:                                  0
Arcs:                                   0
Donuts:                                 0
Dots:                                   0
Ellipses:                               0
Boundaries:                             0
Area Blockages:                         0
Layer Blockages:                        0
Area Halos:                             0
Markers:                                0
Rows:                                   0
Standard Vias                           32
Custom Vias:                            0
CdsGen Vias:                            0
Pathsegs:                               117
Text:                                   0
TextDisplay:                            9
Cells:                                  7

Elapsed Time: 0.1s   User Time: 0.1s   CPU Tim
e: 0.0s   Peak VM: 3080KB

INFO (XSTRM-234): Translation completed. '0' error(s) and '1' warning(s) found.

log port port:"./calview.log"
//
//  CalibreView Settings:
//	  Netlist File: ./calibre/AND6.pex.netlist
//	  Output Library: chip
//	  Schematic Library: chip
//	  Cellmap File: /opt/xfab/XKIT/xi10/mentor/v2_0/PEX_calibre/v2_0_2/calview.cellmap
//	  Log File: ./calview.log
//	  Calibre View Name: calibre
//	  Magnify Devices by: 1.000000
//	  Magnify Parasitics by: 1.000000
//	  Create Terminals: if matching terminal exists on symbol
//	  Reset Properties: ("m=1")
//	  Generate SPECTRE Netlist: off
//
****************************
Running Back Annotation Flow
****************************
Calibre View generation encountered a fatal Error.
Please consult the logfile for messages.

*Error* close: argument #1 should be an I/O port (type template = "p") - nil
All that the log file has is "*Error* close: argument #1 should be an I/O port (type template = "p") - nil"

Here is a screenshot of my setup:

Do you know what this error means or how I can fix it? Let me know if you need more info. Thank you so much!

Last edited by a moderator:

#### ljp2706

Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

Have you tried re-running PEX after the first failed attempt? Particular versions of this tool seem to have a bug where you have to run it twice, the second time usually passes. This error reminds me of that bug I saw a while ago.

#### OG_

##### Newbie level 5
Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

Thank you for the reply! I have tried running it dozens of times, changing things to try to get it to work...no luck. Do you use calibre view as the export format? I'm still trying to figure out what is the quickest way to do PEX in a modular way and don't even know if calibre view is the best idea, but I'm not sure how to use spectre to simulate the other views without a lot of work each time changing things within files.

#### ljp2706

Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

Can you provide some screenshots or details of your runset for PEX? That would make it a lot easier to debug. Also, can you list the step by step procedure of the PEX run you’re doing?

#### OG_

##### Newbie level 5
Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

Can you provide some screenshots or details of your runset for PEX? That would make it a lot easier to debug. Also, can you list the step by step procedure of the PEX run you’re doing?
Sure, thank you! I am following a tutorial like this View attachment Cadence_Tutorial_Lab_2_F16 (15).pdf

1. In calibre PEX window in rules tab select the PEX rules file from my foundry (I've looked at it and it seems to look like a pex rules file)
2. In inputs, I have the layout file selected automatically and I have export from layout viewer selected. The layout file is ".db" and the format is GDSII
3. Under Netlist tab in inputs I have the schematic file generated that I used also for LVS. I do not have export from schematic viewer clicked, but I have not changed the schematic and I do not get an LVS error.
4. In outputs tab I have calibreview selected as the format, use names from schematic and the output is the name of my cellview followed by ".pex.netlist" I've changed this a few times and it does not have an effect on the error.
5. In PEX options I label my ground node name with my ground net name in the Netlist>>format tab
6. I then click Run PEX
7. The PEX report file and a netlist file pop up and look like so:

8. the calibreview window also pops up and I select the netlist that was just output from PEX, and the cellmap from my foundry. Here is the image:

When I click ok I get the error on the last line of this output. Here is the whole output:

Code:
Summary of Options :
library                                 chip
topCell                                 AND6_ver2
view                                    layout
logFile                                 PIPO.LOG.AND6_ver2
summaryFile                             PIPO.SUM.AND6_ver2
case                                    Preserve
convertDot                              node

INFO (XSTRM-223): 1. Translating cellView TECH_XI10/POLY1CON/layout as STRUCTURE POLY1CON_CDNS_560518861040
INFO (XSTRM-223): 2. Translating cellView TECH_XI10/VIA_C/layout as STRUCTURE VIA_C_CDNS_560518861041
INFO (XSTRM-223): 3. Translating cellView PRIMLIB/nbta4/layout as STRUCTURE nbta4_CDNS_560518861040
INFO (XSTRM-223): 4. Translating cellView PRIMLIB/pbta4/layout as STRUCTURE pbta4_CDNS_560518861041
INFO (XSTRM-223): 5. Translating cellView PRIMLIB/pbta4/layout as STRUCTURE pbta4_CDNS_560518861042
INFO (XSTRM-223): 6. Translating cellView PRIMLIB/nbta4/layout as STRUCTURE nbta4_CDNS_560518861043
INFO (XSTRM-223): 7. Translating cellView chip/AND6_ver2/layout as STRUCTURE AND6_ver2
INFO (XSTRM-180): You have not used the objectMap option. The design has instance(s) of at least one of following OpenAccess objects: oaBlockage, oaBoundary, oaRow, and oaMarker. Any information about these objects will not be translated into the generated stream file. Use the objectMap option to translate/preserve these objects using XStream. For details on the objectMap option, refer to the "Design Data Translator's Reference" guide for XStream.

Summary of Objects Translated:
Scalar Instances:                       14
Array Instances:                        0
Polygons:                               4
Paths:                                  0
Rectangles:                             397
Lines:                                  0
Arcs:                                   0
Donuts:                                 0
Dots:                                   0
Ellipses:                               0
Boundaries:                             0
Area Blockages:                         0
Layer Blockages:                        0
Area Halos:                             0
Markers:                                0
Rows:                                   0
Standard Vias                           32
Custom Vias:                            0
CdsGen Vias:                            0
Pathsegs:                               117
Text:                                   2
TextDisplay:                            7
Cells:                                  7

Elapsed Tim
e: 0.1s   User Time: 0.1s   CPU Time: 0.0s   Peak VM: 3076KB

INFO (XSTRM-234): Translation completed. '0' error(s) and '1' warning(s) found.

log port port:"./calview.log"
//
//  CalibreView Settings:
//	  Output Library: chip
//	  Schematic Library: chip
//	  Cellmap File: /opt/xfab/XKIT/xi10/mentor/v2_0/PEX_calibre/v2_0_2/calview.cellmap
//	  Log File: ./calview.log
//	  Calibre View Name: calibre
//	  Magnify Devices by: 1.000000
//	  Magnify Parasitics by: 1.000000
//	  Create Terminals: if matching terminal exists on symbol
//	  Reset Properties: ("m=1")
//	  Generate SPECTRE Netlist: off
//
****************************
Running Back Annotation Flow
****************************
Calibre View generation encountered a fatal Error.
Please consult the logfile for messages.

*Error* close: argument #1 should be an I/O port (type template = "p") - nil
Let me know if you need more detail/clarification! Thanks again!

#### ThisIsNotSam

Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

I think the tool is having issues with outputting a log file. Make sure the folder has write permission set correctly. Make sure the logfile argument is being passed correctly.

#### OG_

##### Newbie level 5
Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

I think the tool is having issues with outputting a log file. Make sure the folder has write permission set correctly. Make sure the logfile argument is being passed correctly.
I see a file created called "calview.log" in the folder I run it from (the name assigned in the calibreview pop up menu) and in the file this is all that is there:

Code:
//
//  CalibreView Settings:
//	  Output Library: chip
//	  Schematic Library: chip
//	  Cellmap File: /opt/xfab/XKIT/xi10/mentor/v2_0/PEX_calibre/v2_0_2/calview.cellmap
//	  Log File: ./calview.log
//	  Calibre View Name: calibre
//	  Magnify Devices by: 1.000000
//	  Magnify Parasitics by: 1.000000
//	  Create Terminals: if matching terminal exists on symbol
//	  Reset Properties: ("m=1")
//	  Generate SPECTRE Netlist: off
//
The netlist file is created as well (I see it with the correct time stamp). Why do you think my log file is not being generated correctly? I think it must have had write permission because it wrote this, no?

#### ljp2706

Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

What do your pins look like? Do you have a metal on the appropriate layer, label included too? No “illegal” names such as “+”, “-“, etc. pins should be on the “pin” layer if that’s in the pdk otherwise, put it on the “drw” layer. Labels go on “lbl“, needs to be on the same metal layer too.

Did you include the PEX rule file?

Any ERC warnings?

Did you do anything atypical in schematic/layout?

#### OG_

##### Newbie level 5
Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

What do your pins look like? Do you have a metal on the appropriate layer, label included too? No “illegal” names such as “+”, “-“, etc. pins should be on the “pin” layer if that’s in the pdk otherwise, put it on the “drw” layer. Labels go on “lbl“, needs to be on the same metal layer too.

Did you include the PEX rule file?

Any ERC warnings?

Did you do anything atypical in schematic/layout?
My pins are on MET1 - pin layer, my label is on MET1 pin layer (there was no label layer, and I got LVS to work by putting it on this layer), I am not using any illegal names.

Yes, I included the PEX rule file as the first step.

No ERC warnings. My DRC was clean and my LVS was clean. I had the following LVS warnings though:
Code:
LVS BOX cell "HALL_ND" not located or not allowed.
Cannot enable LVS PUSH DEVICES because pin location information was requested.
Could this be the problem?

#### ljp2706

Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

After the PEX run completes, are there any other error messages in the CIW?

Are you sure that the ground node name that you entered is correct, and is present on your layout? Try running it once without enabling this to see if that might be the issue.

#### OG_

##### Newbie level 5
Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

After the PEX run completes, are there any other error messages in the CIW?

Are you sure that the ground node name that you entered is correct, and is present on your layout? Try running it once without enabling this to see if that might be the issue.
No, there are no other errors in the CIW besides the one I reported in the original post. I am sure that my ground node name I entered is correct and present on my layout (it would fail LVS if this were not consistent and as I said it passes LVS). However, I did rerun it without enabling the ground node name and I got the same error.

I am wondering if there is something wrong with the cellmap file because I cannot see what else it would be at this point. Do you have any more ideas?

Thank you so much for the thoughts so far!

#### ljp2706

Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

Not sure, I agree with one of the previous comments that you might need to check your permissions. See if you have write access to the directory that everything is stored in. That might very well be part of the issue.

#### OG_

##### Newbie level 5
Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

Not sure, I agree with one of the previous comments that you might need to check your permissions. See if you have write access to the directory that everything is stored in. That might very well be part of the issue.
Just checked and I do have read and write permission.

Okay so here is one lead I had. I talked with mentor people and they said add this to your source file "export CALIBRE_ENABLE_SKILL_PEXBA_MODE=1" This got my calibre error to go away but now I'm having simulation issues with spectre. Will update you all as I find the solution...

#### ljp2706

Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

What are the simulation errors? Also, what does the CIW say after the file is generated?

#### whedaboard

##### Newbie
Re: "calibre view generation encountered a fatal error" but spectre PEX extraction wo

Hi, have you solved this issue?
I was doing calibre PEX, and also encountered almost the same issue "Error rexReplace: argument #1 should be a string(type template = "ttx")"
I tried another design without mimcap (MIM capacitor) and it can create calibre view without any issue. But this one with mimcap, it has issue.
The ridiculous thing is, previously(2 months ago) everything is alright.