diff options
Diffstat (limited to 'lib/xspice.lps')
-rw-r--r-- | lib/xspice.lps | 591 |
1 files changed, 591 insertions, 0 deletions
diff --git a/lib/xspice.lps b/lib/xspice.lps new file mode 100644 index 0000000..90d60ac --- /dev/null +++ b/lib/xspice.lps @@ -0,0 +1,591 @@ +%! PostScript set of library objects for XCircuit +% Version: 3.9 +% Library name is: xspice +% Author: <tim@stravinsky> +% + + +% XCircuitLib library objects +/xspice::d_dff { +<</@ic (0) /@set_load (1.0e-12) /@reset_load (1.0e-12) /@clk_load (1.0e-12) /@data_load +(1.0e-12) /@reset_delay (1.0e-9) /@set_delay (1.0E-9) /@clk_delay +(1.0E-9) /@fall_delay (1.0e-9\)) /@rise_delay (1.0e-9) /@index (?) >> begingate +1 1.000 -64 64 -96 64 2 polygon +1.000 0.000 0.000 scb +(D) {/Times-Roman cf} 2 23 0.000 0.700 -96 64 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d %pD %%d %pCLK %%d %pS %%d %pC %%d %pQ %%d %pQbar d_dff_) @index +(spice1:A) {/Times-Roman cf} ctmk 20 0.000 0.700 -144 -176 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 0 16 label +sce +0 1.000 -64 -64 -64 96 64 96 64 -64 4 polygon +1 1.000 64 64 96 64 2 polygon +1.000 0.000 0.000 scb +(Q) {/Times-Roman cf} 2 20 0.000 0.700 96 64 pinlabel +(CLK) {/Times-Roman cf} 2 23 0.000 0.700 -96 -32 pinlabel +sce +1 1.000 64 -32 96 -32 2 polygon +1.000 0.000 0.000 scb +(Qbar) {/Times-Roman cf} 2 20 0.000 0.700 96 -32 pinlabel +sce +(D) {/Times-Roman cf} 2 21 0.000 0.700 -48 64 label +1 1.000 -64 -48 -48 -32 -64 -16 3 polygon +(S) {/Times-Roman cf} 2 21 0.000 0.700 0 80 label +(C) {/Times-Roman cf} 2 21 0.000 0.700 0 -48 label +(Q) {/Times-Roman cf} 2 21 0.000 0.700 48 64 label +(Q) {ol} {/Times-Roman cf} 3 21 0.000 0.700 48 -32 label +1.000 0.000 0.000 scb +(C) {/Times-Roman cf} 2 29 0.000 0.700 0 -96 pinlabel +(S) {/Times-Roman cf} 2 17 0.000 0.700 0 128 pinlabel +sce +1 1.000 0 -96 0 -64 2 polygon +1 1.000 0 128 0 96 2 polygon +0.180 0.545 0.341 scb +mark @reset_load ( reset_load=) @set_load ( set_load=) @clk_load ( clk_load=) +@data_load ( data_load=) @ic (spice3:+ ic=) {/Times-Roman cf} ctmk 20 0.000 +0.700 -144 -240 infolabel +mark @fall_delay ( fall_delay=) @rise_delay (spice4:+ rise_delay=) +{/Times-Roman cf} ctmk 20 0.000 0.700 -144 -272 infolabel +mark @reset_delay ( reset_delay=) @set_delay ( set_delay=) @clk_delay +( d_dff\(clk_delay=) @index (spice2:.model d_dff_) {/Times-Roman cf} ctmk 20 +0.000 0.700 -144 -208 infolabel +sce +1 1.000 -96 -32 -64 -32 2 polygon +endgate +} def + +/xspice::adc_bridge { +<</@in_high (2.0) /@in_low (1.0) /@index (?) /@rise_delay (1.0e-9) /@fall_delay +(1.0e-9) >> begingate +1 1.000 48 0 80 0 2 polygon +1 1.000 -48 0 -80 0 2 polygon +1.000 0.000 0.000 scb +(A) {/Times-Roman cf} 2 23 0.000 0.700 -80 0 pinlabel +(D) {/Times-Roman cf} 2 20 0.000 0.700 80 0 pinlabel +0.180 0.545 0.341 scb +mark @index ( [%p"A"] %%d [%p"D"] adc_bridge_) @index (spice1:A) {/Times-Roman cf} +ctmk 20 0.000 0.700 -112 -64 infolabel +mark (\)) @fall_delay ( fall_delay=) @rise_delay ( rise_delay=) @in_high +( in_high=) @in_low ( adc_bridge\(in_low=) @index (spice2:.model adc_bridge_) +{/Times-Roman cf} ctmk 20 0.000 0.700 -112 -96 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 0 0 label +sce +1 1.000 -48 0 -32 -16 32 -16 48 0 32 16 -32 16 -48 0 7 polygon +endgate +} def + +/xspice::dac_bridge { +<</@t_fall (1.0E-9) /@t_rise (1.0E-9) /@input_load (1.0E-12) /@out_undef (0.5) /@out_high +(1.0) /@out_low (0.0) /@index (?) >> begingate +1 1.000 48 0 80 0 2 polygon +1 1.000 -48 0 -80 0 2 polygon +1.000 0.000 0.000 scb +(D) {/Times-Roman cf} 2 23 0.000 0.700 -80 0 pinlabel +(A) {/Times-Roman cf} 2 20 0.000 0.700 80 0 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d [%p"D"] [%p"A"] dac_bridge_) @index (spice1:A) {/Times-Roman cf} +ctmk 20 0.000 0.700 -112 -64 infolabel +mark @out_high ( out_high=) @out_low ( dac_bridge\(out_low=) @index +(spice2:.model dac_bridge_) {/Times-Roman cf} ctmk 20 0.000 0.700 -112 -96 +infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 0 0 label +sce +1 1.000 -48 0 -32 -16 32 -16 48 0 32 16 -32 16 -48 0 7 polygon +0.180 0.545 0.341 scb +mark (\)) @t_fall ( t_fall=) @t_rise ( t_rise=) @input_load ( input_load=) +@out_undef (spice3:+ out_undef=) {/Times-Roman cf} ctmk 20 0.000 0.700 -112 +-128 infolabel +endgate +} def + +/xspice::d_buffer { +<</@input_load (1.0e-12) /@fall_delay (1.0e-9) /@rise_delay (1.0e-9) /@index (?) >> +begingate +1 1.000 48 0 80 0 2 polygon +1 1.000 -48 0 -80 0 2 polygon +1.000 0.000 0.000 scb +(A) {/Times-Roman cf} 2 23 0.000 0.700 -80 0 pinlabel +(X) {/Times-Roman cf} 2 20 0.000 0.700 80 0 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d %pA %%d %pX d_buffer_) @index (spice1:A) {/Times-Roman cf} ctmk +20 0.000 0.700 -112 -128 infolabel +mark (\)) @input_load ( input_load=) @fall_delay ( fall_delay=) @rise_delay +( d_buffer\(rise_delay=) @index (spice2:.model d_buffer_) {/Times-Roman cf} ctmk +20 0.000 0.700 -112 -160 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 -16 0 label +sce +1 1.000 48 0 -48 48 -48 -48 48 0 4 polygon +endgate +} def + +/xspice::d_inverter { +<</@input_load (1.0e-12) /@index (?) /@rise_delay (1.0e-9) /@fall_delay (1.0e-9) >> +begingate +1 1.000 64 0 80 0 2 polygon +1 1.000 -48 0 -80 0 2 polygon +1.000 0.000 0.000 scb +(A) {/Times-Roman cf} 2 23 0.000 0.700 -80 0 pinlabel +(X) {/Times-Roman cf} 2 20 0.000 0.700 80 0 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d %pin %%d %pout d_inverter_) @index (spice1:A) {/Times-Roman cf} +ctmk 20 0.000 0.700 -112 -128 infolabel +mark (\)) @input_load ( input_load=) @fall_delay ( fall_delay=) @rise_delay +( d_inverter\(rise_delay=) @index (spice2:.model d_inverter_) {/Times-Roman cf} +ctmk 20 0.000 0.700 -112 -160 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 -16 0 label +sce +1 1.000 56 0 8 0.000 360.000 xcarc +1 1.000 48 0 -48 48 -48 -48 48 0 4 polygon +endgate +} def + +/xspice::d_and2 { +<</@index (?) /@rise_delay (1.0e-9) /@fall_delay (1.0e-9) /@input_load (1.0e-12) >> +begingate +1 1.000 64 0 96 0 2 polygon +1 1.000 -48 32 -80 32 2 polygon +1.000 0.000 0.000 scb +(A) {/Times-Roman cf} 2 23 0.000 0.700 -80 32 pinlabel +(X) {/Times-Roman cf} 2 20 0.000 0.700 96 0 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d [%pA %pB] %%d %pX d_and2_) @index (spice1:A) {/Times-Roman cf} +ctmk 20 0.000 0.700 -112 -128 infolabel +mark (\)) @input_load ( input_load=) @fall_delay ( fall_delay=) @rise_delay +( d_and\(rise_delay=) @index (spice2:.model d_and2_) {/Times-Roman cf} ctmk 20 +0.000 0.700 -112 -160 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 0 0 label +sce +1 1.000 -48 -48 -48 48 2 polygon +1 1.000 -48 48 16 48 2 polygon +1 1.000 -48 -48 16 -48 2 polygon +1 1.000 16 0 48 270.000 450.000 xcarc +1 1.000 -48 -32 -80 -32 2 polygon +1.000 0.000 0.000 scb +(B) {/Times-Roman cf} 2 23 0.000 0.700 -80 -32 pinlabel +endgate +} def + +/xspice::d_nand2 { +<</@input_load (1.0e-12) /@fall_delay (1.0e-9) /@rise_delay (1.0e-9) /@index (?) >> +begingate +1 1.000 80 0 96 0 2 polygon +1 1.000 -48 32 -80 32 2 polygon +1.000 0.000 0.000 scb +(A) {/Times-Roman cf} 2 23 0.000 0.700 -80 32 pinlabel +(X) {/Times-Roman cf} 2 20 0.000 0.700 96 0 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d [%pA %pB] %%d %pX d_nand2_) @index (spice1:A) {/Times-Roman cf} +ctmk 20 0.000 0.700 -112 -128 infolabel +mark (\)) @input_load ( input_load=) @fall_delay ( fall_delay=) @rise_delay +( d_nand\(rise_delay=) @index (spice2:.model d_nand2_) {/Times-Roman cf} ctmk 20 +0.000 0.700 -112 -160 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 0 0 label +sce +1 1.000 -48 -48 -48 48 2 polygon +1 1.000 -48 48 16 48 2 polygon +1 1.000 -48 -48 16 -48 2 polygon +1 1.000 16 0 48 270.000 450.000 xcarc +1 1.000 -48 -32 -80 -32 2 polygon +1.000 0.000 0.000 scb +(B) {/Times-Roman cf} 2 23 0.000 0.700 -80 -32 pinlabel +sce +1 1.000 72 0 8 0.000 360.000 xcarc +endgate +} def + +/xspice::d_or2 { +<</@input_load (1.0e-12) /@fall_delay (1.0e-9) /@rise_delay (1.0e-9) /@index (?) >> +begingate +1 1.000 64 0 96 0 2 polygon +1 1.000 -40 32 -80 32 2 polygon +1.000 0.000 0.000 scb +(A) {/Times-Roman cf} 2 23 0.000 0.700 -80 32 pinlabel +(X) {/Times-Roman cf} 2 20 0.000 0.700 96 0 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d [%pA %pB] %%d %pX d_or2_) @index (spice1:A) {/Times-Roman cf} +ctmk 20 0.000 0.700 -112 -128 infolabel +mark (\)) @input_load ( input_load=) @fall_delay ( fall_delay=) @rise_delay +( d_or\(rise_delay=) @index (spice2:.model d_or2_) {/Times-Roman cf} ctmk 20 +0.000 0.700 -112 -160 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 0 0 label +sce +1 1.000 -48 48 -16 48 2 polygon +1 1.000 -40 -32 -80 -32 2 polygon +1.000 0.000 0.000 scb +(B) {/Times-Roman cf} 2 23 0.000 0.700 -80 -32 pinlabel +sce +1 1.000 -32 32 -32 -32 -48 -48 -48 48 spline +1 1.000 56 24 16 48 -16 48 64 0 spline +1 1.000 56 -24 16 -48 -16 -48 64 0 spline +1 1.000 -48 -48 -16 -48 2 polygon +endgate +} def + +/xspice::d_nor2 { +<</@index (?) /@rise_delay (1.0e-9) /@fall_delay (1.0e-9) /@input_load (1.0e-12) >> +begingate +1 1.000 80 0 96 0 2 polygon +1 1.000 -40 32 -80 32 2 polygon +1.000 0.000 0.000 scb +(A) {/Times-Roman cf} 2 23 0.000 0.700 -80 32 pinlabel +(X) {/Times-Roman cf} 2 20 0.000 0.700 96 0 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d [%pA %pB] %%d %pX d_nor2_) @index (spice1:A) {/Times-Roman cf} +ctmk 20 0.000 0.700 -112 -128 infolabel +mark (\)) @input_load ( input_load=) @fall_delay ( fall_delay=) @rise_delay +( d_nor\(rise_delay=) @index (spice2:.model d_nor2_) {/Times-Roman cf} ctmk 20 +0.000 0.700 -112 -160 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 0 0 label +sce +1 1.000 -48 48 -16 48 2 polygon +1 1.000 -40 -32 -80 -32 2 polygon +1.000 0.000 0.000 scb +(B) {/Times-Roman cf} 2 23 0.000 0.700 -80 -32 pinlabel +sce +1 1.000 -32 32 -32 -32 -48 -48 -48 48 spline +1 1.000 56 24 16 48 -16 48 64 0 spline +1 1.000 56 -24 16 -48 -16 -48 64 0 spline +1 1.000 -48 -48 -16 -48 2 polygon +1 1.000 72 0 8 0.000 360.000 xcarc +endgate +} def + +/xspice::d_xor2 { +<</@index (?) /@rise_delay (1.0e-9) /@fall_delay (1.0e-9) /@input_load (1.0e-12) >> +begingate +1 1.000 64 0 96 0 2 polygon +1 1.000 -48 32 -80 32 2 polygon +1.000 0.000 0.000 scb +(A) {/Times-Roman cf} 2 23 0.000 0.700 -80 32 pinlabel +(X) {/Times-Roman cf} 2 20 0.000 0.700 96 0 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d [%pA %pB] %%d %pX d_xor2_) @index (spice1:A) {/Times-Roman cf} +ctmk 20 0.000 0.700 -112 -128 infolabel +mark (\)) @input_load ( input_load=) @fall_delay ( fall_delay=) @rise_delay +( d_xor\(rise_delay=) @index (spice2:.model d_xor2_) {/Times-Roman cf} ctmk 20 +0.000 0.700 -112 -160 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 0 0 label +sce +1 1.000 -44 48 -16 48 2 polygon +1 1.000 -48 -32 -80 -32 2 polygon +1.000 0.000 0.000 scb +(B) {/Times-Roman cf} 2 23 0.000 0.700 -80 -32 pinlabel +sce +1 1.000 -28 32 -28 -32 -44 -48 -44 48 spline +1 1.000 56 24 16 48 -16 48 64 0 spline +1 1.000 56 -24 16 -48 -16 -48 64 0 spline +1 1.000 -44 -48 -16 -48 2 polygon +1 1.000 -40 32 -40 -32 -56 -48 -56 48 spline +endgate +} def + +/xspice::d_xnor2 { +<</@input_load (1.0e-12) /@fall_delay (1.0e-9) /@rise_delay (1.0e-9) /@index (?) >> +begingate +1 1.000 80 0 96 0 2 polygon +1 1.000 -48 32 -80 32 2 polygon +1.000 0.000 0.000 scb +(A) {/Times-Roman cf} 2 23 0.000 0.700 -80 32 pinlabel +(X) {/Times-Roman cf} 2 20 0.000 0.700 96 0 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d [%pA %pB] %%d %pX d_xnor2_) @index (spice1:A) {/Times-Roman cf} +ctmk 20 0.000 0.700 -112 -128 infolabel +mark (\)) @input_load ( input_load=) @fall_delay ( fall_delay=) @rise_delay +( d_xnor\(rise_delay=) @index (spice2:.model d_xnor2_) {/Times-Roman cf} ctmk 20 +0.000 0.700 -112 -160 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 0 0 label +sce +1 1.000 -44 48 -16 48 2 polygon +1 1.000 -48 -32 -80 -32 2 polygon +1.000 0.000 0.000 scb +(B) {/Times-Roman cf} 2 23 0.000 0.700 -80 -32 pinlabel +sce +1 1.000 -28 32 -28 -32 -44 -48 -44 48 spline +1 1.000 56 24 16 48 -16 48 64 0 spline +1 1.000 56 -24 16 -48 -16 -48 64 0 spline +1 1.000 -44 -48 -16 -48 2 polygon +1 1.000 -40 32 -40 -32 -56 -48 -56 48 spline +1 1.000 72 0 8 0.000 360.000 xcarc +endgate +} def + +/xspice::d_tristate { +<</@enable_load (1.0E-12) /@delay (1.0E-9) /@index (?) /@input_load (1.0e-12) >> begingate +1 1.000 48 0 80 0 2 polygon +1 1.000 -48 0 -80 0 2 polygon +1.000 0.000 0.000 scb +(A) {/Times-Roman cf} 2 23 0.000 0.700 -80 0 pinlabel +(X) {/Times-Roman cf} 2 20 0.000 0.700 80 0 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d %pA %%d %pEN %%d %pX d_tristate_) @index (spice1:A) +{/Times-Roman cf} ctmk 20 0.000 0.700 -112 -128 infolabel +mark (\)) @enable_load ( enable_load=) @input_load ( input_load=) @delay +( d_tristate\(delay=) @index (spice2:.model d_tristate_) {/Times-Roman cf} ctmk +20 0.000 0.700 -112 -160 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 -16 0 label +sce +1 1.000 48 0 -48 48 -48 -48 48 0 4 polygon +1 1.000 0 -24 0 -48 2 polygon +1.000 0.000 0.000 scb +(EN) {/Times-Roman cf} 2 29 0.000 0.700 0 -48 pinlabel +endgate +} def + +/xspice::d_pullup { +<</@load (1.0e-12) /@index (?) >> begingate +1.000 0.000 0.000 scb +(X) {/Times-Roman cf} 2 29 0.000 0.700 32 0 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d %pA %%d %pX d_pullup_) @index (spice1:A) {/Times-Roman cf} ctmk +20 0.000 0.700 -120 -40 infolabel +mark (\)) @load ( d_pullup\(load=) @index (spice2:.model d_pullup_) +{/Times-Roman cf} ctmk 20 0.000 0.700 -120 -72 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 20 0.000 0.700 64 64 label +sce +1 1.000 32 128 32 100 2 polygon +1 1.000 32 0 32 28 2 polygon +1 1.000 32 28 46 34 18 46 46 58 18 70 46 82 18 94 32 100 8 polygon +1 1.000 0 128 64 128 2 polygon +(Vdd) {/Times-Roman cf} 2 17 0.000 0.700 32 136 label +endgate +} def + +/xspice::d_pulldown { +<</@index (?) /@load (1.0e-12) >> begingate +1.000 0.000 0.000 scb +(X) {/Times-Roman cf} 2 17 0.000 0.700 32 160 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d %pA %%d %pX d_pulldown_) @index (spice1:A) {/Times-Roman cf} ctmk +20 0.000 0.700 -224 -32 infolabel +mark (\)) @load ( d_pulldown\(load=) @index (spice2:.model d_pulldown_) +{/Times-Roman cf} ctmk 20 0.000 0.700 -224 -64 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 20 0.000 0.700 64 96 label +sce +1 1.000 32 160 32 132 2 polygon +1 1.000 32 32 32 60 2 polygon +1 1.000 32 60 46 66 18 78 46 90 18 102 46 114 18 126 32 132 8 polygon +1 1.000 0 32 64 32 2 polygon +1 1.000 12 20 52 20 2 polygon +1 1.000 24 8 40 8 2 polygon +endgate +} def + +/xspice::d_latch { +<</@fall_delay (1.0e-9) /@rise_delay (1.0e-9) /@enable_load (1.0e-12) /@enable_delay +(1.0e-9) /@data_delay (1.0e-9) /@index (?) /@set_delay (1.0E-9) /@reset_delay +(1.0e-9) /@data_load (1.0e-12) /@reset_load (1.0e-12) /@set_load +(1.0e-12) /@ic (0) >> begingate +1 1.000 -64 64 -96 64 2 polygon +1.000 0.000 0.000 scb +(D) {/Times-Roman cf} 2 23 0.000 0.700 -96 64 pinlabel +0.180 0.545 0.341 scb +mark @index ( %%d %pD %%d %pEN %%d %pS %%d %pC %%d %pQ %%d %pQbar d_latch_) @index +(spice1:A) {/Times-Roman cf} ctmk 20 0.000 0.700 -144 -176 infolabel +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 0 16 label +sce +0 1.000 -64 -64 -64 96 64 96 64 -64 4 polygon +1 1.000 64 64 96 64 2 polygon +1.000 0.000 0.000 scb +(Q) {/Times-Roman cf} 2 20 0.000 0.700 96 64 pinlabel +(EN) {/Times-Roman cf} 2 23 0.000 0.700 -96 -32 pinlabel +sce +1 1.000 64 -32 96 -32 2 polygon +1.000 0.000 0.000 scb +(Qbar) {/Times-Roman cf} 2 20 0.000 0.700 96 -32 pinlabel +sce +(D) {/Times-Roman cf} 2 21 0.000 0.700 -48 64 label +(S) {/Times-Roman cf} 2 21 0.000 0.700 0 80 label +(C) {/Times-Roman cf} 2 21 0.000 0.700 0 -48 label +(Q) {/Times-Roman cf} 2 21 0.000 0.700 48 64 label +(Q) {ol} {/Times-Roman cf} 3 21 0.000 0.700 48 -32 label +1.000 0.000 0.000 scb +(C) {/Times-Roman cf} 2 29 0.000 0.700 0 -96 pinlabel +(S) {/Times-Roman cf} 2 17 0.000 0.700 0 128 pinlabel +sce +1 1.000 0 -96 0 -64 2 polygon +1 1.000 0 128 0 96 2 polygon +0.180 0.545 0.341 scb +mark @reset_load ( reset_load=) @set_load ( set_load=) @enable_load +( enable_load=) @data_load ( data_load=) @ic (spice3:+ ic=) {/Times-Roman cf} +ctmk 20 0.000 0.700 -144 -240 infolabel +mark (\)) @fall_delay ( fall_delay=) @rise_delay (spice4:+ rise_delay=) +{/Times-Roman cf} ctmk 20 0.000 0.700 -144 -272 infolabel +mark @reset_delay ( reset_delay=) @set_delay ( set_delay=) @enable_delay +( d_latch\(enable_delay=) @index (spice2:.model d_latch_) {/Times-Roman cf} ctmk +20 0.000 0.700 -144 -208 infolabel +sce +1 1.000 -96 -32 -64 -32 2 polygon +(EN) {/Times-Roman cf} 2 20 0.000 0.700 -56 -32 label +endgate +} def + +/xspice::d_ram_8x1k { +<</@address_load (1.0e-12) /@select_load (1.0E-12) /@read_delay (100.0E-9) /@select_value +(1) /@ic (0) /@data_load (1.0e-12) /@index (?) /@enable_load +(1.0e-12) >> begingate +0.000 0.000 1.000 scb +mark @index (A) {/Times-Roman cf} ctmk 21 0.000 0.700 224 96 label +sce +0 1.000 -64 -64 -64 224 544 224 544 -64 4 polygon +1.000 0.000 0.000 scb +(D7) {/Times-Roman cf} 2 23 0.000 0.700 -96 -32 pinlabel +sce +1 1.000 -96 -32 -64 -32 2 polygon +(D7) {/Times-Roman cf} 2 20 0.000 0.700 -56 -32 label +1.000 0.000 0.000 scb +(D6) {/Times-Roman cf} 2 23 0.000 0.700 -96 0 pinlabel +sce +1 1.000 -96 0 -64 0 2 polygon +(D6) {/Times-Roman cf} 2 20 0.000 0.700 -56 0 label +1.000 0.000 0.000 scb +(D5) {/Times-Roman cf} 2 23 0.000 0.700 -96 32 pinlabel +sce +1 1.000 -96 32 -64 32 2 polygon +(D5) {/Times-Roman cf} 2 20 0.000 0.700 -56 32 label +1.000 0.000 0.000 scb +(D4) {/Times-Roman cf} 2 23 0.000 0.700 -96 64 pinlabel +sce +1 1.000 -96 64 -64 64 2 polygon +(D4) {/Times-Roman cf} 2 20 0.000 0.700 -56 64 label +1.000 0.000 0.000 scb +(D3) {/Times-Roman cf} 2 23 0.000 0.700 -96 96 pinlabel +sce +1 1.000 -96 96 -64 96 2 polygon +(D3) {/Times-Roman cf} 2 20 0.000 0.700 -56 96 label +1.000 0.000 0.000 scb +(D2) {/Times-Roman cf} 2 23 0.000 0.700 -96 128 pinlabel +sce +1 1.000 -96 128 -64 128 2 polygon +(D2) {/Times-Roman cf} 2 20 0.000 0.700 -56 128 label +1.000 0.000 0.000 scb +(D1) {/Times-Roman cf} 2 23 0.000 0.700 -96 160 pinlabel +sce +1 1.000 -96 160 -64 160 2 polygon +(D1) {/Times-Roman cf} 2 20 0.000 0.700 -56 160 label +1.000 0.000 0.000 scb +(D0) {/Times-Roman cf} 2 23 0.000 0.700 -96 192 pinlabel +sce +1 1.000 -96 192 -64 192 2 polygon +(D0) {/Times-Roman cf} 2 20 0.000 0.700 -56 192 label +1.000 0.000 0.000 scb +(Q7) {/Times-Roman cf} 2 20 0.000 0.700 576 -32 pinlabel +sce +1 1.000 576 -32 544 -32 2 polygon +(Q7) {/Times-Roman cf} 2 23 0.000 0.700 536 -32 label +1.000 0.000 0.000 scb +(Q6) {/Times-Roman cf} 2 20 0.000 0.700 576 0 pinlabel +sce +1 1.000 576 0 544 0 2 polygon +(Q6) {/Times-Roman cf} 2 23 0.000 0.700 536 0 label +1.000 0.000 0.000 scb +(Q5) {/Times-Roman cf} 2 20 0.000 0.700 576 32 pinlabel +sce +1 1.000 576 32 544 32 2 polygon +(Q5) {/Times-Roman cf} 2 23 0.000 0.700 536 32 label +1.000 0.000 0.000 scb +(Q4) {/Times-Roman cf} 2 20 0.000 0.700 576 64 pinlabel +sce +1 1.000 576 64 544 64 2 polygon +(Q4) {/Times-Roman cf} 2 23 0.000 0.700 536 64 label +1.000 0.000 0.000 scb +(Q3) {/Times-Roman cf} 2 20 0.000 0.700 576 96 pinlabel +sce +1 1.000 576 96 544 96 2 polygon +(Q3) {/Times-Roman cf} 2 23 0.000 0.700 536 96 label +1.000 0.000 0.000 scb +(Q2) {/Times-Roman cf} 2 20 0.000 0.700 576 128 pinlabel +sce +1 1.000 576 128 544 128 2 polygon +(Q2) {/Times-Roman cf} 2 23 0.000 0.700 536 128 label +1.000 0.000 0.000 scb +(Q1) {/Times-Roman cf} 2 20 0.000 0.700 576 160 pinlabel +sce +1 1.000 576 160 544 160 2 polygon +(Q1) {/Times-Roman cf} 2 23 0.000 0.700 536 160 label +1.000 0.000 0.000 scb +(Q0) {/Times-Roman cf} 2 20 0.000 0.700 576 192 pinlabel +sce +1 1.000 576 192 544 192 2 polygon +(Q0) {/Times-Roman cf} 2 23 0.000 0.700 536 192 label +1 1.000 368 -64 368 -96 2 polygon +1 1.000 416 -64 416 -96 2 polygon +1 1.000 464 -64 464 -96 2 polygon +1.000 0.000 0.000 scb +(A2) {/Times-Roman cf} 2 29 0.000 0.700 368 -96 pinlabel +(A1) {/Times-Roman cf} 2 29 0.000 0.700 416 -96 pinlabel +(A0) {/Times-Roman cf} 2 29 0.000 0.700 464 -96 pinlabel +sce +1 1.000 320 -64 320 -96 2 polygon +1.000 0.000 0.000 scb +(A3) {/Times-Roman cf} 2 29 0.000 0.700 320 -96 pinlabel +sce +1 1.000 272 -64 272 -96 2 polygon +1.000 0.000 0.000 scb +(A4) {/Times-Roman cf} 2 29 0.000 0.700 272 -96 pinlabel +sce +1 1.000 224 -64 224 -96 2 polygon +1.000 0.000 0.000 scb +(A5) {/Times-Roman cf} 2 29 0.000 0.700 224 -96 pinlabel +sce +1 1.000 176 -64 176 -96 2 polygon +1.000 0.000 0.000 scb +(A6) {/Times-Roman cf} 2 29 0.000 0.700 176 -96 pinlabel +sce +1 1.000 128 -64 128 -96 2 polygon +1.000 0.000 0.000 scb +(A7) {/Times-Roman cf} 2 29 0.000 0.700 128 -96 pinlabel +sce +1 1.000 80 -64 80 -96 2 polygon +1.000 0.000 0.000 scb +(A8) {/Times-Roman cf} 2 29 0.000 0.700 80 -96 pinlabel +sce +1 1.000 32 -64 32 -96 2 polygon +1.000 0.000 0.000 scb +(A9) {/Times-Roman cf} 2 29 0.000 0.700 32 -96 pinlabel +sce +(A9) {/Times-Roman cf} 2 17 0.000 0.700 32 -48 label +(A8) {/Times-Roman cf} 2 17 0.000 0.700 80 -48 label +(A7) {/Times-Roman cf} 2 17 0.000 0.700 128 -48 label +(A6) {/Times-Roman cf} 2 17 0.000 0.700 176 -48 label +(A5) {/Times-Roman cf} 2 17 0.000 0.700 224 -48 label +(A4) {/Times-Roman cf} 2 17 0.000 0.700 272 -48 label +(A3) {/Times-Roman cf} 2 17 0.000 0.700 320 -48 label +(A2) {/Times-Roman cf} 2 17 0.000 0.700 368 -48 label +(A1) {/Times-Roman cf} 2 17 0.000 0.700 416 -48 label +(A0) {/Times-Roman cf} 2 17 0.000 0.700 464 -48 label +(SRAM 1k x 8) {/Times-Roman cf} 2 21 0.000 0.700 224 48 label +0.180 0.545 0.341 scb +mark ( %%d [ %pD7 %pD6 %pD5 %pD4 %pD3 %pD2 %pD1 %pD0 ]) @index (spice1:A) +{/Times-Roman cf} ctmk 20 0.000 0.700 -144 -192 infolabel +(spice2:+ %%d [ %pQ7 %pQ6 %pQ5 %pQ4 %pQ3 %pQ2 %pQ1 %pQ0 ]) {/Times-Roman cf} 2 +20 0.000 0.700 -144 -224 infolabel +(spice3:+ %%d [ %pA9 %pA8 %pA7 %pA6 %pA5 %pA4 %pA3 %pA2 %pA1 %pA0 ]) +{/Times-Roman cf} 2 20 0.000 0.700 -144 -256 infolabel +mark @index (spice4:+ d_ram_8x1k) {/Times-Roman cf} ctmk 20 0.000 0.700 -144 -288 +infolabel +mark @read_delay ( read_delay=) @ic ( ic=) @select_value +( d_ram\(select_value=) @index (spice5:.model d_ram_8x1k) {/Times-Roman cf} ctmk +20 0.000 0.700 -144 -320 infolabel +mark (\)) @enable_load ( enable_load=) @select_load ( select_load=) +@address_load ( address_load=) @data_load (spice6:+ data_load=) +{/Times-Roman cf} ctmk 20 0.000 0.700 -144 -352 infolabel +endgate +} def + + +% EndLib |