<?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 Design - Recent Threads</title><link>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design</link><description>[b]Moderator:[/b] Andrew Beckett.</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Monte Carlo over design variable sweep in ADE XL</title><link>https://community.cadence.com/thread/66146?ContentTypeID=0</link><pubDate>Wed, 08 Jul 2026 06:42:15 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:29bfc422-c317-4dd1-95fe-e66e7f3cd34a</guid><dc:creator>RA20250218276</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/66146?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66146/monte-carlo-over-design-variable-sweep-in-ade-xl/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I am using virtuoso version 6.1.8&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am trying to do monte carlo simulation over a circuit. But to get the output, I need to sweep design variable.&lt;/p&gt;
&lt;p&gt;Basically I need to sweep the design_variable and the output I intend to obtain is output(&lt;span&gt;design_variable&lt;/span&gt;=1) - output(&lt;span&gt;design_variable&lt;/span&gt;=0) and so on. I do this by creating an expression with EvalType(&amp;quot;corners&amp;quot;) so it is evaluated once after the sweep is complete.&lt;/p&gt;
&lt;p&gt;I have also read several forum posts that says ADE XL Monte Carlo only supports measurement over corners, so I created 65 different corners each with different input.&lt;/p&gt;
&lt;p&gt;Then I retrieve the output of each corner using leafValue(VT() &amp;quot;design_variable&amp;quot; ValueAtEachCorner) and use it as part of the output expression.&lt;/p&gt;
&lt;p&gt;But when I do monte carlo on that, I get the plot of each output expression across mc_paramset instead of scalar value such as mean, stdev, max, min.&lt;/p&gt;
&lt;p&gt;Technically, I can save the plot as csv and calculate mean, stdev, max, min and anything else I need. But are there other ways to do it? Perhaps using OCEAN script measurement?&lt;/p&gt;
&lt;p&gt;Also,&amp;nbsp;using leafValue() to retrieve the output of each corner does work, but are there better ways to get output result that needs design_variable sweep?&lt;/p&gt;</description></item><item><title>One schematic for multiple layouts</title><link>https://community.cadence.com/thread/66134?ContentTypeID=0</link><pubDate>Mon, 06 Jul 2026 14:19:49 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:21fc2444-c804-490c-a364-5d8fdb8b7e51</guid><dc:creator>M202602061138</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/66134?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66134/one-schematic-for-multiple-layouts/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;What is the best way to handle multiple layouts of different aspect ratios using the same schematic when using LayoutXL?&lt;/p&gt;
&lt;p&gt;We don&amp;#39;t really want to duplicate the same schematic multiple times, but we do want layout XL to pass through the correct chosen aspect ratio and to maintain that layout when you do an update components and nets.&lt;/p&gt;
&lt;p&gt;eg: circuit1 is used in 3 different locations with different shape/size areas available so requires 3 different layouts, layout_A, layout_B &amp;amp; layout_C&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Would it be best to make it&amp;nbsp;a pcell with&amp;nbsp;Callback and CDF Parameters or use physConfig or another method?&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Mike V.&lt;/p&gt;</description></item><item><title>RE: One schematic for multiple layouts</title><link>https://community.cadence.com/thread/1408859?ContentTypeID=1</link><pubDate>Tue, 07 Jul 2026 20:37:49 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:8251354e-8641-430e-aaad-dcbce83efb3b</guid><dc:creator>Kevin T Buck</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408859?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66134/one-schematic-for-multiple-layouts/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I don&amp;#39;t understand what the issue is here, you might need to be more specific.&amp;nbsp;You can create multiple layout views within a cell and then using a physConfig view to specify the layout you want for each instance.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Stop the simulation after the GUI crash</title><link>https://community.cadence.com/thread/66137?ContentTypeID=0</link><pubDate>Tue, 07 Jul 2026 04:40:32 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:72489780-6bc9-44c3-80ee-1f6f5a0618ac</guid><dc:creator>dogman4</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/66137?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66137/stop-the-simulation-after-the-gui-crash/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi，friends&lt;/p&gt;
&lt;p&gt;&lt;span&gt;When running simulations with Assembler, the simulation session is interactive.1. I previously set `continueICRPRunOnAbruptGUIExit` to t. However, Virtuoso crashed before the interactive.1 simulation finished. After noticing issues with the partial results generated, I need to terminate the interactive.1 simulation. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;How should I do this?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&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>Liberate for characterizing emerging transistor technology</title><link>https://community.cadence.com/thread/66135?ContentTypeID=0</link><pubDate>Mon, 06 Jul 2026 18:58:47 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:f31354a5-6055-418e-b444-f123d584488f</guid><dc:creator>CW202607067723</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/66135?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66135/liberate-for-characterizing-emerging-transistor-technology/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi there,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m&amp;nbsp;developing a PDK/library for an emerging transistor technology. I&amp;#39;ve developed and validated a level-61 spice model for the transistors (non-Si-based) and the model can run in Spectre. The next step is to build&amp;nbsp;standard cells for logic gates, characterize them, and&amp;nbsp;generate .lib timing/power models for use in digital design and system-level evaluation.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m new to Liberate and was wondering if it is the right tool for&amp;nbsp;this task.&amp;nbsp;&lt;span&gt;In particular:&lt;/span&gt;&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Can Liberate characterize custom transistor-level cells using Spectre with a Level-61 device model? My understanding is Liberate should not depend on the internal transistor technology of the cell. As long as the Level-61 model is supported by Spectre, and Liberate can invoke Spectre on the transistor-level netlists, Liberate should be able to characterize the cells. Is that correct?&lt;/li&gt;
&lt;li&gt;Can I start with schematic-level/pre-layout netlists, and later move to PEX-extracted netlists?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;Any guidance or pointers would be greatly appreciated. Many thanks!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;All the best,&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;Kevin&lt;/span&gt;&lt;/p&gt;</description></item><item><title>ADE Explorer: How to pass a design variable to a parameter array and another design variable as a string parameter to an instance - Spectre vs. AMS</title><link>https://community.cadence.com/thread/66128?ContentTypeID=0</link><pubDate>Thu, 02 Jul 2026 10:26:53 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:92b253aa-bef5-4cb2-aadc-4b3060c88af8</guid><dc:creator>Volker T</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/66128?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66128/ade-explorer-how-to-pass-a-design-variable-to-a-parameter-array-and-another-design-variable-as-a-string-parameter-to-an-instance---spectre-vs-ams/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am referring to the following two blog posts, both dealing with ADE Explorer and/or Spectre, as an introduction to a similar problem I have with ADE Explorer and AMS.&lt;/p&gt;
&lt;h2 id="mcetoc_1jsh5h9br1"&gt;ADE Explorer and Spectre&lt;/h2&gt;
&lt;p&gt;1.&amp;nbsp;&lt;a title="How to Pass a String Design Parameter to a Cell" href="https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/47397/how-to-pass-a-string-design-parameter-to-a-cell/1372267" rel="noopener noreferrer" target="_blank"&gt;How to Pass a String Design Parameter to a Cell&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp;&lt;a title="Defining Verilog-A vector in the maestro view" href="https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/58013/defining-verilog-a-vector-in-the-maestro-view" rel="noopener noreferrer" target="_blank"&gt;Defining Verilog-A vector in the maestro view&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The first deals with the issue that when we have a parameterizable cell, like e.g. an instance &amp;quot;myInstance&amp;quot; of a cell using a Verilog-A view, that has a string parameter, e.g. &amp;quot;&lt;code&gt;fname&lt;/code&gt;&amp;quot; that we want to specify by design variable, the Spectre netlist does not contain the value of the design variable, but its name only.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;p&gt;At the beginning of the Spectre netlist, we see the parameters passed to Spectre, e.g.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;parameters temperature=27 vdd50=5 &lt;strong&gt;fname=&amp;quot;/tmp/mylogfile.log&amp;quot;&lt;/strong&gt; \&lt;/code&gt;&lt;br /&gt;&lt;code&gt; debuglevel=1 tperiod=50n trise=100p tsdelay=10n&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;But later in the netlist, when we look at the instance &amp;quot;myInstance&amp;quot; that receives some of these parameters, one of which is the &amp;quot;&lt;code&gt;fname&lt;/code&gt;&amp;quot; string parameter, we only see&lt;/p&gt;
&lt;p&gt;&lt;code&gt;myInstance trise=trise tfall=trise tdelay=0 \&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tsdelay=tsdelay tperiod=tperiod vdd=vdd50 logfile=&amp;quot;&lt;strong&gt;fname&lt;/strong&gt;&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So, instead of our string defined by design variable value, we only see the design variable name as a string passed to the instance&amp;#39;s string parameter &amp;quot;&lt;code&gt;logfile&lt;/code&gt;&amp;quot;,&lt;/p&gt;
&lt;p&gt;The solution shown by Andrew Beckett suggests to use SKILL functions to remove the respective string parameter while leaving the other string parameters in place:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;almGetStringParameterList(&amp;quot;mylib&amp;quot; &amp;quot;mycell&amp;quot; ?view &amp;quot;veriloga&amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=&amp;gt; (fname someOtherParam somethingElse)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;almSetStringParameterList(&amp;quot;mylib&amp;quot; &amp;quot;mycell&amp;quot; &amp;#39;(someOtherParam somethingElse) ?view &amp;quot;veriloga&amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=&amp;gt; (someOtherParam somethingElse)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The former function identifies all string parameters used by the respective view of a cell of a library (&lt;code&gt;fname&lt;/code&gt;, &lt;code&gt;someOtherParam&lt;/code&gt; and &lt;code&gt;somethingElse&lt;/code&gt; in the example shown) and then the latter function can be used to set the same list minus the string parameter we would like to pass by design variable (e.g. &lt;code&gt;fname&lt;/code&gt;) as the new string parameter list. That way, our Spectre netlist gets the value of the string parameter, and not only its name.&lt;/p&gt;
&lt;p&gt;Now the beginning of the Spectre netlist still looks like this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;parameters temperature=27 vdd50=5 &lt;strong&gt;fname=&amp;quot;/tmp/mylogfile.log&amp;quot;&lt;/strong&gt; \&lt;/code&gt;&lt;br /&gt;&lt;code&gt; debuglevel=1 tperiod=50n trise=100p tsdelay=10n&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;But later in the netlist, when we look at the instance &amp;quot;myInstance&amp;quot; that receives some of these parameters, one of which is the &amp;quot;fname&amp;quot; string parameter, we now see&lt;/p&gt;
&lt;p&gt;&lt;code&gt;myInstance trise=trise tfall=trise tdelay=0 \&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tsdelay=tsdelay tperiod=tperiod vdd=vdd50 logfile=&lt;strong&gt;fname&lt;/strong&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So, instead of &lt;code&gt;&amp;quot;fname&amp;quot;&lt;/code&gt; (in quotes, hence being a string), we only see &lt;code&gt;fname&lt;/code&gt; &lt;span style="text-decoration:underline;"&gt;without&lt;/span&gt; quotes, hence referencing the respective Spectre parameter.&lt;/p&gt;
&lt;p&gt;Problem solved, instance parameter &amp;quot;&lt;code&gt;logfile&lt;/code&gt;&amp;quot; is now fed by Spectre parameter &amp;quot;&lt;code&gt;fname&lt;/code&gt;&amp;quot; containing string value&amp;nbsp;&amp;quot;&lt;code&gt;/tmp/mylogfile.log&lt;/code&gt;&amp;quot; of design variable &amp;quot;&lt;code&gt;fname&lt;/code&gt;&amp;quot;..&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;p&gt;The second post deals with parameter arrays. Again, let&amp;#39;s assume we use&amp;nbsp;an instance of a cell using a Verilog-A view, that has a parameter array, like&lt;/p&gt;
&lt;p&gt;&lt;code&gt;parameter integer pattern[2:0] = {1, 2, 3};&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;and we would like to use a design variable &amp;quot;&lt;code&gt;myPattern&lt;/code&gt;&amp;quot; for the definition of the pattern, in ADE, then we cannot just enter&amp;nbsp;&lt;code&gt;[4 5 6]&lt;/code&gt;&amp;nbsp;for that design variable value to define a new pattern, as ADE interprets that as a literal or SKILL code.&lt;/p&gt;
&lt;p&gt;Andrew Beckett shows the solution for this in the referenced post #2, namely to use &lt;code&gt;strcat(&amp;quot;[4 5 6]&amp;quot;)&lt;/code&gt; as design variable value instead. This gives valid SKILL code for ADE, translates into string &lt;code&gt;&amp;quot;[4 5 6]&amp;quot;&lt;/code&gt;, which translates into Spectre parameter &lt;code&gt;[4 5 6]&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;At the beginning of the Spectre netlist, the parameter list now is&lt;/p&gt;
&lt;p&gt;&lt;code&gt;parameters &lt;strong&gt;myPattern=[4 5 6]&lt;/strong&gt; vdd50=5 fname=&amp;quot;/tmp/mylogfile.log&amp;quot; \&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; debuglevel=1 tperiod=50n trise=100p tsdelay=10n&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Later, when the respective instance occurs in the netlist, we see something like&lt;/p&gt;
&lt;p&gt;&lt;code&gt;myInstance trise=trise tfall=trise tdelay=0 &lt;strong&gt;pattern=myPattern&lt;/strong&gt;\&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tsdelay=tsdelay tperiod=tperiod vdd=vdd50 logfile=fname&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So, similar to the string parameter described before, the instance parameter now gets assigned the correct Spectre parameter.&lt;/p&gt;
&lt;p&gt;So far, so good, problems solved for ADE Explorer and Spectre.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jsh5fsmc0"&gt;ADE Explorer and AMS&lt;/h2&gt;
&lt;p&gt;Now let&amp;#39;s use the same test bench, using the same cells and design parameters, but AMS as a simulator. As far as I know, AMS uses a different netlister (UNL?), and that apparently behaves differently.&lt;/p&gt;
&lt;p&gt;The instance now gets its parameters assigned like this&lt;/p&gt;
&lt;p&gt;&lt;code&gt;myInstance #(.trise(cds_globals.trise), &lt;strong&gt;.pattern(&amp;quot;myPattern&amp;quot;)&lt;/strong&gt; .tperiod(cds_globals.tperiod), .tsdelay(cds_globals.tsdelay), .vdd(cds_globals.vdd50), .tdelay(0), .tfall(cds_globals.trise), &lt;strong&gt;.logfile(&amp;quot;fname&amp;quot;)&lt;/strong&gt;, .debuglevel(cds_globals.debuglevel)) I1 (.nrst( nreset ), .mclk( mclk ), ... );&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;There is no &amp;quot;pre-translation&amp;quot; of design variables into AMS parameters to be found as a list (but apparently there exists one, named &amp;quot;&lt;code&gt;cds_globals&lt;/code&gt;&amp;quot;, as one can see for the other parameters). But both the string parameter and the array parameter do not show up in cds_globals but are used directly as a string containing the design variable name instead of its value.&lt;/p&gt;
&lt;p&gt;So the question is, is there any trick similar to the two shown for Spectre that we can create a netlist using design variable values instead of design variable names?&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Efficient iterative methods for threshold extraction (ex: extraction of the input referred offset voltage of a clocked comparator or the calibration code of a bandgap etc.)</title><link>https://community.cadence.com/thread/66116?ContentTypeID=0</link><pubDate>Tue, 30 Jun 2026 08:30:13 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:7cd8668e-952b-44d1-a4cd-598ebefe69fa</guid><dc:creator>baltaci</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/66116?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66116/efficient-iterative-methods-for-threshold-extraction-ex-extraction-of-the-input-referred-offset-voltage-of-a-clocked-comparator-or-the-calibration-code-of-a-bandgap-etc/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;I would like to ask whether there are recommended methodologies for efficiently extracting a threshold condition that is otherwise defined implicitly and would normally require fine parameter sweeps.&lt;/p&gt;
&lt;p&gt;Two representative examples where this arises:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;In a clocked regenerative comparator, the input-referred offset is defined as the differential input at which the system switches state. A brute-force sweep over the input requires increasingly fine resolution, and the number of simulations grows rapidly as the desired error tolerance is reduced.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In DC operating-point calibration problems such as bandgap temperature compensation code tuning, the target digital calibration word is typically found by iterating until a target operating point is reached (or by finding the minimum slope). A full sweep over all possible codes is inefficient, whereas a successive-approximation approach can converge in logarithmic time.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In both cases, the brute-force approach can be viewed as a linear (or effectively rapidly growing) search:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;for each candidate value &amp;rarr; run simulation &amp;rarr; evaluate condition &amp;rarr; continue sweep&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;where achieving higher accuracy directly translates into a large increase in simulation count.&lt;/p&gt;
&lt;p&gt;Instead, a more efficient formulation would be an iterative search (such as SAR):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;initialize upper and lower bounds&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;while error &amp;gt; tolerance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;select midpoint&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;run simulation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;update bounds based on result&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;which reduces the number of simulations from linear scaling to logarithmic scaling with respect to resolution.&lt;/p&gt;
&lt;p&gt;Are such successive-approximation style extraction methods considered standard practice for this class of problems? In particular, are they supported or commonly used within verification flows (including GUI-driven environments such as Assembler), especially when Monte Carlo mismatch analysis is involved where each sample may require an inner convergence loop for each iteration?&lt;/p&gt;
&lt;p&gt;Additionally, I would like to ask whether an Ocean scripting-based solution is typically used for implementing such iterative flows. If so, is there guidance or best practice on ensuring that such scripted approaches remain competitive in runtime compared to traditional sweep-based methods, especially when combined with Monte Carlo mismatch simulations?&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Can&lt;/p&gt;</description></item><item><title>RE: Efficient iterative methods for threshold extraction (ex: extraction of the input referred offset voltage of a clocked comparator or the calibration code of a bandgap etc.)</title><link>https://community.cadence.com/thread/1408827?ContentTypeID=1</link><pubDate>Thu, 02 Jul 2026 07:35:40 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:0aefc68f-2b3c-4dbc-8e12-1b95fcf94291</guid><dc:creator>AVAQ Semi</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408827?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66116/efficient-iterative-methods-for-threshold-extraction-ex-extraction-of-the-input-referred-offset-voltage-of-a-clocked-comparator-or-the-calibration-code-of-a-bandgap-etc/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;A practical way to solve this is to treat the problem as a &lt;strong&gt;root-finding/search problem&lt;/strong&gt; rather than a brute-force sweep.&lt;/p&gt;
&lt;p&gt;For quantities such as comparator input-referred offset, bandgap trim code, LDO trim code, or any calibration parameter where the output changes monotonically with the search variable, a &lt;strong&gt;binary search (successive approximation)&lt;/strong&gt; is usually the most efficient approach. Instead of sweeping hundreds or thousands of values, each simulation halves the remaining search range, so the number of iterations grows as &lt;strong&gt;log₂(N)&lt;/strong&gt; rather than &lt;strong&gt;N&lt;/strong&gt;. This provides a dramatic reduction in simulation time while maintaining the desired resolution.&lt;/p&gt;
&lt;p&gt;In Cadence/Spectre, I&amp;#39;ve had good results implementing this using either:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SpectreMDL&lt;/strong&gt; with looping/search statements.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SKILL/OCEAN&lt;/strong&gt; scripts that automatically update the design variable after each simulation.&lt;br /&gt;A small &lt;strong&gt;Verilog-A controller&lt;/strong&gt; that performs the search internally, which is especially convenient for Monte Carlo characterization.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For clocked comparators, I also recommend combining the search algorithm with &lt;strong&gt;Monte Carlo mismatch&lt;/strong&gt; so that each sample converges to its own offset voltage automatically, instead of performing a dense input sweep for every run. This is significantly faster than the traditional ramp-based method while producing essentially the same statistical results.&lt;/p&gt;
&lt;p&gt;The key requirement is that the calibration variable has a monotonic relationship with the measured metric. If hysteresis or multiple stable operating points exist, the search algorithm should be modified accordingly (for example, by defining separate rising/falling thresholds or using a hysteresis-aware search strategy).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Schematic generation form spice file</title><link>https://community.cadence.com/thread/1408818?ContentTypeID=1</link><pubDate>Wed, 01 Jul 2026 07:15:39 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:b2c0d666-f7af-4132-b9dc-a7182a6880ae</guid><dc:creator>VIRAJ PANCHAL</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408818?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66120/schematic-generation-form-spice-file/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Thanks for your suggestion,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ya the error message I understood, so do I change &lt;strong&gt;viewTypeName as&amp;nbsp;&lt;span&gt;schematic in&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;anywhere in skill or dB files..?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have checked my spice file and library(it has writable permission); both are proper.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have give the reference libraries analogLib, basic, sample and &amp;lt;maintechLib&amp;gt;( in this case it is &amp;quot;cds_ff_mpt&amp;quot;). And I think no need for device mapping file, it should work with device map file. (I already cross checked in cadence RAK).&lt;/p&gt;
&lt;p&gt;I have attached my spi file as well as spiceIn log file. In spiceIn log file there is no information in last line. !! I thick it is incomplete.&amp;nbsp;&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/38/Screenshot-2026_2D00_07_2D00_01-122944.png" alt=" " /&gt;&lt;img style="max-height:480px;max-width:640px;" src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/38/Screenshot-2026_2D00_07_2D00_01-122749.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Schematic generation form spice file</title><link>https://community.cadence.com/thread/66120?ContentTypeID=0</link><pubDate>Tue, 30 Jun 2026 14:11:27 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:207b33ef-dfe9-4209-92c2-e44277314b11</guid><dc:creator>VIRAJ PANCHAL</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/66120?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66120/schematic-generation-form-spice-file/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi everyone,&lt;/p&gt;
&lt;p&gt;I am trying to generate schematic from spice(.spi) file through import spice option in virtuoso. But during schematic generation process I faced below error massage.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;*WARNING* (DB-270211): dbOpenCellViewByType: Cannot open cellview &amp;#39;testLIB/DFCNQD1BWP6TSA16P96CPD/schematic&amp;#39; in &amp;#39;a&amp;#39; mode because it does not exist or viewTypeName required to create a new cellview is not specified. Ensure that the cellview exists or to create a new cellview by specifying viewTypeName. Valid values for viewTypeName are &amp;quot;netlist&amp;quot;, &amp;quot;schematic&amp;quot;, &amp;quot;schematicSymbol&amp;quot; and &amp;quot;maskLayout&amp;quot;.&lt;/strong&gt;&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/38/Screenshot-2026_2D00_06_2D00_30-193427.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;According to above screenshot, The schematic view is not found in testLIB library. But how does it found before the schematic generation..!!??&amp;nbsp; It only give the netlist_tmp (blank schematic) as output but it should be schematic as output file.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kindly anyone tell me what&amp;#39;s the issue.!?&lt;/p&gt;</description></item><item><title>ERROR WHEN PRESS QUANTUS SETUP FORUM</title><link>https://community.cadence.com/thread/66113?ContentTypeID=0</link><pubDate>Mon, 29 Jun 2026 17:33:45 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:d31b430c-55b4-4bad-8e4e-b24af3928abd</guid><dc:creator>RM202605273230</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/66113?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66113/error-when-press-quantus-setup-forum/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello&amp;nbsp;&lt;br /&gt;&lt;br /&gt;for post layout simulation i wanted to extact layout netlist when i press quantus setup it shows&amp;nbsp;*Error* eval: unbound variable - tabField in log box could you please help me to fix this error&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Thank you&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>RE: ERROR WHEN PRESS QUANTUS SETUP FORUM</title><link>https://community.cadence.com/thread/1408817?ContentTypeID=1</link><pubDate>Wed, 01 Jul 2026 07:14:10 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:aa2511bb-8ceb-4c29-a170-1733cbe506d6</guid><dc:creator>RM202605273230</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408817?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66113/error-when-press-quantus-setup-forum/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;could you plese help me please when press quantus setup forum to set the extraction as spice file and rc that is not opening&amp;nbsp;&lt;span&gt;&amp;nbsp;it shows&amp;nbsp;*Error* eval: unbound variable - tabField&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Schematic generation form spice file</title><link>https://community.cadence.com/thread/1408816?ContentTypeID=1</link><pubDate>Wed, 01 Jul 2026 06:38:25 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:dd58a5f4-f728-4f89-9718-2389af75d356</guid><dc:creator>AVAQ Semi</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408816?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66120/schematic-generation-form-spice-file/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;The error message is actually a bit misleading. It is &lt;strong&gt;not&lt;/strong&gt; saying that the schematic already exists and then disappears. It is saying that Virtuoso &lt;strong&gt;failed to create&lt;/strong&gt; the schematic cellview.&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color:#999999;"&gt;DB-270211&lt;/span&gt; is typically generated when &lt;span style="background-color:#999999;"&gt;dbOpenCellViewByType()&lt;/span&gt; is called without a valid &lt;strong&gt;viewTypeName&lt;/strong&gt; while trying to create a new cellview. For a new schematic, the view type must be &lt;span style="background-color:#999999;"&gt;&amp;quot;schematic&amp;quot;&lt;/span&gt;; otherwise Virtuoso cannot create &lt;span style="background-color:#999999;"&gt;testLIB/&amp;lt;cell&amp;gt;/schematic&lt;/span&gt; and only temporary data (such as &lt;span style="background-color:#999999;"&gt;netlist_tmp&lt;/span&gt;) may be left behind. This is expected behavior when the import process aborts.&lt;/p&gt;
&lt;p&gt;A few things I would check:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that &lt;strong&gt;File &amp;rarr; Import &amp;rarr; Spice&lt;/strong&gt; is configured to generate a &lt;strong&gt;schematic&lt;/strong&gt; view rather than only a netlist.&lt;/li&gt;
&lt;li&gt;Check the &lt;strong&gt;spiceIn.log&lt;/strong&gt; file instead of only the CIW output. The first error in the log is usually the real cause.&lt;/li&gt;
&lt;li&gt;Make sure your target library is &lt;strong&gt;writable&lt;/strong&gt; and is an OA library.&lt;/li&gt;
&lt;li&gt;If the netlist contains standard cells or custom devices, verify that the &lt;strong&gt;reference libraries&lt;/strong&gt; and &lt;strong&gt;device mapping file&lt;/strong&gt; are correctly specified. Missing mappings often cause the import to terminate before schematic generation completes.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Parasitic extraction  with StarRC</title><link>https://community.cadence.com/thread/1408812?ContentTypeID=1</link><pubDate>Tue, 30 Jun 2026 13:46:03 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:8e1f1b0d-7a7e-4c26-9f5a-b2c0a9698076</guid><dc:creator>Phd SA88</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408812?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66118/parasitic-extraction-with-starrc/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Thank you&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Parasitic extraction  with StarRC</title><link>https://community.cadence.com/thread/66118?ContentTypeID=0</link><pubDate>Tue, 30 Jun 2026 11:05:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:b5fbbed5-4e8c-4c18-8d0c-730966d8ff70</guid><dc:creator>Phd SA88</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/66118?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66118/parasitic-extraction-with-starrc/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Deal all,&lt;/p&gt;
&lt;p&gt;I would lik to do parasitic extration with StarRC. Thus, when opening the StarRC Parasitic view genaration, i added correctly all paths, as seen below:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:480px;max-width:640px;" alt=" " src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/38/S1.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;-&lt;img style="max-height:480px;max-width:640px;" alt=" " src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/38/S2.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:480px;max-width:640px;" alt=" " src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/38/S3.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Furthermore, i edit correctly both of&amp;nbsp; file .snp_settings and the&amp;nbsp;starrcxt.cmd. However when i click on apply, there is an error:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;ERROR: MAPPING_FILE /working_directory/est3/STAR/LVS/calibrestar.map cannot be found.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;So, the svdb folder and the calibrestar.map are not created which ensure that LVS does not occured;&lt;/p&gt;
&lt;p&gt;Please help me to resolve this problem and thank you in advance&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best Regards&lt;/p&gt;</description></item><item><title>RE: Parasitic extraction  with StarRC</title><link>https://community.cadence.com/thread/1408810?ContentTypeID=1</link><pubDate>Tue, 30 Jun 2026 11:10:05 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:44eca16e-3143-406e-8879-32cea23eb580</guid><dc:creator>Andrew Beckett</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408810?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66118/parasitic-extraction-with-starrc/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;StarRC (and the interface to it within Virtuoso) is a Synopsys tool, so you would be better off asking this question on one of their forums or to their customer support.&lt;/p&gt;
&lt;p&gt;Kind Regards,&lt;/p&gt;
&lt;p&gt;Andrew&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Recommended methodology for PSRR characterization of a clocked regenerative comparator</title><link>https://community.cadence.com/thread/66111?ContentTypeID=0</link><pubDate>Mon, 29 Jun 2026 07:41:22 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1014baaf-9bc7-48e5-9051-ada0abac757f</guid><dc:creator>baltaci</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/66111?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66111/recommended-methodology-for-psrr-characterization-of-a-clocked-regenerative-comparator/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;I am trying to characterize the PSRR of a clocked regenerative comparator (StrongARM-type latch), and I am struggling not only with the simulator setup itself but also with the definition of PSRR for a latched comparator.&lt;/p&gt;
&lt;p&gt;For switched-cap amplifiers and other periodically time-varying but small-signal linear circuits, the usual SpectreRF flow (PSS followed by PAC/PXF) makes sense because the circuit can be linearized around its periodic operating point and the output is a continuous analog quantity.&lt;/p&gt;
&lt;p&gt;A regenerative comparator seems fundamentally different. Around the decision point, the small-signal gain becomes extremely large, and the final output is binary (either 0 or VDD). A very small perturbation in the input or supply can completely change the final decision. Because of this, I am having difficulty understanding what an &amp;quot;output-referred PSRR&amp;quot; would even mean.&lt;/p&gt;
&lt;p&gt;My concern is that a PSS+PXF flow may not provide a meaningful PSRR metric in this case, unless there is a specific methodology or interpretation that I am missing.&lt;/p&gt;
&lt;p&gt;Intuitively, it seems that supply noise should manifest itself as one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;An input-referred offset shift (equivalent input error due to supply variation),&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A change in decision time,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A change in metastability probability or decision error rate.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So my questions are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Can PSS/PAC/PXF be meaningfully applied to this type of circuit, and if so, how should the results be interpreted?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Is there a recommended Cadence/SpectreRF methodology for characterizing supply sensitivity of a clocked comparator?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="font-family:inherit;"&gt;I would appreciate any guidance or references on how others typically characterize PSRR or supply sensitivity for dynamic comparators.&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;
&lt;p&gt;Can&lt;/p&gt;</description></item><item><title>noise summary missing after pnoise simulation</title><link>https://community.cadence.com/thread/66109?ContentTypeID=0</link><pubDate>Sun, 28 Jun 2026 05:26:31 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:fdc28c26-87c4-4ccf-bdcb-b7c9b01e03f2</guid><dc:creator>gangliurfic</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/66109?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66109/noise-summary-missing-after-pnoise-simulation/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I run a PSS+Pnoise simulation and saved results. Usually after the simulation is done, I can Print-Noise Summary to show the contributions.&lt;/p&gt;
&lt;p&gt;Right now after my simulation, when I do this, I get an error&lt;/p&gt;
&lt;p&gt;ERROR (EXPLORER-2404): Cannot find a setup database entry for handle 0.&lt;br /&gt;Provide a valid database handle and try again.&lt;/p&gt;
&lt;p&gt;*Error* error: Cannot find a setup database entry for handle 0. - nil&lt;/p&gt;
&lt;p&gt;Also, the noisesummary folder is missing in the results directory.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Any idea why this is happening?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I am using IC25.1 ISR4.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;</description></item><item><title>PEX Results Much Worse Than Schematic Simulation</title><link>https://community.cadence.com/thread/66101?ContentTypeID=0</link><pubDate>Thu, 25 Jun 2026 08:41:59 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:2bbd7d26-5c6a-42f4-943a-7efe92f3dbc7</guid><dc:creator>AVAQ Semi</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/66101?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66101/pex-results-much-worse-than-schematic-simulation/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi everyone,&lt;/p&gt;
&lt;p&gt;I am working on a low-noise analog amplifier in Virtuoso and recently completed the layout.&lt;/p&gt;
&lt;p&gt;The schematic simulation results look good and meet the target specifications. However, after running parasitic extraction (PEX) and re-simulating the extracted view, I observed a much larger gain degradation than expected. The DC operating points remain almost unchanged, but the AC gain drops by around 20%.&lt;/p&gt;
&lt;p&gt;I have already checked:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Device sizes and connections&lt;/li&gt;
&lt;li&gt;LVS clean&lt;/li&gt;
&lt;li&gt;No obvious extraction errors&lt;/li&gt;
&lt;li&gt;Same simulation setup between schematic and extracted views&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My understanding is that interconnect parasitics should introduce some degradation, but this amount seems excessive.&lt;/p&gt;
&lt;p&gt;For those with experience in analog layout and PEX analysis:&lt;/p&gt;
&lt;p&gt;1. What are the most common causes of unexpectedly large gain reduction after extraction?&lt;br /&gt;2. How do you usually identify which parasitic components are contributing the most?&lt;br /&gt;3. Are there recommended debugging techniques within Virtuoso or Spectre to isolate the dominant parasitic effects?&lt;/p&gt;
&lt;p&gt;Any suggestions would be greatly appreciated.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;</description></item><item><title>Replacing DSPF sub-circuits with their functional view in the Hierarchical Editor for an AMS Mixed-Signal Simulation</title><link>https://community.cadence.com/thread/66091?ContentTypeID=0</link><pubDate>Mon, 22 Jun 2026 09:23:32 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:b638a14c-ab9c-421e-83d7-b5e469adf43b</guid><dc:creator>Josch</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/66091?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66091/replacing-dspf-sub-circuits-with-their-functional-view-in-the-hierarchical-editor-for-an-ams-mixed-signal-simulation/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello Everyone,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m trying to optimise our design flow by better utilizing AMS simulation capabilities to decrease our simulation times. We work with Analog-On-Top and have smaller digital blocks in our analog blocks (config, pattern generators, etc...). I figured out how to this with schematic simulation or hierarchical av_extraced views. In both cases the individual blocks are discovered by the Hierarchical Editor&amp;nbsp;and I can select in which way I want to simulate them (functional, schematic or av_extracted).&lt;/p&gt;
&lt;p&gt;However our main workflow is DSPF based and I cannot get it working&amp;nbsp;in such a way,&amp;nbsp;that the Hierarchical Editor can detect the sub-block hierarchy in the hierarchical DSPF file. When I switch the top level block to DSPF and reload, all sub-blocks in the tree list disappear. I tried reading in the DSPF directly from the Hierarchical Editor menu and loading it as a DSPF cell view. The DSPF is hierarchical and has all the sub-blocks I care about defined as sub-circuits. I am using&amp;nbsp;&lt;span&gt;Calibre v2024.4_27.13, Quantus&amp;nbsp;24.1.0-p089 and Virtuoso IC23.1-64b.ISR17.40.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Is the av_extracted AMS Hierarchical Editor flow with a DSPF possible at all? If it&amp;#39;s doable what could be the problem? If not what&amp;nbsp;would be the correct approach? I also saw the documentation about&amp;nbsp;DSPF-in-the-Middle (DSPFIM). Should this be used with DSPFs instead of the Hierarchical Editor?&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve also tried looking into IDSPF, but it seems like a hierarchical extraction is not possible in that format.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thank you very much for your support.&lt;br /&gt;&lt;br /&gt;Best,&lt;br /&gt;Josch&lt;/p&gt;</description></item><item><title>How to use 500 bit conversion analog to digital expression</title><link>https://community.cadence.com/thread/66075?ContentTypeID=0</link><pubDate>Tue, 16 Jun 2026 14:25:06 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:6f5be092-11ab-4ab4-a929-ec89df45d0ff</guid><dc:creator>RM202605273230</dc:creator><slash:comments>6</slash:comments><comments>https://community.cadence.com/thread/66075?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66075/how-to-use-500-bit-conversion-analog-to-digital-expression/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am trying to convert 500 bits from analog.to digital and use in expression in Adexl.bit its taking upto 149 only how to use 500 directly could you please let me know Thank you&amp;nbsp;&lt;/p&gt;</description></item><item><title>RE: How to use 500 bit conversion analog to digital expression</title><link>https://community.cadence.com/thread/1408726?ContentTypeID=1</link><pubDate>Wed, 17 Jun 2026 15:09:51 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:cddece27-1031-4bfe-b5b4-eab93ecd7c50</guid><dc:creator>RM202605273230</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1408726?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66075/how-to-use-500-bit-conversion-analog-to-digital-expression/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Thank you for the information&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use 500 bit conversion analog to digital expression</title><link>https://community.cadence.com/thread/1408705?ContentTypeID=1</link><pubDate>Wed, 17 Jun 2026 13:19:29 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:08614e72-40e0-46a3-b827-4f31fd723367</guid><dc:creator>Andrew Beckett</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408705?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66075/how-to-use-500-bit-conversion-analog-to-digital-expression/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Interactively (at least using the latest IC25.1 version; I didn&amp;#39;t go back and check your old version) it works interactively in ViVA creating the bus. However, the problem with generating an output expression in ADE for this is that the expression gets very long and unwieldy.&lt;/p&gt;
&lt;p&gt;I suggest trying to use a combination of the SKILL code in this post: &lt;a href="https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/29964/skill-func-for-exporting-csv/1335884"&gt;abDumpWaveformsToVCSV.il&amp;nbsp;&lt;/a&gt;(this should be loaded from your .cdsinit), and also &lt;a href="https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/38969/convert-digital-bus-to-an-integer-value---calculator-viva/1355685#1355685"&gt;abA2Bus.il from here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the ViVA calculator, in the function panel, use the &amp;quot;fx&amp;quot; button to navigate to the abA2DBus.il code and then you&amp;#39;ll be able to use it from the calculator. Using an expression such as this should then work:&lt;/p&gt;
&lt;p&gt;abA2DBus(VT(&amp;quot;/op&amp;lt;499:0&amp;gt;&amp;quot;) &amp;nbsp;&amp;quot;center&amp;quot; ?vCenter 0.9&lt;/p&gt;
&lt;p&gt;Andrew&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use 500 bit conversion analog to digital expression</title><link>https://community.cadence.com/thread/1408689?ContentTypeID=1</link><pubDate>Tue, 16 Jun 2026 15:57:35 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:0a3f04a4-6ede-4b4d-98b8-834d014c2936</guid><dc:creator>RM202605273230</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408689?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66075/how-to-use-500-bit-conversion-analog-to-digital-expression/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p data-path-to-node="2"&gt;Hi Andrew,&lt;/p&gt;
&lt;p data-path-to-node="3"&gt;To clarify the steps and the environment I am using, here are the details of my setup:&lt;/p&gt;
&lt;ol start="1" data-path-to-node="4"&gt;
&lt;li&gt;
&lt;p data-path-to-node="4,0,0"&gt;Tool and Environment Tool: I am indeed using Virtuoso Analog Design Environment XL. IC Sub-version: I am running IC6.1.8-64b.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-path-to-node="4,1,0"&gt;Selecting &amp;quot;Analog-to-Digital&amp;quot; and Setting the Range in the Virtuoso Visualization &amp;amp; Analysis XL waveform viewer. From the top menu, I navigate to Measurements -&amp;gt; Analog To Digital. This opens the Analog to Digital dialog box, where I select the signal VT(&amp;quot;/OUT&amp;lt;499:0&amp;gt;&amp;quot;) and attempt to configure the threshold and logic center values.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-path-to-node="4,2,0"&gt;Manually Entering the Bits / Expression Limitation I am entering the expression directly into the Outputs Setup tab of the main ADE XL window. Under the Details column for the expr type, I am using the awvCreateBus function combined with awvAnalog2Digital to stitch the bits into a single bitstring bus: value(awvCreateBus(&amp;quot;OUT_BITSTRING&amp;quot; list(awvAnalog2Digital(VT(&amp;quot;/OUT&amp;lt;31&amp;gt;&amp;quot;)... When I manually expand this list to include all bits for the larger bus (up to 500 bits), the ADE XL expression field automatically truncates the string, cutting it off after it reaches roughly 149 bits. Even with the proper conversion process selecting &amp;quot;Analog-to-Digital&amp;quot; and setting the range in that dialog, it still reduces to 149 bits.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-path-to-node="5"&gt;Please let me know if there is a more efficient function or a preferred method to handle large bit-width bus conversions in this version without hitting expression character limits.&lt;br /&gt;&lt;br /&gt;sorry for the early message confusion&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use 500 bit conversion analog to digital expression</title><link>https://community.cadence.com/thread/1408688?ContentTypeID=1</link><pubDate>Tue, 16 Jun 2026 14:58:58 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:9f336420-c079-4149-92d5-4109cb5403f3</guid><dc:creator>Andrew Beckett</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1408688?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/66075/how-to-use-500-bit-conversion-analog-to-digital-expression/rss?ContentTypeId=0</wfw:commentRss><description>[quote userid="912117" url="~/cadence_technology_forums/f/custom-ic-design/66075/how-to-use-500-bit-conversion-analog-to-digital-expression/1408687"]In ADE XL, I selected the analog-to-digital conversion options and set the value range.[/quote]
&lt;p&gt;Where are you selecting &amp;quot;the analog-to-digital conversion options and set the value range&amp;quot;? Are you actually using ADE XL (which is an end-of-life product) or ADE Explorer/Assembler?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Which IC sub-version are you using?&lt;/p&gt;
[quote userid="912117" url="~/cadence_technology_forums/f/custom-ic-design/66075/how-to-use-500-bit-conversion-analog-to-digital-expression/1408687"]even when I tried manually entering all 500 bits, ADE XL automatically limited the expression to only 149 bits[/quote]
&lt;p&gt;Where did you &amp;quot;manually enter&amp;quot; all these bits?&lt;/p&gt;
&lt;p&gt;I&amp;#39;m trying to work out exactly what you did, as it&amp;#39;s (still) not clear.&lt;/p&gt;
&lt;p&gt;Andrew&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>