Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Cadence SKILL ipcBeginProcess() vs sh()

Status
Not open for further replies.

Flaxter

Newbie
Newbie level 2
Joined
Dec 8, 2015
Messages
2
Helped
0
Reputation
0
Reaction score
1
Trophy points
1
Activity points
24
Hi there,
I'm trying to run Calibre within Cadence environment using SKILL functions. So far I have two ways to do it. Both of which work and I got the final goal. However, running Calibre with the following code:
Method 1)
CommandLine="calibre -drc -hier _myDrcSetup_"
ipcP=ipcBeginProcess(CommandLine) ipcWait(ipcP)

takes around 25 minutes to complete the DRC run. (*Note: I get no log from Calibre on my terminal even so I use ipcBeginProcess with no option). On the same layout, using the following code:
Method 2)
CommandLine="calibre -drc -hier _myDrcSetup_"
sh(CommandLine)

I got the results in less than 5 minutes.I got all the log information on my terminal while Calibre is running.
My question is:
Why ipcBeginProcess takes so much more time ? I am more willing to use that because it seems a more elegant way to handle the task but taking that much longer is really frustrating and unacceptable. Also I am a bit concern that sh() can somehow mess up the whole flow of the script. And second of all, why ipcBeginProcess does not produce any Calibre log info in the parent terminal window?
 

You are running DRC on oa OR gds??
Try this
Take gds first, and run calibre on gds with ipcBeginProcess. let me know the result.
 

I've already found the reason for this. It seems that running calibre as a child process produces a lot of stdout data. That excess floods the input buffer and slows down the process. The solution is to redirect that data properly ( to .log file in this case):

CommandLine="calibre -drc -hier _myDrcSetup"
ipcP=ipcBatchProcess(CommandLine "" "./myCalibre.log")
ipcWait(ipcP)
 
Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top