I need your advice to make an automatic QA system for PDK us

R

Reotaro Hashemoto

Guest
Hi,

I am targeting to build an automatic QA system for particular PDK,
would you kindly give me sample duties that this system should
perform?

Is it better to test and simulate every component using a SKILL code
or OCEAN code??

In other words, when to use SKILL and when to use OCEAN?

Thanks and best regards,
Ahmad
 
Hi Ahmad,

The ideal QA tool will check the integrity of every single file and
reports any single change between PDK versions. This ideal tool is
unfortunately a utopia that does not exist in a real world. We have
tried to make this with 2 or 3 of my colleagues in my former company
and we managed to get something very powerful but it does not prevent
from leaking and letting couple of bugs going through …

The duties of such a tool is to run all the flows supported by the
PDK, not only on inverters but real-case designs as well.

In other words, you have to make modules for :

Digital/Analog/AMS/RF FE simulation (DC/AC/Tran/Noise …)
DRC
LVS
RC Extraction
Dummy filling
Layout finishing
…

Instantiate all the supported devices, with the most significant
parameter sets, insure that they instantiate well, netlist well, call
the pcells well, run the callbacks well, check the CDFs, the Model
files, pass the DRC, well exctracted by the LVs engine, well extracted
by the Parasitic extractor engine … and That’s only a little bit !

Run the DRC flows, the LVS Flows, RCX, …

Well, the list is very long and It’s very hard to achieve.
I learnt over my experience that the best way in QA-ing a PDK is to
run it on real designs (recent tapeouts for example).

The QA tool we made was a huge Perl engine which runs bits of Skill,
Shell, Eldo (I was not using ocean/spectre at this time)

That’s a pretty heavy stuff to tackle!

Good luck anyway!

Riad.
 
Riad KACED wrote, on 04/30/08 00:15:
Hi Ahmad,

The ideal QA tool will check the integrity of every single file and
reports any single change between PDK versions. This ideal tool is
unfortunately a utopia that does not exist in a real world. We have
tried to make this with 2 or 3 of my colleagues in my former company
and we managed to get something very powerful but it does not prevent
from leaking and letting couple of bugs going through …

The duties of such a tool is to run all the flows supported by the
PDK, not only on inverters but real-case designs as well.

In other words, you have to make modules for :

Digital/Analog/AMS/RF FE simulation (DC/AC/Tran/Noise …)
DRC
LVS
RC Extraction
Dummy filling
Layout finishing
…

Instantiate all the supported devices, with the most significant
parameter sets, insure that they instantiate well, netlist well, call
the pcells well, run the callbacks well, check the CDFs, the Model
files, pass the DRC, well exctracted by the LVs engine, well extracted
by the Parasitic extractor engine … and That’s only a little bit !

Run the DRC flows, the LVS Flows, RCX, …

Well, the list is very long and It’s very hard to achieve.
I learnt over my experience that the best way in QA-ing a PDK is to
run it on real designs (recent tapeouts for example).

The QA tool we made was a huge Perl engine which runs bits of Skill,
Shell, Eldo (I was not using ocean/spectre at this time)

That’s a pretty heavy stuff to tackle!

Good luck anyway!

Riad.
You might also want to take a look at:

http://www.cdnusers.org/Portals/0/cdnlive/emea2007/customdesign/1.8GiroudFCSR.pdf

Whilst the QA aspect wasn't the main focus of the paper, it does talk a bit
about this.

Note that OCEAN _is_ SKILL. It's just a SKILL API to simply control simulation
and evaluate results. It certainly makes sense to use OCEAN functions as part of
your SKILL code to QA the PDK.

I've done this by auto-generating schematics, containing instances of the
devices, with controllable sources on each pin of the device - to at least check
things like the fact that they netlist and simulate with no errors, and then to
validate that the operating point access works, and so on. More complex tests
are needed of course to validate that the models behave properly, but that's
perfectly doable.

Cadence also has a tool "STEP" which is for doing PDK testing automation. You
might want to contact your Cadence account manager for details.

Regards,

Andrew.
 

Welcome to EDABoard.com

Sponsor

Back
Top