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

Forum Post: RE: Inconsistency in maestro result DB using SKILL

$
0
0
Hi Karam, The handling of nil results was only if you want to get signals as well as waveform expr. I'm not sure how this could have worked without specifying the corner if you were sweeping over corner - but then again I don't know enough about your set up - maybe you weren't sweeping corners, or not sweeping points? It's unclear. I suggest you contact customer support so that there can be some clarity about your setup before and now to see if there's a bug that's been introduced. In my experiments I didn't spot any change in behaviour, so that probably means I'm not doing quite the same as you. I don't have the bandwidth to do loads of experiments to try to guess what is different about what you're doing than I'm doing - so I suggest you work with your local support team. Regards, Andrew.

Forum Post: Input impedance calculation using DFT for Radio Frequency

$
0
0
Hi I am trying to find the input imepdance of an RF rectifier circuit by using FFT in cadence. The equation I'm using is Zin = DFT(Voltage)/DFT(Current) at the required frequency. However, after evaluation cadence gives me only the magnitude of the impedance Zin. How can I get both the real and imaginary parts after the above computation? Thanks

Forum Post: RE: Input impedance calculation using DFT for Radio Frequency

$
0
0
The result of the dft() function in the Virtuoso Visualization and Analysis calculator (ViVA) (assuming you're talking about the Virtuoso tools - you just said "in cadence" - there's no tool called "cadence") are complex values versus frequency. So the expression you describe above is also complex versus frequency. If you plot it, it automatically plots the magnitude, but you can use the real() or imag() functions to get the real or imaginary parts - you can also use the phase, phaseDeg, phaseRad, phaseDegUnwrapped etc functions to get the phase. Regards, Andrew.

Forum Post: RE: Input impedance calculation using DFT for Radio Frequency

Forum Post: xrun timing check

$
0
0
Hi, I have to perform an RTL simulation using some library cells and some models. Both files have the timing information through specify/specparam definition. I would like to suppress timing information for the library cells but I want to keep the timing information relative to my models; so I cannot use the -nospecify option during simulation, otherwise all the timing information will be cleaned. Is it possible to remove the timing information from only some blocks? I've also tried to precompile the library using -makelib -nospecify options but it doesn't work. Thanks!

Forum Post: RE: Symbol and layer embedding requirements do not match.

$
0
0
I have this error too and am trying DBDoctoring the component.

Forum Post: RE: Shape Snap to grid when shape is off grid, How to ?

$
0
0
For me this works fine: Goto move mode set find filter to shapes Hover over the corner of the shape which you want to move. RMB->snap pick to-> segment vertex Now the shape corner is attachted to the cursor and you can place it on any grid you want. I've placed the 'snap pick to vertex' in my ENV file so I can do this with a single keystroke: funckey v "prepopup;pop dyn_option_select 'Snap pick to@:@Segment Vertex'" Bram

Forum Post: RE: SKILL console ?

$
0
0
I use this for quickly reloading one or a set of skill files and restart the code: defun( zz () load(" ") load(" ") axlShell("done") axlShell(" ") ) By typing 'zz' in the skill console it will (re)load and start the code. It saves you some copy/pasting of 'load' commands during debugging:) Bram

Forum Post: RE: xrun timing check

$
0
0
I think that is a case for the -tfile option.

Forum Post: RE: Shape Snap to grid when shape is off grid, How to ?

$
0
0
Allegro does *not* have any "memory" of/for shapes. However, there are two key grid systems in Allegro: etch and non-etch. Within etch, each layer can have its own grid. I suspect you might have changed grid for either the wrong type or the wrong layer. The technique supplied by Bram is probably the easiest for moving a shape by its vertex to a new grid point. If the shape is sized oddly you might find you'll be chasing the grid around if it's too coarse.

Forum Post: RE: Shape Snap to grid when shape is off grid, How to ?

$
0
0
Hi Red & Bram, Bram's suggestion works good and the macro helps too. In testing things at this end I noticed something odd in 16.6. If I do exactly as Bram says, a shape that has some of the shape off grid can be snapped back to the grid and it works good. Now to an oddity. If I have the find filter for shapes checked and then hover over a segment of the shape so it's bound is highlighted then do a RMB Move followed by a RMB snap pick to segment vertex I am unable to get the shape to snap to the new grid point. My thinking was that doing this would achieve what I was after. Kind of makes sense to me. Like the object is highlighted and I want to move and also snap to a vertex. I normally use RMB move as it is less mouse travel. It seems that the Move menu item and the right click RMB move are not working the same. Maybe this is by design ?. Was thinking RMB Move and menu item Move should work the same for this operation. Red on my grid I have a macro that changes them but it keeps everything the same for layers, Etch, Non etch etc. All is working now but i'm curious about the RMB Move option.. Thanks Paul.

Forum Post: RE: ADE XL setup not working properly.

$
0
0
Andrew, Thanks yes it was the PATH setting. Andy

Forum Post: RE: Symbol and layer embedding requirements do not match.

$
0
0
Check for any Embedded Property and Alternate symbol property mismatch for both the components. Also if you are on SPB 16.6 release , update to latest hotfix and recheck this issue.

Forum Post: RE: Library Re-characterization Guide

$
0
0
Since the post has been moved to custom IC design forum, any inputs to my question would be greatly appreciated ! Anuradha

Forum Post: RE: Library Re-characterization Guide

$
0
0
define_template command is need for all characterisations. this has nothing to do with Spice simulation, as the saved Spice deck will not be re-used. Again, the slew/load index should be pre-defined. Each library hay has its own slew/load table, depending on the design and cell behavior. if you use -auto_index option, Liberate can auto-calculate the slew/load based on min/max_transition and min output capacitance specified by users. The slew/load values for all Spice simulations come from the define_template.

Forum Post: Strange problem when working with small currents in ADE L

$
0
0
Hi, I noticed a problem when simulating in ADE L with a 0.18um technology. For a simple current mirror, I found that results are not reliable for small currents (in the order of nA) if transistors’ parameters W and L are directly set. On the contrary, if the multiplier parameter is used, simulation results match with those expected. Moreover, for currents in the order of μA, simulation results are always as expected. The schematic is this one: Results of 10 DC operating point simulations are shown in these Tables. As you can guess by noticing the VDS,sat value, the level of inversion is kept more or less constant across simulations. For small current, only setting the multiplier parameter works. On the contrary, for higher currents, either using multiplier of directly setting the values of transistors work as expected. It is also worth noting that scaling the Lenght of the transistor instead of the Width WORKS both for small and high currents. Sim 1 Sim 2 Sim 3 Sim 4 Sim 5 V0 [V] 1.8 1.8 1.8 1.8 1.8 I0 [nA] 5 5 5 5 5 R0 [MΩ] 20 20 20 20 20 W0 [μm] 0.5 0.5 0.5 0.5 0.5 L0 [μm] 0.5 0.5 0.5 0.5 0.5 W1 [μm] 0.5 1 2 0.5 0.5 L1 [μm] 0.5 0.5 0.5 0.5 0.5 multiplier1 1 1 1 2 4 V X1 [mV] 270.208 270.208 270.208 270.208 270.208 V X2 [V] 1.678 1.6722 1.593 1.558 1.328 V DS,sat1 [mV] 43.381 43.381 43.381 43.381 43.381 V DS,sat2 [mV] 43.381 43.223 44.632 43.381 43.381 I out [nA] 6.11 6.39 10.33 12.08 23.58 Sim 6 Sim 7 Sim 8 Sim 9 Sim 10 V0 [V] 1.8 1.8 1.8 1.8 1.8 I0 [μA] 1 1 1 1 1 R0 [kΩ] 100 100 100 100 100 W0 [μm] 100 100 100 100 100 L0 [μm] 0.5 0.5 0.5 0.5 0.5 W1 [μm] 100 200 400 100 100 L1 [μm] 0.5 0.5 0.5 0.5 0.5 multiplier1 1 1 1 2 4 V X1 [mV] 306.559 306.559 306.559 306.559 306.559 V X2 [V] 1.682 1.567 1.344 1.567 1.342 V DS,sat1 [mV] 46.845 46.845 46.845 46.845 46.845 V DS,sat2 [mV] 46.845 46.842 46.841 46.845 46.845 I out [μA] 1.18 2.33 4.55 2.34 4.56 What could be happeining here? Thanks in advanced!

Forum Post: RE: Shape Snap to grid when shape is off grid, How to ?

$
0
0
When you do a RMB->move (with the mouse above an element) then it just snaps at the current cursor position. So re-snapping it to eg. a vertex is not possible in this way. Try this to understand the selection / command function order: -Idle command, -find filter to shapes, -click on a shape so it is selected. Then use the 'move' command (not from RMB). You will notice that the shape is attachted to your cursor at the point where you've selected the shape. This is somewhat the same as you would RMB click on a shape, the cursor position at the RMB action is then your selection point. Now the other way, if you don't select anything and start a 'move' command nothing is selected or attached to the cursor. If you now snap to an element it shall be attached to your cursor at the snapped location.

Forum Post: Release memory after a function is completed

$
0
0
Hi all, Assume that we have a dummy test function which its definition is: procedure( test() let( (x) x = list( 2 3 ) ) ) If I run the profiler for this procedure I see that the total memory that have been allocated for this function is 96 bytes, while list command needs 48 bytes. Let's say that we need this function to be used 10000 consecutive times for a reason. Profiler reports that the allocated memory for this operation raises up to 468 KByte because of list command which need this much amount of bytes (I guess the numbers may differ in different machines). Is it possible to reduce the memory that is captured for this operation in any way? Or make that memory available again after the operation is finished? memoryAllocated() function indicates that once my processes are over, the memory remains captive. Also, I tried to force-use the gc() function but with no results, while operated time was increased. Chris

Forum Post: RE: Release memory after a function is completed

$
0
0
Hi Chris, You generally do not need to worry about this, as the system will garbage collect automatically as it needs to. Essentially it keeps a pool of each kind of object (list cells in this case) and when it has run out, it triggers a garbage collection before allocating more. Calling gc() explicitly is something that should only rarely be done in some high memory applications if you really need to control precisely when garbage collection occurs, but in general I wouldn't advise calling it in a program. Note that the memory won't be returned to the OS - so you wouldn't expect memoryAllocated() to reduce. Any unreferenced list cells are available to be garbage collected and re-used in subsequent operations. Many applications in Linux and other UNIX systems are similar - freeing memory doesn't necessarily return it to the OS. Trying to optimise memory in such a simple situation is unlikely to be worth the effort, similar to it being pointless doing performance optimisation at too low a level (or too soon). There are of course efficient ways of processing large amounts of data which can minimise potential garbage, but that's not something you can really extrapolate from such a trivial example as this. Kind Regards, Andrew.

Forum Post: RE: Release memory after a function is completed

$
0
0
Hi Andrew, In a way, this example is not so far from the reality, but thank you for the answer. Sincerely, Chris
Viewing all 63134 articles
Browse latest View live


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