We installed the Calibre (x86_cal_2011.4_35.27) on both 32-bit and 64-bit Linux
machines with IC615 (IC-6.1.5-hf510). But it does not seem
working properly. The calibre interface can be opened, but the DRC and
RVE can not be run and showed the following errors:
*Error* fprintf/sprintf: format spec. incompatible with data - "Format is '%s -hierDepth %s', argument #2 is 20"<<< Stack Trace >>>_sprintf("%s -hierDepth %s" strm_cmd (streamOutKeys->hierDepth))
(strm_cmd = _sprintf("%s -hierDepth %s" strm_cmd (streamOutKeys->hierDepth)))sprintf(strm_cmd "%s -hierDepth %s" strm_cmd (streamOutKeys->hierDepth))when(((streamOutKeys->
Has anyone met the same problem?
In reply to Andrew Beckett:
I am installing Caliber 2011 versions
(ixl_cal_2011.4_35.27 for 64bit linux and x86_cal_2011.4_35.27 for 32bit
linux) on Cadence IC615 with IBM-0.13um CMRF8SF design kit.
In Cadence virtuoso IC layout menu, I can successfully pop up the
Caliber interface with Runsets, but when push the DRC buttom, it seems
that Cadence can not export the layout cellview to Calibre and gives the above errors. I choose the "GDSII" format in the input file menu in Calibre.
I will also ask the question in Mentor forum.
In reply to Xiongliang:
It appears that Calibre is trying to run the stream out and it doesn't know that you are using a 6.1 version of Cadence software. The stream out tools are different in 5.1.41 and 6.1 so Calibre probably needs some environment variable to let it know what version to run. The error message indicates that a 5.1.41 stream out template file is being used. This is a Skill based template file with a disembodied property list streamOutKeys. In 6.1, the template file uses a simple text file with key words in the first column and values (sometimes) in the second column.
If you start Cadence with some wrapper that sets up environment variables, you'll need to set the same variables when starting Calibre. I don't know if it is looling for $OA_HOME or for virtuoso (6.1) in the path or for strmout (6.1) in the path.
In reply to dmay:
Could you be more specific about the setting of the enviroment variables. In my script, I only have two enviroment variables to setup the Calibre:
$MENTORHOME points to the mentor home directory
$MGC_HOME points to the specific version of Calibre
When $MGC_HOME points to 2010 versions of Calibre, e.g. ixl_cal_2010.4_26.16, IC615 can properly pops up the Calibre interface and do the DRC check, but when $MGC_HOME points to 2011 versions of Calibre, e.g. ixl_cal_2011.4_35.27, IC615 can still pops up the Calibre interface but DRC check can not be streamed out anymore.
Could you please explain?
Actually streamOutKeys is supported in IC615 (it wasn't in early versions of IC61X) - and it does appear from the stack trace as if this is code for the "OA" version. Regardless of whether it was supported or not, it's Mentor's code that appears to be processing streamOutKeys.
Do you have streamOutKeys defined? Try typing streamOutKeys in the CIW and seeing what it shows. In particular, look at streamOutKeys->hierDepth . From the stack trace it appears that the code is trying to format a string and is finding that streamOutKeys->hierDepth is an integer rather than a string. So I expect it to be showing 20 rather than "20" which is what it's expecting.
So try doing:
and seeing if that helps. Maybe their code has changed between the two versions you are trying?
Still is a question best asked of Mentor customer support (I'd got to their support, rather than asking on a forum).
This problem can be addressed by making a couple of minor changes to the file mgc_export.skl which is found in the mentor/calibre tree. In that file, you will see the format strings being used to process hierDepth and maxVertices (they both will fail, but the stack trace occurs on the first failure).
Using Andrew's suggestion, we first determined what streamOutKeys-hierDepth is being set to - string or decimal. They we alter the format string to match. Same for maxVertices.
Exercise care, especially if you are in a multi-version environment. At some point in the past, we edited our file to expect decimals, and now we have to undo it. It seems different IC or Calibre sub-versions may have built streamOutKeys differently. I am not sure which tool actually builds that data structure.