Device manufacturers often provide HSPICE models of their devices that are encrypted. This is done to protect the manufacturer's Intellectual Property. Designers want to be able to simulate the encrypted netlist.
Version and Product
MWO and AO using HSP-100 feature (Hspice)
This article describes how to import and simulate an encrypted HSPICE netlist. The encrypted HSPICE netlist was generated using the Metaencrypt engine available from Synopsys. See the HSPICE data sheet for details.
Please refer to the attached project. A simple voltage divider circuit was built (ckt_for_encryption schematic) and an equivalent HSPICE netlist was then encrypted and Imported in AWRDE.
Native HSPICE netlists with file extensions .sp or .inc are supported. (Note that these files are ASCII text, and may be delivered with other extensions, like .lib. If you are certain they are HSPICE netlists, rename the files and change the extension to a supported one in order to import.)
Levels of Encryption
Equivalent HSPICE netlist:
.SUBCKT Encrypt 1 2 3 .prot RR1 1 2 100 DTEMP=-8.149999999999977 RR2 2 3 100 DTEMP=-8.149999999999977 RR3 3 0 100 DTEMP=-8.149999999999977 .unprot .ENDS
Netlist encrypted with .SUBCKT and .ENDS lines exposed:
.SUBCKT Encrypt 1 2 3 .PROT freelib 5a2Z[7Yw(912p7jw(912p[ '539 2573+(9P'T\*(*SBh)E],#(FE;E],w$Z 3:B#u:uxHpX#; *MiY3YX3:fe;e],#(fe;iUq ;Yu2s7JW3/12V%<92)\vZ=V,#(FE;E],#(*tL !$ 2y.'l .UNPROT .ENDS
Notice that the encryption takes effect between the .PROT and the .UNPROT statements.
Fully Encrypted Netlist:
Users have the option to encrypt the entire netlist including the .SUBCKT statement. Users of such encrypted netlists must know the name of the encrypted netlist to be able to use it. The first three lines of this netlist had to be added. Note that the user must know that the encrypted subcircuit has the name "Encrypt". They would also need to know the names of any user-specifiable parameters in order to set them.
.SUBCKT Fully_Encrypt 1 2 3 X1 1 2 3 Encrypt .ENDS .PROT freelib 5a2Z[7Yw(912p7jw(912p[ +KR->]J7< %YoIJ73Wc9u0 :83W39%27xJWox2O6_.lH[/E;E],#(FE;Eujy y6J$B#3:[1:$yS)U]A5*!3i#(fe;e],#(fT([ '5m9u2P73+(9P'T\*(*SBh)E],#(FE;E],w$Z -t#dkY e4Z68t2Y .UNPROT
Importing the netlist:
To import the encrypted HSpice netlist: In Project tree, right click Circuit Schematics > Import Netlist . In the Files of type field choose HSpice Netlist Files (native)(*.sp;*.inc) . Select the netlist file and click Open .
Note: You can also Link to the desired netlist instead of Importing it. Linking is useful in case the netlist it constantly updated in a certain folder.
Simulating the netlist:
Once the netlist is successfully imported, it can be used as a subcircuit in a schematic. Simply create a schematic and click the SUB icon in the tool bars (or press Ctrl+K ). Select the netlist and click OK . Click to place the netlist subcircuit in the schematic.
The attached project shows the original circuit, it's unencrypted and encrypted equivalent netlists. Basic DC voltage annotation on all circuits is used for verification.
Note: Only the native HSPICE simulator can be used to simulate the native HSPICE netlist. Harmonic Balance cannot be used to simulate a native HSPICE netlist. To simulate Native HSPICE Netlists, you must choose the HSPICE as the simulator in the Add/Modify Measurement Dialog. When adding a measurement, choose HSPICE as the simulator from the drop down menu.