Quantcast
Channel: Cadence Technology Forums
Viewing all 62731 articles
Browse latest View live

Forum Post: RE: Validate idial inductor using Yparam expression

$
0
0
Hello Andrew, I have tried to implement the expression with real and imaginary a part. ((imag(ypm('sp 1 1))+real(ypm('sp 1 1)))+(imag(ypm('sp 2 2))+real(ypm('sp 2 2)))+(imag(ypm('sp 2 1))+real(ypm('sp 2 1))))/ ((imag(ypm('sp 1 1))+real(ypm('sp 1 1)))*(imag(ypm('sp 2 2))+real(ypm('sp 2 2)))-(imag(ypm('sp 1 2))+real(ypm('sp 1 2)))*(imag(ypm('sp 1 2))+real(ypm('sp 1 2)))) still i couldnt see complex values. I have try to verify my expression in ADS as shown bellow , and i succseeded recreating the inductance from the imaginary part of the expression as shown bellow How can i plot my the imaginary part of my expression? Where did i go wrong creating this expression in Cadence virtuoso Calculator. Thanks

Forum Post: RE: Validate idial inductor using Yparam expression

$
0
0
I don't know why you've complicated this so much - especially when you've shown the ADS expression which would be almost the same in structure as it would be in the ADE calculator. The ypm function returns complex numbers (versus frequency) and only when a complex expression is sent to the graph or a table does it automatically take the magnitude. You do not need to separate out the real and imaginary parts and then add them back together again - that is a pointless exercise, and it will still show the magnitude at the end anyway when sent to the table. You could do it in two steps (e.g. using the expression editor in the calculator, or with separate outputs in ADE): zz=(ypm('sp 1 1)+ypm('sp 2 2)+2*ypm('sp 2 1))/(ypm('sp 1 1)*ypm('sp 2 2)-ypm('sp 1 2)*ypm('sp 1 2)) l=imag(zz)/(2*3.1415926535*xval(sp(1 1))) ; the xval part is to the get the frequency I can't quite remember whether the access function to get s-parameters is sp(1 1) - but the point here is to just give something you can get xval of. Or you could just use imag() around your whole expression: imag((ypm('sp 1 1)+ypm('sp 2 2)+2*ypm('sp 2 1))/(ypm('sp 1 1)*ypm('sp 2 2)-ypm('sp 1 2)*ypm('sp 1 2))) Regards, Andrew.

Forum Post: RE: VerilogA, one or the other parameter implementation

Forum Post: Evaluate Expression that depends on another expression after ADE XL Run

$
0
0
Hello, Relevant Link: Plot expression after ADE-XL run Version: IC6.1.6-64b.500.6 In the given link Andrew Beckett shows how to plot output expressions from an ADE run. However, how does this work in the case of an expression that depends on another expression? Say, for instance, I want gm/Id and I already have the expressions for gm and Id but if I use tables to store the expression, then when eval() evaluates gm/Id it won't find either since the expressions for gm and Id were stored in a table whose name is neither gm nor Id. In addition, in Processing raw Spectre Monte Carlo data ? , Andrew Beckett calls a function ocnxlOpenResults(), where is this function? My version doesn't seem to have it. I ask because I'm trying to get rdb->outputs() to give me something other than nil. It gave me the outputs before, but for some reason I can't seem to get it to give me the outputs again. Any help in these two matters would be greatly appreciated.

Forum Post: Abstraction Generation Error (IC 6.1.7)

$
0
0
Hi, I hope this question is more relevant to Custom IC forum. I am trying to generate the LEF files from a custom standard cell. Until I reach the abstraction step in the abstract standalone mode, everything works fine. But in verification stage, it throws an error stating *Error* (ABS-15074): Cell UT_10T_BENC11: Failed to complete the Verify step because the technology file does not have any appropriate sites defined for use in the verification design. Define a site and then try again. The log file of the entire process is here : https://pastebin.com/e7nytQLQ For some reason, the text fields and check-boxes in the Abstract -> Site pane are disabled and I cannot define an appropriate site for the placement ! The steps I followed are similar to the ones in documentation. What could possibly go wrong here ? Thanks Anuradha

Forum Post: RE: Maestro: Could not find state ..../spectre/active active

$
0
0
According to Cadence support this is a bug which was fixed in IC6.1.7 ISR22 onwards. It is caused by copying a maestro-view via "save a copy", when the maestro-view is openend "read-only". Then the file "active.state" is not copied. If then the maestro-view is opened by another user, the required "active.state" is searched in the simulation folder - where it does not exist for this other user of course. It seems that in our case, the maestro-view was created in ic6.1.7.500.1400 and not in ic6.1.8.010 as we assumed before. I verfified that when creating the "save a copy" in 6.1.8.010 this problem does not exist anymore.

Forum Post: Maestro customization: Not to open schematic in tab, and two other issues

$
0
0
There are some issues we face with maestro and its default settings and we are wondering if those can be customized using ".cdsenv" ot ".cdsinit": 1. A maestro view sometimes remains locked after I close the session (Session->Quit). I don’t know why this happens or how to prevent it. Moreover, I don’t know how to remove this lock unless I restart Cadence. Having a maestro view locked is a problem is because it doesn’t allow me to check in this view into SOS. 2. When I start Explorer I can select that I want to open the schematic in a separate window (and not in a tab). But after a while I see that Explorer has already connected a tab with the schematic despite my instruction not to do so. For example if I add a "signal" to the outputs - maestro opens the schematic in a tab, despite it is open already in an extra window. Is it possible to customize the default settings and change the behavior ? 3. When I have highlighted just one output expression and point to the delete symbol, other expressions (usually at the bottom of my expressions list) sometimes vanish! I’ve never seen such buggy behavior from ADE-L. This is compounded by the fact that the maestro state has already been automatically saved and so I cannot go back! Any idea why this happens and how it can be fixed ? We are using ic6.1.8.

Forum Post: RE: Maestro customization: Not to open schematic in tab, and two other issues

$
0
0
Please contact customer support over all of these. I'm not sure I've seen all of them, but some may be existing issues. Either way, none of them sound like desirable behaviour and so it's important to capture and uncover when they occur so that we can improve the software. I don't think they are all issues that are happening all the time (because we'd hear about them non-stop if they were). Andrew.

Forum Post: RE: .SPF Pin Annotation Issue in Virtuoso

$
0
0
Hi Andrew, I modified the .spf file and in a way that the instantiation of standard cells now have the supply rails. Simulation now runs (I am measuring power) and however it becomes "0" with the spf inclusion. Without its annotation, simulation just works fine. Can't we annotate interconnect parasitics with standard cells in this way without going through gds flow ? Thanks

Forum Post: RE: Temperature sweep of a chopped bandgap in MonteCarlo

$
0
0
If you are changing the temperature in the table every 1ms and set param_step to 1ms, then it will be no different. The parameter change is always discontinuous - if you set the temperature change to be (say) 5 degrees every 1ms, and you set param_step=0.1m then it would change the temperature by 0.5 degree every 0.1ms. In essence it will do smaller discontinuous steps without you needing to specify each intermediate step in the paramset table. So if the first temperature was temp1 at time1 and the second was temp2 and time2, it would update the temperature every param_step to be param_step*(temp2-temp1)/(time2-time1). For your second question, if you've specified the paramset information through the ADE UI as I've shown above, or you're using just a single parameter being changed in older versions, the only "additional parameter" you need to specify is the param_step - no need for external files in that case. Regards, Andrew.

Forum Post: RE: .SPF Pin Annotation Issue in Virtuoso

$
0
0
Hi Anurans, The thing is you're talking about the DSPF include flow here - this is not "annotation" as it replaces the original design hierarchy. With that, it's important for the leaf cells and the DSPF to tie up, which they don't here. I suspect that the changes you have made here are not really connecting up the supplies or something odd is going on. I've no experience of trying this flow with cell-level DSPF from Innovus, so I can't really comment on how well it works or if there are any workarounds to make it work. In general we would recommend using transistor DSPF for this flow. Potentially the approach you describe might work with spectre's DSPF stitching flow which does annotate the parasitics onto the original schematic hierarchy - but that can be problematic for other reasons and is a flow that we don't tend to encourage nowadays (which is why it doesn't show up in the ADE UI). It might be best to contact customer support so that we can take a look at your set up and work through the feasibility of getting this flow working (with the DSPF from Innovus). Maybe there's some switches in Innovus which can ensure that the power pins are connected (I don't know enough about Innovus to know off the top of my head, and I don't have the bandwidth to investigate at the moment as I'm travelling). Regards, Andrew.

Forum Post: RE: Import .spef file in Spectre

$
0
0
Hi Simone, Did you use the DSPF file in ADE to generate these numbers ? I do a quite similar experiment which needs interconnect parasitics to be simulated with the cells (In my case I have cells with parasitics). I have used SPEF with back-end STA tools, but no luck of using the interconnect DSPF file in ADE. Thanks

Forum Post: RE: HDI via

$
0
0
This is set up with the Constraint Manager - far right settings inside CM. You'll also want to set your via structure up accordingly so it selects uVias first (and change the Via Option to WL I believe). Trial and error. There are some tutorials online too that help you through this. If I find my 'how to' document I'll pass it along. I think I have it on a smart stick somewhere.

Forum Post: RE: HDI via

$
0
0
support.cadence.com/.../ArticleAttachmentPortal

Forum Post: RE: Validate idial inductor using Yparam expression

$
0
0
Hello Andrew, i have tried to implement your guidance by entering the expression you suggested imag((ypm('sp 1 1)+ypm('sp 2 2)+2*ypm('sp 2 1))/(ypm('sp 1 1)*ypm('sp 2 2)-ypm('sp 1 2)*ypm('sp 1 2))) However i got a very noisy plot aroung zero , not even ascending as we should expect by Z_L=jwL Its an idial inductor of 1n its suppose to give me a straight line. Where did i go wrong? Thanks

Forum Post: Chip Utilization with Innovus

$
0
0
Hello to everybody! Right now I'm facing a problem with the place and route of some adders: in fact, I would need to optimize the floorplan area, and so I would have to have the maximum chip utilization % possible. However, I thought about a tcl script, but I do not know how to save the core utilization of a particular combination of H/W ration and utilization. The only thing I can do is to use checkFPlan -reportUtil but this only shows the data I want to save in a variable. Do you know how can I do this?

Forum Post: How do I find a null detector or any component to be placed in Capture?

$
0
0
Hi, I am considered to be rather new to PSpice even though I have used it several times before in the past. I always struggle using the software as I never figure out where I can find the component I needed to simulate the circuit. Now, I am back for another round and attempt to ask the community for guidance. I want to simulate a circuit that makes use of a null detector, which is used for an ideal voltmeter; however, I don't know where I can find the part or if it even exists. I was supplied with a SPICE netlist along with that circuit, but I don't think I can use that in PSpice. Also, if I want to simulate another circuit using a commercial IC or analog part, where do I find the part to use in PSpice?

Forum Post: RE: Validate idial inductor using Yparam expression

$
0
0
Dear yefj, I wish you would study your results a bit more closely as Andrew spent a lot of effort answering your questions! Your results appear as expected with a sign inversion (although noisy likely due to the resolution of your y parameters). In your prior response, you computed the expected inductance as 1 nH. The expression you provide above is not the inductance, but the impedance expressed in ohms. With a 1 nH inductance and at 10 GHz, the impedance should be 1e-09*2*pi*10e9 = +62.8 ohms. If I take your spectre plot of impedance versus frequency and apply some post-processing to make it more readable, I can include an average trend line over the data in red. Note that at 10 GHz, the estimated impedance is just about -60 ohms or so - which is exactly what I would expect with a sign inversion possibly due to your simulation or ADE expression Does this make sense yefj? Shawn

Forum Post: RE: Evaluate Expression that depends on another expression after ADE XL Run

$
0
0
To answer my own question about "what if an expression depends on another expression?", I found that using regex to substitute out the variables in the expressions for the variables used in the script was my best option for what I know about the software. Here is a section of the code I used for anyone wondering. evalTable = makeTable( "evalTable" nil ) foreach( out outputList sprintf( expression "%L" outTable[out]->expression ) foreach( eval evalTable rexCompile( sprintf( nil "[^:]%s" eval ) ) if( rexExecute( expression ) then rexCompile( sprintf( nil "%s" eval ) ) expression = rexReplace( expression sprintf( nil "evalTable[\"%s\"]" eval ) 0 ) ) ) evalTable[out] = evalstring( expression ) ) Note that this code assumes that expressions that depend on previous expressions are listed LATER in the outputList list variable. I still don't know if there is a better way to do this or if cadence has some built in behavior that can be leveraged to avoid this issue, but this is what I found to work.

Forum Post: RE: RDB Outputs empty and how to plot efficiently in SKILL/Ocean XL

$
0
0
To answer my own questions, I found that the famCreateFamily() and famAddValue() are the much better options for both creating a list of waveforms to be plotted and plotting said families of waveforms. Apparently the plot() and awvPlotWaveform() functions have undocumented behavior that allows them to accept not just a family object as input but also nested families as well. (undocumented in the sense the neither functions' documentation page lists that it accepts families as inputs) Going by this, it appears that the oxyYvsYplot() and plot() functions must also accept families and cadence is actually creating families for the signals behind the scene, when doing a parametric sweep, and that is what is being passed to those functions. One more, and in my opinion important, note: all references in the forums, that I've found, on how to plot one waveform against another refer either to ocnYvsYplot for the case of ADE L or that one must manually use the "Y vs Y" option in ADE XL plots in order to get a similar behavior in ADE XL. There is, in fact, a function called waveVsWave() that completely avoids all the issues with both of these methods and will in fact work in ADE L/XL. Lastly, I still don't know why I can't get rdb->outputs() to return anything other than "nil". I've tried using openResults() and that didn't work. I found a brief reference to a function called ocnxlOpenResults() ( here ) but I can find no documentation of such a function nor can I called it. I did briefly get rdb->outputs() to return what I expected, but I can't reproduce what exactly I did to cause that. If anyone can help me or point me to an example that shows how this is done, I'd very much appreciate it. Other than that, I hope whom ever finds this won't have to go through the same hardship.
Viewing all 62731 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>