Generating Corners for ADE-XL with Python

I’ve been using ADE-XL to run corner simulations lately. I like that it lets me set up a specification for simulations (AKA a scoreboard) and then runs through different corners. And it supports distributed or parallel computing. But getting things like corner definitions in there is difficult. You’d have to hand-enter them. Luckily, Cadence allows […]

Read CSV files as a Matlab struct array

I like CSV files for their portability (Python, Excel), ease of debug, and lightweight nature (no SQL databases etc). However, one key aspect of CSV files is that they are column-oriented–that is, you have to keep track of which data is in which column. In python, csv.DictReader and csv.DictWriter do this for you–you don’t have […]

More updates to the CDSVN scripts

Our friend from Brazil (Nilton Jr) sent us the attached update last year: CDSVN. I’m just getting around to posting them now. I haven’t tried them out, but they are “customizations [they] made to [their] environment”. Also, we got another contribution from Iou Bingyong: svnMenu.il. He says: I’m in China and I have tried your […]

Shortcut to plot relative to reference signal

Ocean/skill script follows. Select a net. Press ctrl-g. Now that net is your “reference”. Select a different net (or the same net if you are fond of trivial signals). Press ctrl-r that second net is plotted relative to the reference. This is useful for debugging multiple supply domains, supply/ground bounce, and differential circuits. relVt.il:

Creating a Nyquist plot with Cadence

Cadence has a stability analysis that returns loop gain (return ratio). Typically, this is done using a log sweep of frequency. The reason is that doing a uniform linear sweep results in too large frequency steps for low frequencies and/or too large of a step for higher frequencies. Unfortunately, when you do a logarithmic sweep, […]

For loops in Cadence

If one is doing an analysis over a range of variables, one should use the paramAnalysis ocean function. That said, I’m constantly having to look up how to do a for loop in Skill. So, I’m placing a couple examples where I know I can get to them.

Top