Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] [Virtuoso HSPICE Simulator] Vpulse not working

Status
Not open for further replies.

etmsni

Junior Member level 1
Joined
Jul 5, 2016
Messages
17
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
204
In Virtuoso, I'm using the "vpulse" from the analoglib, with basic characteristics, "voltage 1: 0V, voltage 2: 1.2V, period: 1ns, delay time: 10ps, rise time: 50ps". Then I use ADE to check if this voltage pulse works. If I use Spectre as the simulator, the signal comes out as a normal periodic pulse wave. However, if I chose Hspice(using NCSU freepdk 45nm) as the simulator using the same conditions, it gets a weird straight line output. Can anyone help? Thanks!

Voltage pulse signal that is being tested:
graph3.GIF

Weird signal using Hspice as simulator:
graph.GIF

Normal signal using Spectre as simulator:
graph1.GIF
 

I guess we are to assume that your HSPICE installation
works properly for other things?
 

In the netlists, the pulse voltage source shows up for Spectre but not for Hspice. I tried using a vdd and vdc voltage for Hspice, and it appears to be working correctly. Is there anything else I should check (not sure why Hspice can't generate pulse voltage directly from ADE)? Thanks!!!
 

In the netlists, the pulse voltage source shows up for Spectre but not for Hspice. I tried using a vdd and vdc voltage for Hspice, and it appears to be working correctly. Is there anything else I should check (not sure why Hspice can't generate pulse voltage directly from ADE)? Thanks!!!
If this component doesn't have HSPICE View, it will not work..You should use a source with HSPICE View or create your own source..
 

In the netlists, the pulse voltage source shows up for Spectre but not for Hspice. I tried using a vdd and vdc voltage for Hspice, and it appears to be working correctly. Is there anything else I should check (not sure why Hspice can't generate pulse voltage directly from ADE)? Thanks!!!
Simply your problem is that you do create wrong Netlist as pulse signal source for HSPICE.

Show us netlists for both Spectre and HSPICE.
 
Last edited:

1. In the Virtuoso ADE manual, it says that vpulse is included in the Hspice simulator, please see below (ref: https://studylib.net/doc/8875703/virtuoso-ade-l-user-guide)
v3.GIF


2. I agree that the netlist using HSPICE is generated incorrectly, because it's missing the voltage pulse signal as mentioned in the previous post. However, I'm generating the netlists using Virtuoso, which are done automatically, and not by typing in the code itself. Therefore, my main question is "how can I generate the netlist correctly and automatically in Virtuoso?" I know I can just manually change the netlist by adding the voltage pulse commands, but it would be more efficient if I didn't have to do this every time. Thanks!

Here are the netlists:

(a) using HSPICE simulator(you can see the generated netlist is missing the voltage pulse):
Code:
.PROBE TRAN
+    V(0)
+    V(net1)
.TRAN 100e-12 10e-9 START=0.0

.TEMP 25.0
.OPTION
+    ARTIST=2
+    INGOLD=2
+    PARHIER=LOCAL
+    PSF=2
.INCLUDE "path name deleted for privacy"

** Library name: name deleted for privacy
** Cell name: test_source
** View name: schematic
v0 net1 0 PULSE 0 1.2 10e-12 50e-12 1e-9
.END

(b) Spectre
Code:
// Generated for: spectre
// Generated on: Aug  2 20:30:59 2017
// Design library name: name deleted for privacy
// Design cell name: test_source
// Design view name: schematic
simulator lang=spectre
global 0

// Library name: name deleted for privacy
// Cell name: test_source
// View name: schematic
V0 (net1 0) vsource type=pulse val0=0 val1=1.2 period=1n delay=10.00p rise=50p
simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
    tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
    digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
    checklimitdest=psf 
tran tran stop=10n write="spectre.ic" writefinal="spectre.fc" \
    annotate=status maxiters=5 
finalTimeOP info what=oppoint where=rawfile
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
primitives info what=primitives where=rawfile
subckts info what=subckts where=rawfile
save net1 0 
saveOptions options save=allpub
 
Last edited by a moderator:

Describe your situations correctly.

In the netlists,
the pulse voltage source shows up for Spectre
but not for Hspice.
Do you mean you can not create HSPICE netlist from Cadence ADE ?
What error do you get ?

However, if I chose Hspice(using NCSU freepdk 45nm) as the simulator using the same conditions,
it gets a weird straight line output.
You said you can not HSPICE netlist from Cadence ADE.
If so, how do you create HSPICE netlist ?

I tried using a vdd and vdc voltage for Hspice, and it appears to be working correctly.
What do you mean ?
Describe your situations correctly.
Can you get different result from https://www.edaboard.com/attachment.php?attachmentid=140280&d=1501724401 ?

I think you have two HSPICE netlists.
(1) is for https://www.edaboard.com/attachment.php?attachmentid=140280&d=1501724401
(2) is in https://www.edaboard.com/showthread.php?t=370192&p=1585070#4

Show me both netlist.

2. I agree that the netlist using HSPICE is generated incorrectly,
because it's missing the voltage pulse signal as mentioned in the previous post.
What do you mean ?
Describe your situations correctly.

However, I'm generating the netlists using Virtuoso, which are done automatically, and not by typing in the code itself.
What do you mean ?
Describe your situations correctly.
Can you create HSPICE netlist now ?

Code:
(a) using HSPICE simulator(you can see the generated netlist is missing the voltage pulse):
.PROBE TRAN
+    V(0)
+    V(net1)
.TRAN 100e-12 10e-9 START=0.0

.TEMP 25.0
.OPTION
+    ARTIST=2
+    INGOLD=2
+    PARHIER=LOCAL
+    PSF=2
.INCLUDE "path name deleted for privacy"

** Library name: name deleted for privacy
** Cell name: test_source
** View name: schematic
v0 net1 0 PULSE 0 1.2 10e-12 50e-12 1e-9
.END
Describe your situations correctly.
How do create this netlist ?
Do you mean you add "v0 net1 0 PULSE 0 1.2 10e-12 50e-12 1e-9" manually by yourself ?

Is there anything else I should check
(not sure why Hspice can't generate pulse voltage directly from ADE)?
Do you surely set "hspiceD" in "stopViewList" and "switchViewList" surely ?
Code:
envSetVal("hspiceD.envOpts" "stopViewList" 'string "hspiceD veriloga spice")
envSetVal("hspiceD.envOpts" "switchViewList" 'string "hspiceD veriloga spice cmos_sch cmos.sch schematic")
 
Last edited:

Hi, Pancho_hideboo! Thanks for trying to help. Someone else solved the problem, so here's the solution for others to prevent lost time/agonizing. Virtuoso is a GUI interface, where the netlists are generated with a click of a bottom (this is what's meant by automatically) from drawn pictures of the circuits. When selecting the voltage pulse source in Virtuoso, there is a properties option used to fill out whatever properties of the signal wanted. Generally, not all the properties need to be filled out, and netlists will be generated regardless of the properties. The issue is that for Hspice simulators, there is a certain amount of properties that need to be filled out (in other words, the set properties follow the same syntax as in the code, whereas Spectre doesn't care about this minor difference). If the correct number of properties are filled out, the generated netlist will generate the correct waveform. If not, a netlist is still generated but with incorrect waveforms.
 

Surely answer my questions.
Your posts in this thread have no consistency at all.

Someone else solved the problem,
From first of this thead, no problem existed.

The issue is that for Hspice simulators,
there is a certain amount of properties that need to be filled out (in other words,
the set properties follow the same syntax as in the code,
whereas Spectre doesn't care about this minor difference).
Can you understand an operation of Cadence ADE and CDF surely ?

Use Tool Filter, if you want to show valid parameters only for HSPICE.
Code:
envSetVal("auCore.toolFilter" "toolList" 'string  "spectre hspiceD")
 
Last edited:

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top