ONESHOTR - Controlled Oneshot (Differential IO)
Model Kind
General
Model Sub-Kind
Generic Editor
SPICE Prefix
A
Model Name
ONESHOT
SPICE Netlist Template Format
@DESIGNATOR %%vd(%1,%2) %%vd(%3,%4) %%vd(%5,%6) %%vd(%7,%8) @"DESIGNATOR"ONESHOT
.MODEL @"DESIGNATOR"ONESHOT oneshot (?cntl_array|cntl_array=[@cntl_array]| ?pw_array|pw_array=[@pw_array]| ?clk_trig|clk_trig=@clk_trig| ?pos_edge_trig|pos_edge_trig=@pos_edge_trig| ?out_low|out_low=@out_low| ?out_high|out_high=@out_high| ?rise_time|rise_time=@rise_time| ?rise_delay|rise_delay=@rise_delay| ?fall_delay|fall_delay=@fall_delay| ?fall_time|fall_time=@fall_time| )
Parameters (definable at component level)
The following component-level parameters are definable for this model type and are listed on the Parameters tab of the Sim Model dialog. To access this dialog, simply double-click on the entry for the simulation model link in the Models region of the Component Properties dialog.
Clk_Trig | clock trigger value (Default = 0.5). |
cntl_array | control array (Default = 0). |
Fall_Delay | delay between receiving a valid trigger level and the output starting to fall from high value to low value (Default = 1.0e-9). |
Fall_Time | output fall time (Default = 1.0e-9). |
Out_High | output high value (Default = 1). |
Out_Low | output low value (Default = 0). |
Pos_Edge_Trig | positive (TRUE)/negative (FALSE) edge trigger switch. (Default = TRUE). |
Pw_Array | pulse width array. This value must be greater than or equal to zero. (Default = 1.0e-6). |
Rise_Delay | delay between receiving a valid trigger level and the output starting to rise from low value to high value (Default = 1.0e-9). |
Rise_Time | output rise time (Default = 1.0e-9). |
Notes
This model is used to output a single pulse, the width of which is determined by a user-defined piece-wise linear waveform and a controlling input.
The cntl_array
parameter values are input coordinate points (progressively increasing), while the Pw_Array
parameter values represent the corresponding pulse widths at those points. You could think of the function as being analogous to a look-up table, where the input signal (cntl
pin of the device) amplitude is mapped to the corresponding input value in the cntl_array
and then the Pw_Array
value that this is paired with, is used as the width for the output pulse signal.
The amplitude of the pulse is determined by the values assigned to the Out_Low
and Out_High
parameters.
The output pulse is controlled by means of the clk
input. When this input reaches the level assigned to the Clk_Trig
parameter, the pulse is triggered, on either the rising or falling edge of the clock, in accordance with the setting of the Pos_Edge_Trig
parameter.
Upon triggering, the output reaches its high value after time:
Rise_Delay + Rise_Time
and its initial value again after time:
Pulse Width + Fall_Delay + Fall_Time
The clr
input to the device is used to reset the state of the function so that it is possible to retrigger and thus obtain another pulse. The clr
signal must be higher than the Clk_Trig
signal to achieve this.
The input signal can be either a differential current or differential voltage signal.
Examples
Consider the One-Shot function in the above image, with the following characteristics:
- Pin1 (positive clk input) is connected to net
clk1
- Pin2 (negative clk input) is connected to net
clk2
- Pin3 (positive cntl input) is connected to net
In1
- Pin4 (negative cntl input) is connected to net
In2
- Pin5 (positive clr input) is connected to net
GND
- Pin6 (negative clr input) is connected to net
GND
- Pin7 (positive output) is connected to net
Out
- Pin8 (negative output) is connected to net
GND
- Designator is
U1
- cntl_array =
1 2 3 4 5 6 7 8 9 10 11
- Pw_Array =
1u 2u 3u 4u 5u 6u 7u 8u 9u 10u 11u
- Clk_Trig =
0.5
- Out_High =
10
- Out_Low =
0
- Pos_Edge_Trig =
TRUE
- Rise_Delay =
40u
The entry in the SPICE netlist would be:
*Schematic Netlist:
AU1 %vd(CLK1,CLK2) %vd(IN1,IN2) %vd(0,0) %vd(OUT,0) AU1ONESHOT
.MODEL AU1ONESHOT oneshot (cntl_array=[1 2 3 4 5 6 7 8 9 10 11] pw_array=[1u 2u
+ 3u 4u 5u 6u 7u 8u 9u 10u 11u] clk_trig=0.5 pos_edge_trig=TRUE out_low=0
+ out_high=10 rise_delay=40u )
The effect of the function can be seen in the resultant waveforms obtained by running a transient analysis of the circuit.
In this example, the following analysis parameters on the Transient/Fourier Analysis page of the Analyses Setup dialog have been used:
- Transient Start Time - set to
0.000
- Transient Stop Time - set to
100.0u
- Transient Step Time - set to
20.00n
- Transient Max Step Time - set to
20.00n