<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="https://community.cadence.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><title>Cadence Custom IC Skill Forum</title><link>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill</link><description></description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>[b]Moderator:[/b] Andrew Beckett.</itunes:subtitle><item><title>I have a very important problem to deal with point list by using dbPointArrayOr()</title><link>https://community.cadence.com/thread/65847?ContentTypeID=0</link><pubDate>Wed, 18 Mar 2026 13:49:35 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:20db0840-bc60-4e61-90d8-ca1ccd1ad2e1</guid><dc:creator>Noobnoob</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65847?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65847/i-have-a-very-important-problem-to-deal-with-point-list-by-using-dbpointarrayor/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I&amp;#39;m sorry for my english skill...&lt;/p&gt;
&lt;p&gt;i hope that you can undetstand my thinking...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;For example, i made a cell and called it &amp;quot;CAP&amp;quot;&lt;/p&gt;
&lt;p&gt;CAP is made of four poly layer db and four diffusion layer db.&lt;/p&gt;
&lt;p&gt;and then, i placed CAP by using&amp;nbsp; mosaics (rows:0 columns:1) and 1 instances.&lt;/p&gt;
&lt;p&gt;currently, i placed three CAPs in Layout window.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;First, i used dbGetTrueOverlaps() function in order to get db of poly layers in Layout window. [ ex : overlaps = dbGetTrueOverlaps(wcv wcv ~&amp;gt; bBox list("Poly" "drawing") 32 t ) ]&lt;/p&gt;
&lt;p&gt;overlaps has twelve poly layer db and path of poly layers.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Second, i got pure twelve poly layer db by using your help and saved these in &amp;quot;poly_list&amp;quot; variable.&lt;/p&gt;
&lt;p&gt;poly_list has twelve poly layer db!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Three, i transformed each poly layer db&amp;#39;s bbox coordinate into top level coordinate! and saved these in &amp;quot;bbox_list&amp;quot; variable.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Four, i transformed bbox coordinate into point coordinate in order to use dbPointArrayOr() !! and&amp;nbsp;&lt;span&gt;these in &amp;quot;point_list&amp;quot; variable.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Currently, i have point coordinates of twelve&amp;nbsp; poly layer db.&lt;/p&gt;
&lt;p&gt;and then, i used dbPointArrayOr() to merge points of poly layer dbs.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;But!!!&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I failed in merging points...&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:480px;max-width:640px;" src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/48/pastedimage1773840116926v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;i think that cause of fail is &amp;quot;point_list&amp;quot; variable!!&lt;/p&gt;
&lt;p&gt;To be accurate, I&amp;#39;m sure that &amp;quot;overlaps&amp;quot; &amp;quot;bbox_list&amp;quot; have&amp;nbsp; twelve poly layer db is problem...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Presently, bbox_list = ( A B C D E F G H I J K&amp;nbsp; )&amp;nbsp; [alphabet is each poly layer's bbox coordirnate]&lt;/p&gt;
&lt;p&gt;but, as i want, in order to merge point list&lt;/p&gt;
&lt;p&gt;I think that bbox_list = ( (A B C D) (E F G H) (H I J K) )&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:480px;max-width:640px;" src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/48/pastedimage1773841131105v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Later, i will post my skill script to explain what i think in detail.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;How can i divide 12 poly layer dbs into 3 portion??&lt;/p&gt;
&lt;p&gt;How can i divide 12 bbox coordinates into 3 portion??&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;thank you for reading my post.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Hi Is there any way to compute BBox of 2 BBoxes?</title><link>https://community.cadence.com/thread/65837?ContentTypeID=0</link><pubDate>Sat, 14 Mar 2026 18:26:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:47d6e763-3707-4083-bb50-887778465c98</guid><dc:creator>GB20250109498</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65837?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65837/hi-is-there-any-way-to-compute-bbox-of-2-bboxes/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;img style="max-height:480px;max-width:640px;" src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/48/pastedimage1773512700731v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Change instance name prefixes automatically</title><link>https://community.cadence.com/thread/65830?ContentTypeID=0</link><pubDate>Thu, 12 Mar 2026 15:12:59 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:444cf463-21f1-431d-af88-025d21e8592f</guid><dc:creator>MF202512032436</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65830?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65830/change-instance-name-prefixes-automatically/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;I would like to change all instance name prefixes for a group of cells placed in a schematic:&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;p&gt;All cells with the cell-name starting with &amp;quot;nch&amp;quot; (so n-MOS devices) should have the instance name prefix &amp;quot;N&amp;quot;. The old prefix M or MN should be removed.&lt;/p&gt;
&lt;p&gt;Thanks for your help&lt;/p&gt;
&lt;p&gt;Martin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Interate through every signal in a srrWave object using SKILL</title><link>https://community.cadence.com/thread/65818?ContentTypeID=0</link><pubDate>Mon, 09 Mar 2026 09:56:05 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:2195e9c8-b3ba-45a4-8339-bd537750f2ca</guid><dc:creator>MC20250412421</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/65818?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65818/interate-through-every-signal-in-a-srrwave-object-using-skill/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello everyone !&lt;br /&gt;&lt;br /&gt;Sorry if it seems trivial but I didn&amp;#39;t find the info I needed in these forums or on the support.cadence.com.&lt;br /&gt;&lt;br /&gt;I have a srrWave object given by the expression VT(&amp;quot;/my_signal&amp;lt;5:0&amp;gt;&amp;quot;) and I want to do the following thing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
    procedure(my_func(my_srrWave)&amp;nbsp;&lt;br /&gt;       foreach(wave my_srrWave&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ; do stuff for each wave i.e on each wave VT(&amp;quot;/my_signal&amp;lt;i&amp;gt;&amp;quot;) for i=0..5&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; )&lt;br /&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So my questions are:&lt;/p&gt;
&lt;p&gt;1) How do I do the above ?&lt;/p&gt;
&lt;p&gt;2) More generally, in cadence, if I have an object like srrWave or any other object, is there a way to list all keys and values without knowing the name of the keys in advance ?&lt;br /&gt;&lt;br /&gt;Thanks in advance to y&amp;#39;all and have a great day !&lt;br /&gt;&lt;br /&gt;Mike&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>AWV Window close callback behavior when closing ViVA Session</title><link>https://community.cadence.com/thread/65804?ContentTypeID=0</link><pubDate>Wed, 04 Mar 2026 15:50:09 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:c78d6965-860d-4a7e-a77e-1f537cba0fbb</guid><dc:creator>TF202506034656</dc:creator><slash:comments>5</slash:comments><comments>https://community.cadence.com/thread/65804?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65804/awv-window-close-callback-behavior-when-closing-viva-session/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Good evening,&lt;br /&gt;&lt;br /&gt;I&amp;#39;m attaching an init and close procedure to each individual awvWindow. In doing so, I&amp;#39;ve found what I expect to be a bug (thoughhopefully I&amp;#39;m just misunderstanding the behavior),&amp;nbsp;and am looking for suggestions on how to work around it.&lt;br /&gt;&lt;br /&gt;If I collect the window ids of the individual AWV windows attached to my ViVA session, and I close the viva session (main window containing all the plots)O instead of each plot window, only the&lt;strong&gt; first window&lt;/strong&gt; gets destroyed, and the rest persist.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;These are my two test init/exit procedures. I&amp;#39;ve tested both with and without these and the behavior remains. I&amp;#39;m just leaving this for a potential idea to build off of.&lt;br /&gt;&lt;br /&gt;procedure(wmAwvWindowHookCB(w_windowID)&lt;br /&gt; hiRegCloseProc(w_windowID &amp;#39;wmAwvWindowExitHookCB)&lt;br /&gt; t&lt;br /&gt;)&lt;/p&gt;
&lt;p&gt;procedure(wmAwvWindowExitHookCB(w_windowID)&lt;br /&gt; t&lt;br /&gt;)&lt;br /&gt;awvInitWindowFunctionAdd(&amp;#39;wmAwvWindowHookCB)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Steps to reproduce&lt;br /&gt;wins is the list of AWV windows returned from awvGetWindowList&lt;/p&gt;
&lt;p&gt;&amp;gt;&amp;nbsp;wins&lt;br /&gt;(window:257 window:258 window:259 window:260 window:261&lt;br /&gt; window:262 window:263 window:264 window:265&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;&amp;gt;hiGetWindowList&lt;br /&gt;window:1 .... window:257 window:258 window:259 window:260 window:261 window:262&lt;br /&gt; window:263 window:264 window:265&lt;br /&gt;&lt;br /&gt;&amp;gt; Close viva session via top-right X&lt;br /&gt;&lt;br /&gt;&amp;gt;wins&lt;br /&gt;(window(invalid):1135496992(destroyed) window:258 window:259 window:260 window:261&lt;br /&gt; window:262 window:263 window:264 window:265&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;gt;hiGetWindowList&lt;/span&gt;&lt;br /&gt;&lt;span&gt;window:1 .... window:258 window:259 window:260 window:261 window:262&lt;/span&gt;&lt;br /&gt;&lt;span&gt;window:263 window:264 window:265&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What I would expect to happen, is for windows 257 through 265 to be invalid/destroyed. In practice this causes my callback to repeatedly trigger my exit procedures on the first window, 257 and runs a bunch of warnings.&lt;br /&gt;&lt;br /&gt;EDIT: The ViVA sesion still closes, I cannot access the awv window anymore, but they&amp;#39;re still valid as hiRaiseWindow etc returns t, it just doesn&amp;#39;t visually show anything.&lt;br /&gt;&lt;br /&gt;I&amp;#39;m on IC23.1&lt;br /&gt;Thanks, Trevor&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>lxGenFromSource - BUT ignore existing layout views and give me "flat" devices</title><link>https://community.cadence.com/thread/65803?ContentTypeID=0</link><pubDate>Tue, 03 Mar 2026 22:01:23 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:ecf9a0bc-7a35-4d47-805b-2576ce6012a5</guid><dc:creator>vtboy51</dc:creator><slash:comments>11</slash:comments><comments>https://community.cadence.com/thread/65803?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65803/lxgenfromsource---but-ignore-existing-layout-views-and-give-me-flat-devices/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I am using the&amp;nbsp;lxGenFromSource in my SKILL routine to generate a layout view of my top level cellview (which has multiple sub-cells instantiated). As we all know if&amp;nbsp;a layout view is found for any of the schematic&amp;nbsp;sub-cells it will place that layout view and not generate &amp;quot;flat&amp;quot; devices. However, for my needs I would like to specify a temp library to generate the top level layout in, and NOT pull-in the existing layouts.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;My workaround has been to copy the schem/symbols into a temp lib and then run, but the copy is slow for larger designs.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Data type conversion error in the formal argument of pcDefinePCell.</title><link>https://community.cadence.com/thread/65801?ContentTypeID=0</link><pubDate>Tue, 03 Mar 2026 12:55:20 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:78285976-4bb6-4b8e-8006-493772d877e8</guid><dc:creator>thiruvenkata</dc:creator><slash:comments>3</slash:comments><comments>https://community.cadence.com/thread/65801?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65801/data-type-conversion-error-in-the-formal-argument-of-pcdefinepcell/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am writing a PCell code and trying to fetch the formal argument default values by evaluating expressions. I am converting the string data type in the formal argument, as shown in the snippet attached below.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:94px;max-width:422px;" height="94" src="https://community.cadence.com/resized-image/__size/844x188/__key/communityserver-discussions-components-files/48/pastedimage1772539638018v1.png" width="422" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;The float conversion from string is working as expected, whereas when I try a similar pattern for integer conversion, Virtuoso gives me the error shown below.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:480px;max-width:640px;" src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/48/pastedimage1772539794675v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;The data type mentioned for the &lt;em data-start="413" data-end="422"&gt;fingers&lt;/em&gt; parameter in the CDF is string.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:153px;max-width:216px;" height="153" src="https://community.cadence.com/resized-image/__size/432x306/__key/communityserver-discussions-components-files/48/pastedimage1772539858470v3.png" width="216" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The data type mentioned for the&amp;nbsp;&lt;i&gt;channelLength&lt;/i&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;parameter in the CDF is string.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:138px;max-width:217px;" height="138" src="https://community.cadence.com/resized-image/__size/434x276/__key/communityserver-discussions-components-files/48/pastedimage1772540875779v8.png" width="217" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Then I studied the documentation on pcDefinePCell to find a solution, but from documentation, I realized that the expressions will not&amp;nbsp;get evaluated every time after PCell compilation (The above method is not correct), I&amp;#39;ll quote the paragraph from documentation below:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;In addition, The l_formalArgs argument to pcDefinePCell can include an expression. However, it is the value of that expression and not the expression itself, which gets associated as a default value of the corresponding parameter. As a result, such expression cannot be retrieved later on once the Pcell has been compiled (i.e. super master created).&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;so as per the documentation, I should get data type mismatch whenever I change the parameter values, but for some reason it is converting the string to float inside the PCell body that are actually a string type in the cdf. So, why the PCell is not failing, but working as expected? And why the integer conversion is failing?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I came across a attribute ?parseAsNumber for a string type parameter while creating cdf, but if I set it to &amp;quot;yes&amp;quot;, the behavior is still the same.&lt;/p&gt;
&lt;p&gt;Virtuoso Version: &amp;quot;sub-version&amp;nbsp; IC6.1.8-64b.83 &amp;quot;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Creating a component that allows setting a changing value on a bus in a single transient simulation</title><link>https://community.cadence.com/thread/65798?ContentTypeID=0</link><pubDate>Mon, 02 Mar 2026 21:48:41 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:8aa1de3b-84db-4fba-9ba5-690982125623</guid><dc:creator>Yuto Lau</dc:creator><slash:comments>3</slash:comments><comments>https://community.cadence.com/thread/65798?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65798/creating-a-component-that-allows-setting-a-changing-value-on-a-bus-in-a-single-transient-simulation/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi everyone,&lt;/p&gt;
&lt;p&gt;The cell &amp;quot;&lt;em&gt;bussetp&lt;/em&gt;&amp;quot; introduced in the link below works pretty well, if the bus value is static in transient simulation.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000nX1lEAE&amp;amp;pageName=ArticleContent"&gt;https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000nX1lEAE&amp;amp;pageName=ArticleContent&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In some transient simulation, we would like to&amp;nbsp;define&amp;nbsp;the &amp;quot;bus value&amp;quot; as different&amp;nbsp;value at time points in a single transient simulation.&lt;/p&gt;
&lt;p&gt;e.g. t1=10ns, bus_value=3; t2= 30ns, bus_value=5, t3=60ns, bus_value=2,...&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color:#ffff99;"&gt;Is it possible to edit the script to support above data set?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color:#ffff99;"&gt;I see there is &amp;quot;pwl&amp;quot; option in &amp;quot;vcvs&amp;quot;. Is it similar to &amp;quot;pwl&amp;quot; in &amp;quot;vsource&amp;quot;?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color:#ffff99;"&gt;Can we define parameter &amp;quot;busvalue&amp;quot; as a vector, and then put the vector as value of &amp;quot;pwl&amp;quot;?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks and regards,&lt;/p&gt;
&lt;p&gt;Yutao&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>placing horizontal marker using skill function: awvPlaceYMarker</title><link>https://community.cadence.com/thread/65792?ContentTypeID=0</link><pubDate>Sun, 01 Mar 2026 07:42:50 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:ccd379f3-dd39-45b9-81dd-2eae0ee4c783</guid><dc:creator>DA202602028132</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65792?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65792/placing-horizontal-marker-using-skill-function-awvplaceymarker/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi All&lt;/p&gt;
&lt;p&gt;I am using viva to review waveforms, usually with multiple strips&lt;/p&gt;
&lt;p&gt;During examination of waveforms, I wish to place a horizontal (Y) marker on selected waveform&amp;#39;s strip, at a certain position (example below)&lt;/p&gt;
&lt;p&gt;I have used the skill function:&amp;nbsp;awvPlaceYMarker, and used its argument: ?stripNum&lt;/p&gt;
&lt;p&gt;This is the skill function i&amp;#39;ve assembled (the y value is 0.3)&lt;/p&gt;
&lt;p&gt;awvPlaceYMarker(awvGetCurrentWindow() 0.3 ?stripNum awvGetStripNumberOfSelectedTrace(awvGetCurrentWindow()) ?label &amp;quot;test&amp;quot;)&lt;/p&gt;
&lt;p&gt;This skill function does not work reliably - it places Y marker at wrong strips, or in other cases does not place any marker&lt;/p&gt;
&lt;p&gt;Please guide me - how to correctly assemble a reliable skill function that places horizontal Y marker on selected waveform strip&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;Daniel&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The example: there are two waveforms, each is placed in its separated strip, see image below, signal names: a (red, bottom strip), b (blue, top strip)&lt;/p&gt;
&lt;p&gt;&lt;img style="height:251px;max-height:251px;max-width:423px;" height="251" src="https://community.cadence.com/resized-image/__size/846x502/__key/communityserver-discussions-components-files/48/pastedimage1772350918229v3.png" width="422" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I selected the signal &amp;#39;b&amp;#39; (top strip), activated the skill function, and the Y marker was placed on signal &amp;#39;a&amp;#39; strip (bottom strip)&lt;/p&gt;
&lt;p&gt;&lt;img style="height:232px;max-height:232px;max-width:394px;" height="232" src="https://community.cadence.com/resized-image/__size/788x464/__key/communityserver-discussions-components-files/48/pastedimage1772350887354v1.png" width="393" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Wildcard '*' does not match any net in spectre save statement</title><link>https://community.cadence.com/thread/65789?ContentTypeID=0</link><pubDate>Fri, 27 Feb 2026 20:46:39 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:ea5d0215-5fb3-4a3a-8110-196d371dea8c</guid><dc:creator>msharma</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/65789?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65789/wildcard-does-not-match-any-net-in-spectre-save-statement/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;My spectre netlist has this statement:&lt;/p&gt;
&lt;p&gt;----&lt;/p&gt;
&lt;p&gt;save IARRAY.* sigtype=all depth=1&lt;/p&gt;
&lt;p&gt;----&lt;/p&gt;
&lt;p&gt;IARRAY is an instance name.&lt;/p&gt;
&lt;p&gt;However, when the transient simulation is run, no signals in the subcircuit instance IARRAY are saved. The simulator message has the following message:&lt;/p&gt;
&lt;p&gt;----&lt;/p&gt;
&lt;p&gt;Wildcard match summary:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;save IARRAY.* :&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0&lt;/p&gt;
&lt;p&gt;----&lt;/p&gt;
&lt;p&gt;What could be the cause of the signals / nets not being saved?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Obtaining Transformation Data for Shapes in Mosaics</title><link>https://community.cadence.com/thread/65787?ContentTypeID=0</link><pubDate>Fri, 27 Feb 2026 09:52:38 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:6a205275-9527-45dd-be45-8b10922ed0c3</guid><dc:creator>AK202602053355</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65787?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65787/obtaining-transformation-data-for-shapes-in-mosaics/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p dir="auto"&gt;Greetings,&lt;/p&gt;
&lt;p&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;/p&gt;
&lt;p dir="auto"&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;I am writing to seek guidance regarding a technical challenge I have encountered while developing a SKILL script for layout analysis.&amp;nbsp;&lt;/p&gt;
&lt;p dir="auto"&gt;&lt;strong&gt;Current Implementation:&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p dir="auto"&gt;My script is designed to iterate through all elements in a cellview, specifically:&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;/p&gt;
&lt;p dir="auto"&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;/p&gt;
&lt;ul dir="auto"&gt;
&lt;li class="text-start "&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;Top-level shapes&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;/li&gt;
&lt;li class="text-start "&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;Top-level instances&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;/li&gt;
&lt;li class="text-start "&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;Shapes contained within instances&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir="auto"&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;!--mce:protected %3C%21--mce%3Aprotected%20%253C%2521----%253E--%3E--&gt;&lt;/p&gt;
&lt;div class="my-2"&gt;For regular instances and shapes, I have successfully implemented coordinate transformation using the &lt;em&gt;dBTransformBBox()&lt;/em&gt;&amp;nbsp;function to obtain global coordinates, which is necessary since querying the bounding box of a shape inside an instance returns local coordinates.&amp;nbsp;&lt;/div&gt;
&lt;div class="my-2"&gt;&lt;/div&gt;
&lt;div class="my-2"&gt;&lt;strong&gt;Technical Issue:&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;
&lt;div class="my-2"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;The implementation functions as expected until encountering instances that have been converted to mosaics. When attempting to access the transform property of a mosaic instance (&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;instance~&amp;gt;transform&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;&lt;!--mce:protected %3C%21----%3E--&gt;), the value returned is nil. This results in the following error:&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;dbTransformBBox: Invalid transform - nil&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;It appears that mosaic objects do not possess a transform parameter analogous to that of standard instances.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Objective:&amp;nbsp;&lt;/strong&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;My ultimate goal is to determine the global coordinates of all shapes, including those within mosaics, in order to perform spatial analysis against a reference bounding box.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Specific Inquiries:&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;1) What is the appropriate methodology for obtaining transformation information for shapes and contained within mosaics?&lt;/div&gt;
&lt;div&gt;2)&amp;nbsp;Are there specific APIs designed for handling mosaic elements that would be more suitable for this application?&lt;/div&gt;
&lt;div&gt;3)&amp;nbsp;Is there an alternative approach that would be more efficient for determining spatial relationships between shapes regardless of their hierarchical position?&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;I have attached the relevant code segment for reference. Any assistance or direction would be greatly appreciated.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Code Snippet:&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;procedure(processInstance(inst)&lt;br /&gt;&amp;nbsp; &amp;nbsp; let((masterCV DenShape DenBBox globalBBox)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; masterCV = inst~&amp;gt;master&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; foreach(shape masterCV~&amp;gt;shapes&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DenShape = shape~&amp;gt;layerName&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DenBBox = shape~&amp;gt;bBox&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&amp;quot;Local BBox: %L\n&amp;quot; DenBBox)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; globalBBox = dbTransformBBox(DenBBox inst~&amp;gt;transform) /*Error Causing Line*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&amp;quot;Instance BBox %L\n&amp;quot; inst~&amp;gt;bBox)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&amp;quot;Shape: %s, Local BBox: %L, Global BBox: %L\n&amp;quot; DenShape DenBBox globalBBox)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;br /&gt;&amp;nbsp; &amp;nbsp; )&lt;br /&gt;)&lt;br /&gt; &lt;br /&gt;let((cv)&lt;br /&gt;&amp;nbsp; &amp;nbsp; cv = dbOpenCellViewByType(&amp;quot;Basic_Learning&amp;quot; &amp;quot;skill_scripting_practice_2&amp;quot; &amp;quot;layout&amp;quot; &amp;quot;maskLayout&amp;quot; &amp;quot;r&amp;quot;)&lt;br /&gt;&amp;nbsp; &amp;nbsp; foreach(inst cv~&amp;gt;instances&lt;br /&gt;&amp;nbsp; &amp;nbsp; printf(&amp;quot;Processing this instance. \n&amp;quot;)&lt;br /&gt;&amp;nbsp; &amp;nbsp; processInstance(inst)&lt;br /&gt;&amp;nbsp; &amp;nbsp; )&lt;br /&gt;)&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p dir="auto"&gt;Thank you for your consideration.&lt;/p&gt;
&lt;p dir="auto"&gt;Respectfully,&amp;nbsp;&lt;/p&gt;
&lt;p dir="auto"&gt;Atharv&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Virtuoso simulation through ASI command is failing</title><link>https://community.cadence.com/thread/65786?ContentTypeID=0</link><pubDate>Fri, 27 Feb 2026 06:57:08 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:e2545e2e-8b70-4a3b-8f6f-0e2c52cf4871</guid><dc:creator>PB202509293935</dc:creator><slash:comments>4</slash:comments><comments>https://community.cadence.com/thread/65786?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65786/virtuoso-simulation-through-asi-command-is-failing/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi ,&lt;br /&gt;&lt;br /&gt;I would like to run maestro assembler simulation using CIW command in IC23.1 version, I tried below ASI commands keeping active maestro window.&lt;br /&gt;&lt;br /&gt;asiSess = asiGetCurrentSession()&lt;/p&gt;
&lt;p&gt;asiRunSimulation(asiSess)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Simulation runs but it shows the error given below. it looks like netlist is not fetching the actual path and skew. before simulation start.&amp;nbsp;&lt;br /&gt;Please note that if I manually click on Run button, netlist fetaches the value and simulation works properly.&lt;br /&gt;&lt;br /&gt;Could you please help me with this error.&lt;/p&gt;
&lt;p&gt;// Generated for: spectre&lt;br /&gt;// Design Netlist Generated on: Feb 25 05:46:55 2026&lt;br /&gt;// Design library name: ip_vpinlib_ipde&lt;br /&gt;// Design cell name: tb_adcmuxldo_pfmnce&lt;br /&gt;// Design view name: schematic_ext&lt;br /&gt;simulator lang=spectre&lt;br /&gt;include &amp;quot;ade_e.scs&amp;quot;&lt;br /&gt;global 0&lt;br /&gt;parameters vcc v_chop vsupply_mode vref_ext_sel iref_sel0 chop=1 \&lt;br /&gt; contmode=0 vin=450m VXX=900m gnd0=0 fq=100M pwrgateen=0 ldoen=0 \&lt;br /&gt; vref_ext=800m dfx_sel3=0 dfx_sel2=0 dfx_sel1=0 dfx_sel0=0 vref_sel1=0 \&lt;br /&gt; vref_sel0=0 ldo_out0=0 ldo_out1=0 iref_sel1=0 vref_sel2=0 vccdig=0.75 \&lt;br /&gt; vccaon=0.75 vcc1v8=1.25 iload=1m&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;include &amp;quot;$PROJECT_SCS_FILE&amp;quot; section=tttt&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;include &amp;quot;netlist&amp;quot;&lt;br /&gt;nbmessage paramtest printif=(1) message=&amp;quot;NB JOB ID: $__NB_JOBID&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Error found by spectre during circuit read-in.&lt;br /&gt; ERROR: &amp;quot;input.scs&amp;quot; 14: The file `/p/tech1/n2p/tech-release/XXXX/spectre/include.scs&amp;#39; appears to be in Spectre syntax, but Spectre cannot find the `section tttt&amp;#39; library defined in it. Ensure that the `tttt&amp;#39; section is defined by `section/endsection&amp;#39; block and rerun the simulation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Best Regards,&lt;/p&gt;
&lt;p&gt;Praveen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Explanation wanted for treeItemStruct vs treeItemSymbol / inconsistent return from doc</title><link>https://community.cadence.com/thread/65785?ContentTypeID=0</link><pubDate>Thu, 26 Feb 2026 20:49:38 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:af2637c4-cd70-40b0-aa3b-62c5940abd46</guid><dc:creator>TF202506034656</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/65785?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65785/explanation-wanted-for-treeitemstruct-vs-treeitemsymbol-inconsistent-return-from-doc/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Good evening,&lt;br /&gt;&lt;br /&gt;I was implementing a simple recursive expansion callback for my a field - i.e., expand parent -&amp;gt; expand all child trees.&lt;br /&gt;&lt;br /&gt;In doing so, I ran into something I don&amp;#39;t understand fully and was hoping somebody could clarify.&lt;br /&gt;&lt;br /&gt;Here&amp;#39;s the scenario:&lt;br /&gt;&lt;br /&gt;At the top level, I create a field using hiCreateTreeTable with ?expandCallback &amp;#39;wmTreeExpandCB&lt;br /&gt;When the expandCallback is triggered, it receives&amp;nbsp;the symbol for the field, and the symbol for the tree which was expanded, lets call&amp;nbsp;that tree symbol X.&lt;br /&gt;&lt;br /&gt;From the CIW, I can call:&lt;br /&gt;hiExpandTreeItem(X) and it works, which suggests X is a valid item ref.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;However, I discovered that before calling hiGetTree, hiGetTreeItems and others, I must&amp;nbsp;call eval(X), which returns a treeItemStruct at some arbitrary mem loc. If I pass this eval&amp;#39;d treeItemStruct into hiGetTree it works!&lt;br /&gt;Similarly, when I retrieve a list of trees using hiGetTree, and then try to run hiGetTreeItems on those results, I encounter the same issue. Again, I need to call eval on the args before hiGetTreeItems will work.&lt;br /&gt;&lt;br /&gt;According to the documentation, hiGetTree, hiGetTreeItems and hiExpandTreeItem accept the same &amp;quot;g_item&amp;quot; input argument.&lt;br /&gt;&lt;br /&gt;My question is: why is this necessary? What is the purpose of the unevaluated symbol if it cannot be directly used with most tree functions without first being transformed, especially considering it is listed as the same &amp;quot;g_item&amp;quot;.&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve attached my working code below.&lt;br /&gt;&lt;br /&gt;I&amp;#39;m on IC 23.1.&lt;br /&gt;Thanks, Trevor&lt;br /&gt;&lt;a href="https://community.cadence.com/cfs-file/__key/communityserver-discussions-components-files/48/proc.txt"&gt;community.cadence.com/.../proc.txt&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Any API in SKILL or other language to extract the connectivity from input.scs netlist or spectre results database?</title><link>https://community.cadence.com/thread/65780?ContentTypeID=0</link><pubDate>Thu, 26 Feb 2026 08:09:28 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:6f76996d-9f7c-4754-abf1-b130762e5430</guid><dc:creator>marcelpreda</dc:creator><slash:comments>3</slash:comments><comments>https://community.cadence.com/thread/65780?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65780/any-api-in-skill-or-other-language-to-extract-the-connectivity-from-input-scs-netlist-or-spectre-results-database/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;The use case: &lt;br /&gt;- we run a simulation&lt;br /&gt;- some instance may be reported with problems (warnings in the spectre.out)&lt;br /&gt;- we&amp;nbsp;&amp;nbsp;extract those instances from spectre out, we know the hierarchical name&amp;nbsp; of the instance e.g. &amp;quot;I1.I_abc.M1&amp;quot;&amp;nbsp; (could be any type: M, R, C, D, X, ...)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What we need: &lt;br /&gt;For such instances a script to extract from input.scs (or from results database - in general psf/psfxl format) the pins of the instance, and where they are connected - the hierarchical name of the nets.&lt;br /&gt;E.g. for an M&amp;nbsp; device like above (&lt;span&gt;&amp;quot;I1.I_abc.M1&amp;quot;&lt;/span&gt;) should be something like this:&lt;br /&gt;&lt;code&gt;g: I1.I_abc.net01&lt;/code&gt;&lt;br /&gt;&lt;code&gt;d:&amp;nbsp;&lt;span&gt;I1.I_abc.net02&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;s: vss&lt;/code&gt;&lt;br /&gt;&lt;code&gt;b: vss&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Later we want to postprocess the waveforms , e.g. to analyze the V(g-s).&lt;br /&gt;- Skill or any language is just fine.&lt;br /&gt;- directly from input.scs or from results database (some spectre switches?? ) is also fine.&lt;br /&gt;&lt;br /&gt;Thank you,&lt;/p&gt;
&lt;p&gt;Marcel&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>awvExitWindowFunctionAdd not working as expected</title><link>https://community.cadence.com/thread/65766?ContentTypeID=0</link><pubDate>Mon, 23 Feb 2026 18:17:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:bd6ddc21-8fdf-47a6-8565-dbaabb07f62b</guid><dc:creator>TF202506034656</dc:creator><slash:comments>3</slash:comments><comments>https://community.cadence.com/thread/65766?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65766/awvexitwindowfunctionadd-not-working-as-expected/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Good evening,&lt;br /&gt;&lt;br /&gt;I&amp;#39;m trying to attach a callback to both the init and exit actions assosciated with opening/closing windows on ViVA.&lt;br /&gt;&lt;br /&gt;To do this I&amp;#39;m using awvInitWindowFunctionAdd and awvExitWindowFunctionAdd.&lt;br /&gt;&lt;br /&gt;For testing purposes I&amp;#39;m doing:&lt;br /&gt;&lt;br /&gt;procedure(wmAwvWindowHookCB(w_windowID)&lt;br /&gt;print(&amp;quot;triggered&amp;quot;)&lt;br /&gt;)&lt;br /&gt;&lt;span&gt;awvInitWindowFunctionAdd(&amp;#39;wmAwvWindowHookCB)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;awvExitWindowFunctionAdd(&amp;#39;wmAwvWindowHookCB)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;for some reason, the init works just fine, but the exit doesn&amp;#39;t action on plot window close.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve confirmed they have the same CB:&lt;br /&gt;awvExitWindowFunctionGet()&lt;br /&gt;(wmAwvWindowHookCB)&lt;br /&gt;awvInitWindowFunctionGet()&lt;br /&gt;(wmAwvWindowHookCB)&lt;br /&gt;&lt;br /&gt;OUTPUT OF CIW:&lt;br /&gt;_vivaCreateWindow(&amp;quot;rectangular&amp;quot;)&lt;br /&gt;triggered&lt;br /&gt;window:674&lt;br /&gt;vvCloseWindow(&amp;quot;fnxSession1&amp;quot; &amp;quot;win1679&amp;quot; )&lt;br /&gt;nil&lt;br /&gt;_vvSetCurrentWindow(&amp;quot;fnxSession1&amp;quot; &amp;quot;win1676&amp;quot; )&lt;br /&gt;t&lt;br /&gt;&lt;br /&gt;Unless I&amp;#39;m reading the documentation wrong, I don&amp;#39;t understand why the exit callback isn&amp;#39;t printing &amp;quot;triggered&amp;quot;.&lt;br /&gt;I&amp;#39;m on IC23.1&lt;br /&gt;Thanks, Trevor&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Scalar Vs. Wave results in OCEAN-XL</title><link>https://community.cadence.com/thread/65764?ContentTypeID=0</link><pubDate>Mon, 23 Feb 2026 12:44:45 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:ddc49846-b980-422e-9112-c2106b2b73b1</guid><dc:creator>shlooky</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/65764?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65764/scalar-vs-wave-results-in-ocean-xl/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi there!&lt;/p&gt;
&lt;p&gt;I have been trying for weeks now... please advice &lt;span class="emoticon" data-url="https://community.cadence.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I am running a DC sweep simulations with stepped parameter using OCEAN-XL script. Think transistor transfer characteristics...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I also have a CSV file containing data which I want to use as reference for my error calculation. Basically, after every sweep I am trying to calculate error between simulation and CSV data for each parameter value.&lt;/p&gt;
&lt;p&gt;My problem is that in Maestro GUI everything works perfectly. By averaging my &amp;quot;error wave&amp;quot; I get scalar number, but when running OCEAN scripts (my own or generated in GUI) I get &amp;quot;wave&amp;quot; result.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;How do I get scalar number from &amp;quot;wave&amp;quot; result in this case?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;quot;calcVal&amp;quot; complains about cyclic dependencies, functions &amp;quot;leafValue&amp;quot;, &amp;quot;value&amp;quot;, &amp;quot;ymax&amp;quot;, &amp;quot;mag&amp;quot; all produce wave result after running OCEAN scripts, I guess due to &amp;#39;sweeps evalType.&lt;/p&gt;
&lt;p&gt;There has to be a way how to dig up the scalar number since GUI can do it correctly....&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks you guys...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Snippet of my script&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ocnxlBeginTest(&amp;quot;SETUP&amp;quot;)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; simulator(&amp;#39;spectre)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; design(&amp;quot;myLib&amp;quot; DESIGN &amp;quot;schematic&amp;quot;)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; include(strcat(ROOT_DIR &amp;quot;/models.ocn&amp;quot;))&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; analysis(&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;dc&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?dev&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;/V_G&amp;quot;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?param&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;dc&amp;quot;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?start&amp;nbsp; &amp;nbsp; &amp;nbsp;0&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?stop&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;VAR(\&amp;quot;VDD\&amp;quot;)&amp;quot;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?step&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;10m&amp;quot;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; )&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ; Variables&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; include(strcat(ROOT_DIR &amp;quot;/07_desVars.ocn&amp;quot;))&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; temp(my_Temp)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; desVar(&amp;quot;VDD&amp;quot;&amp;nbsp; &amp;nbsp; my_VDD)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; desVar(&amp;quot;frek&amp;quot;&amp;nbsp; &amp;nbsp;1M)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; desVar(&amp;quot;W&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; 3u)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; desVar(&amp;quot;L&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; 3u)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; desVar(&amp;quot;M&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; 1)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; desVar(&amp;quot;NF&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp;1)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; desVar(&amp;quot;VD&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp;0)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; desVar(&amp;quot;VG&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp;0)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; desVar(&amp;quot;VS&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp;0)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; desVar(&amp;quot;VB&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp;0)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ocnxlOutputTerminal(&amp;quot;/V_D/MINUS&amp;quot; ?save t)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ocnxlOutputExpr(&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;IS(\&amp;quot;/V_D/MINUS\&amp;quot;)&amp;quot;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?name&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SIM&amp;quot;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?save&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?plot&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?evalType&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#39;point&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; )&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ; Down-sample the output for error calculation&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ocnxlOutputExpr(&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;sample(SIM 0 1.2 \&amp;quot;linear\&amp;quot; 25m)&amp;quot;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?name&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;SAMPLED_SIM&amp;quot;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?save&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?plot&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ?evalType&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#39;sweeps&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;; point, corners, sweeps, maa&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; )&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ; Slice-up down-sampled sim data&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ; Output: SAMPLED_SIM_i&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; for(i 1 12&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; title&amp;nbsp; &amp;nbsp; = sprintf(nil &amp;quot;SAMPLED_SIM_%d&amp;quot; i)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expr&amp;nbsp; &amp;nbsp; &amp;nbsp;= sprintf(nil &amp;quot;leafValue(SAMPLED_SIM \&amp;quot;VD\&amp;quot; %3.2f)&amp;quot; 0.1*i)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ocnxlOutputExpr(expr ?name title ?save t ?plot t ?evalType &amp;#39;sweeps)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; )&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ; Import CSV reference data&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ; Output: REFERENCE_i&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; file = strcat(CSV_DIR &amp;quot;/reference.csv&amp;quot;)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; for(i 1 12&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; title&amp;nbsp; &amp;nbsp; = sprintf(nil &amp;quot;REFERENCE_%d&amp;quot; i)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expr&amp;nbsp; &amp;nbsp; &amp;nbsp;= sprintf(nil &amp;quot;getAsciiWave(\&amp;quot;%s\&amp;quot; 1 %d ?xskip 2 ?yskip 2 ?xUnits \&amp;quot;V\&amp;quot; ?yUnits \&amp;quot;A\&amp;quot;)&amp;quot; file i+1)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ocnxlOutputExpr(expr ?name title ?save t ?plot t ?evalType &amp;#39;point)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; )&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ; Sliced-up error&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ; Output: ERROR_i&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; for(i 1 12&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; title&amp;nbsp; &amp;nbsp; = sprintf(nil &amp;quot;ERROR_%d&amp;quot; i)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expr&amp;nbsp; &amp;nbsp; &amp;nbsp;= sprintf(nil &amp;quot;((SAMPLED_SIM_%d - REFERENCE_%d) / REFERENCE_%d * 100)&amp;quot; i i i)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ocnxlOutputExpr(expr ?name title ?save t ?plot t ?evalType &amp;#39;sweeps)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; )&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ; AVG error&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; ; Output: ERROR_avg_i&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; for(i 1 12&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; title&amp;nbsp; &amp;nbsp; = sprintf(nil &amp;quot;ERROR_avg_%d&amp;quot; i)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expr&amp;nbsp; &amp;nbsp; &amp;nbsp;= sprintf(nil &amp;quot;average(ERROR_%d)&amp;quot; i)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ocnxlOutputExpr(expr ?name title ?save t ?plot t ?evalType &amp;#39;sweeps)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; )&lt;/code&gt;&lt;br /&gt;&lt;code&gt;ocnxlEndTest()&lt;/code&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Suppress load() messages</title><link>https://community.cadence.com/thread/65756?ContentTypeID=0</link><pubDate>Wed, 18 Feb 2026 13:12:46 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:2b192bbd-fada-4bcc-aca7-40eb09e0009f</guid><dc:creator>LoVyacheslavvVEMs</dc:creator><slash:comments>7</slash:comments><comments>https://community.cadence.com/thread/65756?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65756/suppress-load-messages/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span&gt;Hello all.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;I am currently using &lt;/span&gt;&lt;code&gt;&lt;span&gt;load(&amp;quot;script.il&amp;quot;)&lt;/span&gt;&lt;/code&gt;&lt;span&gt; inside my procedure, which results in the return values of each command executed within &lt;/span&gt;&lt;code&gt;&lt;span&gt;script.il&lt;/span&gt;&lt;/code&gt;&lt;span&gt; being printed to the CIW. This behavior is not desired in my use case.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;I attempted to redirect the output stream using &lt;/span&gt;&lt;code&gt;&lt;span&gt;let( ((poport temp_file_port)) )&lt;/span&gt;&lt;/code&gt;&lt;span&gt;, but this approach did not resolve the issue.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;Could you please advise on how to properly suppress the messages generated by &lt;/span&gt;&lt;code&gt;&lt;span&gt;load()&lt;/span&gt;&lt;/code&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thank you in advance for your assistance.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>SKILL Lint "Unrecognized global variable" error when referencing CDF default values in pcDefinePCell</title><link>https://community.cadence.com/thread/65754?ContentTypeID=0</link><pubDate>Wed, 18 Feb 2026 06:08:12 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:53db14e4-c420-4879-aeea-b3c72547bfc5</guid><dc:creator>thiruvenkata</dc:creator><slash:comments>5</slash:comments><comments>https://community.cadence.com/thread/65754?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65754/skill-lint-unrecognized-global-variable-error-when-referencing-cdf-default-values-in-pcdefinepcell/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi!,&lt;/p&gt;
&lt;p&gt;I am writing a SKILL PCell and trying to align the default parameter values in the pcDefinePCell by fetching cdfId to ensure the synchronization, as described in the&lt;em&gt;&amp;nbsp;&amp;quot;Introduction to SKILL PCell Programming&amp;quot; RAK (specifically &lt;b data-path-to-node="6,0" data-index-in-node="103"&gt;Lab 4: Automatically Aligning Default Parameter Values&lt;/b&gt;)&amp;quot;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;It describes to define cdf globally and use it in the parameter list and set to nil at the end.&lt;/p&gt;
&lt;p&gt;For eg:&lt;/p&gt;
&lt;p&gt;lib=&amp;quot;PCell&amp;quot;&lt;br /&gt;cellName=&amp;quot;test&amp;quot;&lt;br /&gt;cdf=cdfGetBaseCellCDF(ddGetObj(lib cellName))&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;pcDefinePCell(&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;list(ddGetObj(lib) cellName &amp;quot;layout&amp;quot;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;list(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; (w &amp;quot;float&amp;quot; cdf-&amp;gt;w-&amp;gt;defValue)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; (l &amp;quot;float&amp;quot; cdf-&amp;gt;l-&amp;gt;defValue)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; (layer &amp;quot;string&amp;quot; cdf-&amp;gt;layer-&amp;gt;defValue)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; ) ;parameters&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;let((cv)&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;;body&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;);let&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;);pcDefinePCell&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;lib=nil&lt;br /&gt;cellName=nil&lt;br /&gt;cdf=nil&lt;/p&gt;
&lt;p&gt;So, When I run SKILL lint on this code, it flages lib, cellName and cdf as unrecognized global variables.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:227px;max-width:388px;" height="227" src="https://community.cadence.com/resized-image/__size/776x454/__key/communityserver-discussions-components-files/48/pastedimage1771394636772v3.png" width="388" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;So, I tried wrapping the variables inside the let statement and run the skill lint, the outcome is that it still flags cdf as unrecognized global variable but not the variables lib and cellName.&lt;/p&gt;
&lt;p&gt;Why only cdf is still flagged and not the other variables?&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:78px;max-width:402px;" height="78" src="https://community.cadence.com/resized-image/__size/804x156/__key/communityserver-discussions-components-files/48/pastedimage1771394506493v2.png" width="402" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I want to know what is the best practice to avoid these warnings? Any suggestions or insights are appreciated.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Virtuoso version: IC618 Base release:&amp;nbsp;&amp;quot;sub-version&amp;nbsp; IC6.1.8-64b.83 &amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Thiruvenkata&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>calcVal from CIW returns nil</title><link>https://community.cadence.com/thread/65748?ContentTypeID=0</link><pubDate>Mon, 16 Feb 2026 10:28:30 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:29b34cd2-42f9-4a7b-8e8b-ca2f3ec37b90</guid><dc:creator>Karam Gh</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65748?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65748/calcval-from-ciw-returns-nil/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;I normally run calcVal after selecting&amp;nbsp;&amp;quot;View Results&amp;quot; for a history item in maestro. This works wonderfully.&lt;/p&gt;
&lt;p&gt;I would like to move to executing calcVal from CIW without opening the maestro view. I use the following:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;calcVal(outputName&amp;nbsp;testName&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; ?lib libName&amp;nbsp;?cell cellName ?view&amp;nbsp;viewName&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; ?cornerName cornerName&amp;nbsp;?historyName historyName)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;In this case calcVal returns nil. Any suggestions to help evaluate my output without having to manually &amp;quot;View Results&amp;quot; prior to each calcVal?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;Guidance is appreciated.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Copy via :-  V1 to V2</title><link>https://community.cadence.com/thread/65744?ContentTypeID=0</link><pubDate>Mon, 16 Feb 2026 02:36:15 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:2352aa79-4322-4c87-af34-a396c67b717c</guid><dc:creator>mattab</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/65744?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65744/copy-via---v1-to-v2/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I have a requirement to copy all vias&amp;nbsp; from V1 to V2 in a layout,when I try to generate new via using the dbCreateVia&amp;nbsp; by taking the viaParams I am unable to get the cutclass&lt;/p&gt;
&lt;p&gt;Is there another way to get it copied&lt;br /&gt;I use IC23.1&lt;/p&gt;
&lt;p&gt;Any leads,Thanks in advance&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Mattab&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Is there a way to compare the devices in Cadence Layout with schematic based on the type of devices, their parameters and number of devices, like while doing floor plan. not routed yet</title><link>https://community.cadence.com/thread/65724?ContentTypeID=0</link><pubDate>Tue, 10 Feb 2026 03:57:39 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:d2cc5497-1e84-4a2e-bd51-a7304ab17503</guid><dc:creator>NM202506199454</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/65724?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65724/is-there-a-way-to-compare-the-devices-in-cadence-layout-with-schematic-based-on-the-type-of-devices-their-parameters-and-number-of-devices-like-while-doing-floor-plan-not-routed-yet/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span&gt;Hello all,&amp;nbsp;&lt;br /&gt;&amp;nbsp; So, I want to give a report as output with it mentioning the type of device and number of those compared with respect to schematic.&lt;br /&gt;so is there any way.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Thank you&lt;br /&gt;Kishore&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Looking for alternate of dbInstQuery</title><link>https://community.cadence.com/thread/65719?ContentTypeID=0</link><pubDate>Sun, 08 Feb 2026 18:40:59 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:26702e2c-7de9-45eb-bc7f-a69fec6a042d</guid><dc:creator>Duc Loc</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/65719?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65719/looking-for-alternate-of-dbinstquery/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span&gt;Hi all,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I&amp;#39;m working on copying instance from a lower hierarchy to the top level and found a solution here:&lt;/span&gt; &lt;a title="https://support.cadence.com/apex/articleattachmentportal?id=a1o3w000009fgyreaa&amp;amp;pagename=articlecontent" href="https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O3w000009fgyrEAA&amp;amp;pageName=ArticleContent"&gt;&lt;span&gt;SKILL: How to copy all cells with a specific name in the layout hierarchy to the top level&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;When I tried it, dbInstQuery was unable to finish because there are millions of instances in the hierarchy. I attempted to limit it using dbInstQuery(cv cv~&amp;gt;bBox &lt;strong&gt;startLevel stopLevel&lt;/strong&gt;), but it wasn&amp;#39;t efficient since the instance I need is deep in the hierarchy. Is there a function that can target a specific instance? I&amp;#39;m also open to other suggestions.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thank you in advance,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Loc&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to un-sort a hiCreateTreeTable?</title><link>https://community.cadence.com/thread/65706?ContentTypeID=0</link><pubDate>Tue, 03 Feb 2026 11:06:08 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:6892dc8b-2ddc-4933-9e30-48c0f147d4fa</guid><dc:creator>p94todorov</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/65706?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65706/how-to-un-sort-a-hicreatetreetable/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Everyone,&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve been using some tree tables and they have a built-in ability to sort the data by specified column. By default the table appear as being build with the items listed sequentially. At this time the&amp;nbsp;&lt;strong&gt;sort&amp;nbsp;&lt;/strong&gt; property is not defined:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;myTable-&amp;gt;sort&amp;nbsp;&lt;/strong&gt;is&amp;nbsp;&lt;strong&gt;nil.&amp;nbsp;&lt;/strong&gt;If you click on a sortable column 1 or two times it will sort it either on ascending or descending order, while&amp;nbsp;&lt;strong&gt;myTable-&amp;gt;sort&lt;/strong&gt; will become&amp;nbsp;&lt;strong&gt;&amp;#39;(colNum t)&lt;/strong&gt; or&amp;nbsp;&lt;strong&gt;&amp;#39;(colNum nil)&lt;/strong&gt;. I was expecting that I can simply feed the original property back to&amp;nbsp;&lt;strong&gt;nil&lt;/strong&gt; and all sorting will be gone or push it out of bounds, but an error/warning is produced:&lt;br /&gt;&lt;br /&gt;&lt;img style="max-height:480px;max-width:640px;" src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/48/pastedimage1770116251659v1.png" alt=" " /&gt;&lt;br /&gt;&lt;br /&gt;So my qeustion is how I can restore the ordering of the items in the GUI to the original order? I see that the original filedList is not modified, so this is a GUI trick only. I can imagine adding additional column, feed the item number and either sort on it directly or hide it and trigged the sroting with some other sorting callback on external button or bindkey. Getting a snapshot of the tree, deleting the current one and re-attaching it to the tree table doesn&amp;#39;t work, since the table keeps the sorting condition. I am trying to avoid the approach with the dummy column if possible, since it will send me down a road to update a lot of other things and tools that are already attached to the current format.&lt;br /&gt;&lt;br /&gt;Is there an easier way to revert back the tree table to the original order of the tree items?&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Petar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>what‘s the function of LDToggleDim()？？？</title><link>https://community.cadence.com/thread/65703?ContentTypeID=0</link><pubDate>Sat, 31 Jan 2026 03:56:49 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:7759b26d-2411-4ecd-b3f1-e17ef0520992</guid><dc:creator>YS202601303439</dc:creator><slash:comments>3</slash:comments><comments>https://community.cadence.com/thread/65703?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65703/what-s-the-function-of-ldtoggledim/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I want to know the function of the command in my Bindkey settings,and I find the command &amp;quot;LDToggleDim()&amp;quot;, but when i search in the cdnhelp ,I cant&amp;nbsp; find it&lt;/p&gt;
&lt;p&gt;so i want to know if&amp;nbsp; &amp;nbsp;its&amp;nbsp; a real command in cadence?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>SKILL navigator custom query</title><link>https://community.cadence.com/thread/65692?ContentTypeID=0</link><pubDate>Wed, 28 Jan 2026 04:52:40 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:d613ba65-52cc-4093-bfcb-7b5536385bc6</guid><dc:creator>SB202510154715</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65692?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/65692/skill-navigator-custom-query/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I want to create a custom query which displays the nets along with another data entry. I want to add that data in a new column alongside nets. Is that possible&amp;gt; Or is the navigator assistant only used to filter the nets based on conditions that we can set?&lt;img style="max-height:480px;max-width:640px;" src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/48/Screenshot-2026_2D00_01_2D00_28-101953.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>