<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.cadence.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Custom IC SKILL - Recent Threads</title><link>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill</link><description>[b]Moderator:[/b] Andrew Beckett.</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: preview for analogLib sources without running a simulation,</title><link>https://community.cadence.com/thread/1408894?ContentTypeID=1</link><pubDate>Fri, 10 Jul 2026 13:50:13 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:2197fe99-b43c-457b-a0d1-18e09170505a</guid><dc:creator>Andrew Beckett</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408894?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66153/preview-for-analoglib-sources-without-running-a-simulation/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;There&amp;#39;s nothing built-in for this. I wrote some SKILL code in 1993 to do this (goodness me...) but given that I last updated it 29 years ago, I don&amp;#39;t feel comfortable with sharing it since it only covered basic usage of vsin, vpulse, vpwl, isin, ipulse and ipwl - it didn&amp;#39;t cover vsource/isource (they weren&amp;#39;t implemented in analogLib at the time) and there have been a lot of changes to all these sources in the meantime. Even some of the plotting functions used are from 3 waveform tools ago, so who knows whether it still works!&lt;/p&gt;
&lt;p&gt;Andrew&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>preview for analogLib sources without running a simulation,</title><link>https://community.cadence.com/thread/66153?ContentTypeID=0</link><pubDate>Fri, 10 Jul 2026 09:10:52 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:e5ef40d0-0708-46bb-a892-5f5213a6069f</guid><dc:creator>dogman4</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/66153?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66153/preview-for-analoglib-sources-without-running-a-simulation/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi，friends&lt;/p&gt;
&lt;p&gt;&lt;span&gt;What methods are there to preview analogLib sources without running a simulation?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;My virtuoso version: &amp;quot;@(#)$CDS: virtuoso version 6.1.8-64b 09/03/2024 19:11 (sjfhw316) $&amp;quot;&lt;br /&gt;My spectre version: Version19.1.0.063 64bit--10 Aug 2019&lt;/span&gt;&lt;/p&gt;
&lt;div id="phraseJoinewrskdfdswerhnyikyofd" data-v-app=""&gt;
&lt;div class="xx-qy-style-dark" data-v-f4d4888e=""&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>How to run an interactive external script from SKILL?</title><link>https://community.cadence.com/thread/66124?ContentTypeID=0</link><pubDate>Wed, 01 Jul 2026 11:57:53 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:39e0230a-7a09-4293-bbeb-27ff3690c0dc</guid><dc:creator>LoVyacheslavvVEMs</dc:creator><slash:comments>4</slash:comments><comments>https://community.cadence.com/thread/66124?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66124/how-to-run-an-interactive-external-script-from-skill/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p class="isSelectedEnd"&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;Hi,&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;I need to launch an external script from SKILL. The script itself is not under my control - it may be a shell script, Python script, executable, or any other program.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;The important part is that the script may pause at arbitrary points and wait for user input from stdin. When this happens, I would like to prompt the user in Virtuoso (for example, using an AppForm), send the entered text back to the running process, and then continue its execution.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;I know about &lt;code dir="ltr"&gt;system()&lt;/code&gt; and &lt;code dir="ltr"&gt;ipcBeginProcess()&lt;/code&gt;, but I&amp;#39;m not sure whether SKILL supports this kind of interactive communication with a child process.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;Is there a supported way to:&lt;/span&gt;&lt;/p&gt;
&lt;ul data-spread="false"&gt;
&lt;li&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;launch an external interactive process from SKILL;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;detect when it is waiting for input;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:inherit;font-size:150%;"&gt;send user input back to the process while it is running?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Thanks in advance.&lt;/span&gt;&lt;/p&gt;</description></item><item><title>RE: How to run an interactive external script from SKILL?</title><link>https://community.cadence.com/thread/1408831?ContentTypeID=1</link><pubDate>Thu, 02 Jul 2026 13:36:28 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:13eeba65-0ca0-4404-809e-42697a7c113f</guid><dc:creator>Andrew Beckett</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408831?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66124/how-to-run-an-interactive-external-script-from-skill/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;You are not allowed to republish content from the ASK portal (so for that reason, I removed it).&lt;/p&gt;
&lt;p&gt;You should be able to log in - if you are having trouble, follow the link on the login page &lt;a href="https://www.cadence.com/en_US/home/support/help.html#cos"&gt;Cadence ASK Help&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to run an interactive external script from SKILL?</title><link>https://community.cadence.com/thread/1408830?ContentTypeID=1</link><pubDate>Thu, 02 Jul 2026 13:24:18 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:e319de1f-9b0b-4f28-a0f5-309419c42040</guid><dc:creator>JY20260624860</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408830?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66124/how-to-run-an-interactive-external-script-from-skill/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Here is the sample code from the linked page:&amp;nbsp;&lt;a href="https://ask.cadence.com/ASK/article-viewer?id=a1Od0000000uI5gEAE&amp;amp;pageName=article-viewer"&gt;Interfacing between Shell, Perl, Tcl, and Python commands in Virtuoso&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="mcetoc_1jshg076d0"&gt;&lt;/h1&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;Content Removed by Moderator&lt;/em&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to run an interactive external script from SKILL?</title><link>https://community.cadence.com/thread/1408828?ContentTypeID=1</link><pubDate>Thu, 02 Jul 2026 11:33:57 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:00ac7b88-9d24-425a-992d-ae6005b69e09</guid><dc:creator>LoVyacheslavvVEMs</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408828?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66124/how-to-run-an-interactive-external-script-from-skill/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Thank you very much for your reply!&lt;/p&gt;
&lt;p&gt;Unfortunately, due to circumstances beyond my control, I&amp;#39;m currently unable to authenticate, so I can&amp;#39;t access the solution you linked.&lt;/p&gt;
&lt;p&gt;Would it be possible for you to post the solution here? It would really help me, and I think it could also be useful for other people who come across this thread in the future.&lt;/p&gt;
&lt;p&gt;Thank you in advance!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to run an interactive external script from SKILL?</title><link>https://community.cadence.com/thread/1408822?ContentTypeID=1</link><pubDate>Wed, 01 Jul 2026 12:33:34 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:3893c33f-0da4-4483-b377-ddfccec5e3f1</guid><dc:creator>RobMan</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408822?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66124/how-to-run-an-interactive-external-script-from-skill/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;a href="https://ask.cadence.com/ASK/article-viewer?id=a1Od0000000uI5gEAE&amp;amp;pageName=article-viewer"&gt;Interfacing between Shell, Perl, Tcl, and Python commands in Virtuoso&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>maeGroupAsParametricSet has no ?session argument</title><link>https://community.cadence.com/thread/66122?ContentTypeID=0</link><pubDate>Wed, 01 Jul 2026 09:12:35 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:0231d9be-20f1-4b27-a959-dd9b95b706a4</guid><dc:creator>SK202511261716</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/66122?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66122/maegroupasparametricset-has-no-session-argument/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I have a SKILL script running inside a form which at one point needs to create a parametric set for the Design Variables of a particular Test. I&amp;#39;m using maeGroupAsParametricSet for this, and it&amp;#39;s worked well so far. Unfortunately I&amp;#39;ve just run into a problem: if I have multiple maestro windows open, maeGroupAsParametricSet starts to misbehave. Unlike other mae functions, it can&amp;#39;t be provided a ?session argument. So if I run my form from the second maestro view that I&amp;#39;ve opened, it will fail to find the Test I specify, because it&amp;#39;s looking for it in the first maestro view. I tested this with maeGetTestSession: if I don&amp;#39;t provide the ?session argument, it returns nil, whereas if I do provide it, it runs successfully. This suggests to me that maeGroupAsParametricSet is looking in the first view by &amp;quot;default&amp;quot;, and lacking a ?session argument it can&amp;#39;t be told to look elsewhere. Am I misunderstanding something here, or is there a workaround for this?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The warning message that appears after calling maeGroupAsParametricSet reads as follows:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;WARNING (ASSEMBLER-1602): Cannot find test &amp;lt;TESTNAME&amp;gt; in the setup database. The test name passed to this function does not exist in the setup database. Perhaps the name was misspelled or has not yet been created. The test needs to be created before calling this function.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;I&amp;#39;m on version IC23.1-64b&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Prevent Net Extraction for Shapes</title><link>https://community.cadence.com/thread/66080?ContentTypeID=0</link><pubDate>Wed, 17 Jun 2026 07:44:07 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:0dba0de2-ca40-40b2-9ce7-a749af8f13e4</guid><dc:creator>PK202501238151</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/66080?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66080/prevent-net-extraction-for-shapes/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;is there a way to prevent net extraction for specific shapes? I&amp;#39;m generating layouts with external tools and mark the with `lxStickyNet = t` to prevent their nets to change by the extraction. However, there are also shapes that have no net assigned, and they change connectivity, even though lxStickyNet is set.&lt;/p&gt;
&lt;p&gt;Thanks, kind regards,&lt;/p&gt;
&lt;p&gt;Patrick&lt;/p&gt;</description></item><item><title>RE: Prevent Net Extraction for Shapes</title><link>https://community.cadence.com/thread/1408699?ContentTypeID=1</link><pubDate>Wed, 17 Jun 2026 10:15:04 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:2f1edf99-af0e-4900-b8e9-ba53c680041b</guid><dc:creator>PK202501238151</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408699?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66080/prevent-net-extraction-for-shapes/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Andrew,&lt;/p&gt;
&lt;p&gt;fair question. I&amp;#39;m auto-generating power grids, so I need net information for shapes, as targets for placing vias to power shapes. Among these targets there are guardrings with metal 1 ring shapes. I generate these guardrings and set the top and bottom segments to the power nets (e.g. one guardring is on vdd). If the extraction runs, the nets are also assigned to the left and right segments. As they are not in the preferred routing direction for the power grids, the via generation on these sometimes causes DRC issues. Not assigning the left and right segments would be a work-around for this (although granted, not a good solution).&lt;/p&gt;
&lt;p&gt;Patrick&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ipcSkillProcess and results buffering</title><link>https://community.cadence.com/thread/1408696?ContentTypeID=1</link><pubDate>Wed, 17 Jun 2026 08:40:21 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:f9e86407-3c6c-4fc2-b115-054aeaff7c03</guid><dc:creator>BS202501273649</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408696?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66074/ipcskillprocess-and-results-buffering/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;As I say, it&amp;#39;s the return of the&amp;nbsp;SKILL&amp;nbsp;function that can be too long.&amp;nbsp; The&amp;nbsp;&lt;span&gt;SKILL function requested from the Python is (as you suggest) typically just a single call.&amp;nbsp; But it can return (in theory though generally not in practice) a very long expression.&amp;nbsp; &amp;nbsp;For example, in testing, I call a function which returns a list of all the numbers from 1 to n.&amp;nbsp; &amp;nbsp;Once n gets big enough, then my first read only gets the first chunk (typically 64k worth) and I need to read again to get the rest.&amp;nbsp; My changed code handles that - the first chunk is not a complete S expression so it reads again and gets the rest.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It would be nice to just require all the SKILL functions that can be called from the Python to return small results.&amp;nbsp; But this is intended to be a flexible middleware component so I can&amp;#39;t a priori restrict the return values of the calls - I mean, I can, but it would make it less reliable and robust.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This solution seems to be OK for now so I&amp;#39;m going to carry on with that.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ipcSkillProcess and results buffering</title><link>https://community.cadence.com/thread/66074?ContentTypeID=0</link><pubDate>Tue, 16 Jun 2026 11:45:05 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:6b9d87a7-7b99-4d16-9e7f-938ac9b52a91</guid><dc:creator>BS202501273649</dc:creator><slash:comments>7</slash:comments><comments>https://community.cadence.com/thread/66074?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66074/ipcskillprocess-and-results-buffering/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I am using &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;ipcSkillProcess&lt;/span&gt; to allow a Python program to send SKILL commands to Virtuoso and consume the results.&amp;nbsp; &amp;nbsp;It all works very well - I use &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;read&lt;/span&gt; on the Python side and it gets back bytes containing the result of evaluating the command sent.&lt;/p&gt;
&lt;p&gt;In production I generally haven&amp;#39;t seen any problems but in theory it seems I should worry about the length of the results - the read could provide a buffer&amp;#39;s worth but there might be more to come.&amp;nbsp; The&amp;nbsp;manual&amp;nbsp;talks about a 4096 byte buffer but I&amp;#39;ve certainly got more than that in a single read.&amp;nbsp; But I have been able&amp;nbsp;to exceed some buffer size somewhere&amp;nbsp;in a testing scenario by making the result of the evaluation very long.&amp;nbsp; Then my Python program only gets the first part of the results truncated and the rest comes through in the next read.&amp;nbsp; Not sure if that is a Python or a Virtuoso buffer size.&lt;/p&gt;
&lt;p&gt;I&amp;nbsp;could fix that by forcing some delimiters into the results and in Python reading until I get the terminating delimiter but that&amp;#39;s a bit constraining on the results format.&amp;nbsp; &amp;nbsp;Or I&amp;nbsp;could maybe check for the buffer being full somewhere (on the Python side or the Virtuoso side?) and giving an error or special casing it somehow.&lt;/p&gt;
&lt;p&gt;Neither seem very attractive.&amp;nbsp; Is there a sensible standard pattern for handling this?&lt;/p&gt;</description></item><item><title>RE: Prevent Net Extraction for Shapes</title><link>https://community.cadence.com/thread/1408695?ContentTypeID=1</link><pubDate>Wed, 17 Jun 2026 08:15:49 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:c207b687-8076-4794-902d-90fc7799420f</guid><dc:creator>Andrew Beckett</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408695?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66080/prevent-net-extraction-for-shapes/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Patrick,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m not sure of the answer (without doing some additional research), but my first question is why you would want shapes on connectivity layers without nets to continue not having nets (I understand for the scenario where you have pre-assigned the net yourself; not so much for the net-less shapes)?&lt;/p&gt;
&lt;p&gt;Andrew&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ipcSkillProcess and results buffering</title><link>https://community.cadence.com/thread/1408694?ContentTypeID=1</link><pubDate>Wed, 17 Jun 2026 07:47:09 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:d79069c7-db24-4acc-9571-5407ffb77a1d</guid><dc:creator>Aurel B</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408694?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66074/ipcskillprocess-and-results-buffering/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Do you have an example of how a long SKILL string would be passed from Python to the ipcSkillProcess interpreter?&lt;/p&gt;
&lt;p&gt;(what kind of string and how it&amp;#39;s generated)&lt;/p&gt;
&lt;p&gt;When I said to put the data coming from Python into a file, I had in mind any generated data, not specifically SKILL&amp;nbsp;code.&lt;/p&gt;
&lt;p&gt;In my experience it is often list of points or polygons that are processed by external programs to be highlighted inside Virtuoso. Those could become relatively big and might break the interpretation limit when passed directly, this is where using a separated file solves the issue.&lt;/p&gt;
&lt;p&gt;By any chance, are you using an LLM to generate SKILL code from Python and giving&amp;nbsp;its output to ipcSkillProcess interpreter? If so it would make a lot of sense to have this output inside a dedicated file that you can Lint and debug afterwards.&lt;/p&gt;
&lt;p&gt;Otherwise, a good practice is to define in advance all the functions your external process will be able to call, and make it write simple calls to the ipcSkillProcess interpreter. That way you should never reach the limit.&lt;/p&gt;
&lt;p&gt;(if this case does not apply, I&amp;#39;d be glad to understand how and why)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Is there any callback feature for layout that triggers any property change for instance?</title><link>https://community.cadence.com/thread/1408693?ContentTypeID=1</link><pubDate>Wed, 17 Jun 2026 07:28:04 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:355225e0-0d05-4619-93ec-86e6f1f2cf59</guid><dc:creator>Andrew Beckett</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408693?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66077/is-there-any-callback-feature-for-layout-that-triggers-any-property-change-for-instance/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Tanvir,&lt;/p&gt;
&lt;p&gt;Please contact &lt;a href="http://ask.cadence.com"&gt;customer support&lt;/a&gt; about this (use the Cases menu at the top to create a case after logging in). Then we can understand better your requirements.&lt;/p&gt;
&lt;p&gt;Andrew&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Is there any callback feature for layout that triggers any property change for instance?</title><link>https://community.cadence.com/thread/66077?ContentTypeID=0</link><pubDate>Tue, 16 Jun 2026 20:20:09 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:29142f9c-ecd6-412a-bcae-0f62a3a39055</guid><dc:creator>MM20260514770</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/66077?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66077/is-there-any-callback-feature-for-layout-that-triggers-any-property-change-for-instance/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am trying to port some in house script from TCL to skill for virtuoso.&amp;nbsp;I am unable to find any callback code for layout that could perform following task.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For example,&amp;nbsp;let&amp;#39;s say I have an instance and a track region is&amp;nbsp;fully covering it. Is there any callback that will trigger when that particular instance has any change of property for example origin change, or row/col number changed for mosaic?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In TCL there was a callback available which will pass the modified instance object and I can filter out if the cell name matches and then my fuction could extend/shrink or shift the track region so that it still fully covers the instance.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Tanvir&lt;/p&gt;</description></item><item><title>RE: ipcSkillProcess and results buffering</title><link>https://community.cadence.com/thread/1408690?ContentTypeID=1</link><pubDate>Tue, 16 Jun 2026 16:25:57 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:a7576cc9-82c1-4123-b8b2-9e2c019468b4</guid><dc:creator>BS202501273649</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408690?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66074/ipcskillprocess-and-results-buffering/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I&amp;#39;ve changed the read code so it carries on reading until the bytes represent a complete S expression.&amp;nbsp; That works in practice and (I think) in theory because the result of evaluating the&amp;nbsp;&lt;span&gt;SKILL&lt;/span&gt; is definitely going to be an S expression I think.&amp;nbsp; &amp;nbsp;Anyway it&amp;#39;s passing my tests even when the result of the SKILL is a really long thing, and no file reading so it still performs well.&amp;nbsp; &amp;nbsp;Seems OK for now but I&amp;#39;ll bear in mind the idea of going via a file. Seems ugly but maybe it makes sense.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ipcSkillProcess and results buffering</title><link>https://community.cadence.com/thread/1408684?ContentTypeID=1</link><pubDate>Tue, 16 Jun 2026 13:21:54 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:989b2cc1-ce0d-45a8-a0f7-ea31f5db47b8</guid><dc:creator>Andrew Beckett</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408684?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66074/ipcskillprocess-and-results-buffering/rss?ContentTypeId=0</wfw:commentRss><description>[quote userid="739599" url="~/cadence_technology_forums/f/custom-ic-skill/66074/ipcskillprocess-and-results-buffering/1408683"]I think the size of the chunk that&amp;#39;s read is a feature of the linux call used to read from the pipe [/quote]
&lt;p&gt;It&amp;#39;s not quite that simple, but either way it&amp;#39;s an implementation detail because of not knowing how much is coming from the interface in advance.&lt;/p&gt;
&lt;p&gt;ipcReadProcess does document the 4096 byte buffer, but from some experiments I also see it double that sometimes. I can see in the implementation there are some buffers which are double (excluding termination).&lt;/p&gt;
&lt;p&gt;As Aurel said, the standard way is to put the SKILL&amp;nbsp;into a file, and then have the python program send the SKILL to load the file. That avoids the issue (I think Aurel&amp;#39;s answer&amp;nbsp;&lt;span style="text-decoration:underline;"&gt;was&lt;/span&gt; for the direction you&amp;#39;re using).&lt;/p&gt;
&lt;p&gt;Andrew&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ipcSkillProcess and results buffering</title><link>https://community.cadence.com/thread/1408683?ContentTypeID=1</link><pubDate>Tue, 16 Jun 2026 13:00:16 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:f6ff3fd1-e6be-4226-bb28-b212803579f7</guid><dc:creator>BS202501273649</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408683?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66074/ipcskillprocess-and-results-buffering/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Just to add a little detail - I think the size of the chunk that&amp;#39;s read is a feature of the linux call used to read from the pipe and not a feature of Virtuoso though there could also be chunking going on on the Virtuoso side, not sure.&lt;/p&gt;
&lt;p&gt;The particularly annoying issue for me is that the simple and clear code mostly works fine in practice.&amp;nbsp; The problem is that it doesn&amp;#39;t work in theory (!) - there is a potential future bug lurking when a result size exceeds the (unknown) chunk size limit.&amp;nbsp; &amp;nbsp;It seems a pity to drastically complicate my code for this unlikely scenario but for safety I think I need to.&amp;nbsp; Or at least document the limit.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ipcSkillProcess and results buffering</title><link>https://community.cadence.com/thread/1408682?ContentTypeID=1</link><pubDate>Tue, 16 Jun 2026 11:51:50 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:0437c407-41ed-4e3d-a136-05d0ea4da50f</guid><dc:creator>BS202501273649</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408682?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66074/ipcskillprocess-and-results-buffering/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;No I&amp;#39;m using it in the other direction.&amp;nbsp; The Python program sends SKILL to virtuoso and virtuoso responds with the results of evaluating the SKILL.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ipcSkillProcess and results buffering</title><link>https://community.cadence.com/thread/1408681?ContentTypeID=1</link><pubDate>Tue, 16 Jun 2026 11:50:49 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:7e91c21d-e395-47ec-96c0-2876fcedcaa8</guid><dc:creator>Aurel B</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408681?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66074/ipcskillprocess-and-results-buffering/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi, the usual solution is to write the Python results to a file and use the ipcSkillProcess to tell SKILL to read it.&lt;/p&gt;
&lt;p&gt;hope this helps,&lt;/p&gt;
&lt;p&gt;Aurel&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Lock icon appears when SKILL PCell is loaded</title><link>https://community.cadence.com/thread/1408674?ContentTypeID=1</link><pubDate>Tue, 16 Jun 2026 03:03:09 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:35d00c22-eec3-40bc-aad5-6e808fa49bbf</guid><dc:creator>thiruvenkata</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408674?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66069/lock-icon-appears-when-skill-pcell-is-loaded/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Andrew,&lt;/p&gt;
&lt;p&gt;Thanks for the clarification! Understood the concept.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Lock icon appears when SKILL PCell is loaded</title><link>https://community.cadence.com/thread/66069?ContentTypeID=0</link><pubDate>Mon, 15 Jun 2026 12:59:40 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:97d65b99-a187-4976-a607-3f8cab6dfa69</guid><dc:creator>thiruvenkata</dc:creator><slash:comments>6</slash:comments><comments>https://community.cadence.com/thread/66069?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66069/lock-icon-appears-when-skill-pcell-is-loaded/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p data-path-to-node="4"&gt;Hi All,&lt;/p&gt;
&lt;p data-path-to-node="5"&gt;I noticed something new while creating PCells using SKILL. Whenever I load the SKILL PCell, a user lock icon appears in the view type section. The only way I can get rid of it is by opening and closing the supermaster cellview.&lt;/p&gt;
&lt;p data-path-to-node="6"&gt;I am currently using the &lt;code data-path-to-node="6" data-index-in-node="25"&gt;pcCellView&lt;/code&gt; variable in my PCell development. Is there an internal variable or a proper method to automatically close the PCell cellview after it opens, creates the required geometries, and finishes processing?&lt;/p&gt;
&lt;p data-path-to-node="6"&gt;&lt;/p&gt;
&lt;p data-path-to-node="6"&gt;I cannot attach screenshot for some reason, so I&amp;#39;ll share the screenshot using image hosting:&lt;/p&gt;
&lt;p data-path-to-node="6"&gt;&amp;nbsp;[View:https://github.com/user-attachments/assets/1bc9ff6b-08f0-4875-bbd1-942fb96273bf:640:50]&lt;/p&gt;
&lt;p data-path-to-node="6"&gt;&lt;/p&gt;</description></item><item><title>RE: Lock icon appears when SKILL PCell is loaded</title><link>https://community.cadence.com/thread/1408673?ContentTypeID=1</link><pubDate>Mon, 15 Jun 2026 17:15:41 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:bcb60a61-0982-4415-b07a-16b4a3070064</guid><dc:creator>Andrew Beckett</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408673?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66069/lock-icon-appears-when-skill-pcell-is-loaded/rss?ContentTypeId=0</wfw:commentRss><description>[quote userid="720623" url="~/cadence_technology_forums/f/custom-ic-skill/66069/lock-icon-appears-when-skill-pcell-is-loaded/1408672"]So I assume the behaviour of getting lock icon after loading PCell code is normal and safe to ignore?&amp;nbsp;[/quote]
&lt;p&gt;This is because pcDefinePCell() returns the dbId of the superMaster it just created. Because it is (obviously) open for edit (since it just created it), returning the dbId causes it to remain locked. If you don&amp;#39;t want that, you can simply close the cellView as I showed earlier in the thread.&lt;/p&gt;
&lt;p&gt;Whether it bothers you that it&amp;#39;s locked rather depends on whether you need somebody else to be able to update the superMaster.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Andrew&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Lock icon appears when SKILL PCell is loaded</title><link>https://community.cadence.com/thread/1408672?ContentTypeID=1</link><pubDate>Mon, 15 Jun 2026 15:22:45 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:8e75ebfa-2579-4741-8d08-a8da1b173ceb</guid><dc:creator>thiruvenkata</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408672?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/66069/lock-icon-appears-when-skill-pcell-is-loaded/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;So I assume the behaviour of getting lock icon after loading PCell code is normal and safe to ignore?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>