Cadence Mixed-Signal Circuit Design Environment User Guide
Running a Mixed-Signal Simulation
October 2003
164
Product Version 5.0
Analog stimulus blocks include voltage sources, current sources, and behavioral instances.
To create an analog stimulus block or instance
1. Create a behavioral view for the stimulus block.
2. Define the stimulus module.
3. Write SpectreHDL or Verilog-A in a module definition.
4. Create a symbol view for the stimulus block.
5. Place the symbol in the top-level schematic and connect it to the appropriate terminals.
The following sample analog stimulus block shows the format of a file that implements a swept
sinusoidal source.
`include "discipline.h"
`include "constants.h"
`define PI
3.14159
// - Swept sinusoidal source
// sigout_p,sigout_n:output (val,flow)
// INSTANCE parameters
//
start_freq
= start frequency [Hz]
//
sweep_rate
= rate of increase in frequency [Hz/s]
//
amp
= amplitude of output sinusoid (val)
//
points_per_cycle = number of points in a cycle of
//
the output []
// The instanteous frequency of the output is 'sweep_rate'
//
* 'time' plus 'start_freq'.
module swept_sine_src(sigout_p,sigout_n);
output sigout_p,sigout_n;
electrical sigout_p,sigout_n;
parameter real start_freq = 1 from (0:inf);
parameter real sweep_rate = 1;
parameter real amp = 1 from (0:inf);
parameter real points_per_cycle = inf from [6:inf];
real freq;
real phase;
analog begin
phase = 2*`PI*(start_freq + sweep_rate / 2 *
$realtime)*$realtime;
freq = start_freq + sweep_rate * $realtime ; // =
d/dt(phase)
V(sigout_p,sigout_n) <+ amp*sin(phase);