Importing SPICE models into Keysight ADS

At ECOSat, we do all our own electronics design, RF included. The granddaddy of all RF design suites is Keysight’s Advanced Design System (you’ll find Keysight on our sponsors page). ADS is an extremely powerful tool, but using it can be daunting for a novice.

The first thing you need in an RF design is some fundamental analog devices: transistors and diodes. ADS comes with a library already, but it’s not incredibly comprehensive. Many vendors offer ADS-specific models for their devices, but others may only provide a SPICE model. These SPICE models are normally a device model embedded in a subcircuit that also accounts for parasitic effects. Ensuring these parasitics are imported is crucial for RF design.

It turns out you can translate SPICE models for use in ADS simulations,┬ábut the process is a little convoluted. Here’s a quick guide.

First, choose File -> Import -> Design from the main window.


Ensure the import type is set to “Netlist,” and that you also target the appropriate library to drop the resulting model (for one-offs, I usually just put it in the project library).


The SPICE conversion process doesn’t always go off without a hitch. ADS’ translation tool is fairly pedantic in regards to syntax, so a slightly malformed SPICE netlist that might have imported just fine into PSPICE can fail to import into ADS. Below, you can see that there’s an error on line 2 of the file I’m trying to import.


A quick inspection of the underlying SPICE file shows that Phillips omitted the “.” in the “.SUBCKT” definition, causing the importer to choke. As shown below, I’ve added the period to the netlist using a text editor.


After trying again with the updated netlist, everything works perfectly and the model imports without complaint.


As you can see in the image below, ADS doesn’t attempt to do anything fancy when creating a schematic from the netlist – it just drops down each component and links them with netlabels. This is perfectly fine, as all the connectivity identified by the netlist is still there.


You’re almost done. Before you use your new device model, you probably want to update its schematic symbol. Open the schematic symbol from the workspace hierarchy.



As you can see, the default symbol is just a box with the SPICE model’s subcircuit port numbers. You probably don’t want this. What I normally do is copy the appropriate symbol from the stock ADS libraries. In this case, I copied the artwork from the BJT_NPN symbol in ads_rflib. I determined the port numbers by tracing back through the subcircuit. In this case, port 1 was the collector, port 2 was the base, and port 3 was the emitter.



That should do it! You’ve now imported a SPICE model into ADS.

A very big thank you to Keysight EEsof EDA for providing our team with licenses for ADS, Genesys, SystemVue, and EMPro.

Leave a Reply

Your email address will not be published. Required fields are marked *