mirror of
https://github.com/YosysHQ/yosys
synced 2025-07-18 18:36:43 +00:00
Added digital (xspice) example code to examples/cmos/
This commit is contained in:
parent
5547fae4cf
commit
b0ac32bc03
4 changed files with 70 additions and 1 deletions
31
examples/cmos/cmos_cells_digital.sp
Normal file
31
examples/cmos/cmos_cells_digital.sp
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
|
||||||
|
.SUBCKT BUF A Y
|
||||||
|
.model buffer1 d_buffer
|
||||||
|
Abuf A Y buffer1
|
||||||
|
.ENDS NOT
|
||||||
|
|
||||||
|
.SUBCKT NOT A Y
|
||||||
|
.model not1 d_inverter
|
||||||
|
Anot A Y not1
|
||||||
|
.ENDS NOT
|
||||||
|
|
||||||
|
.SUBCKT NAND A B Y
|
||||||
|
.model nand1 d_nand
|
||||||
|
Anand [A B] Y nand1
|
||||||
|
.ENDS NAND
|
||||||
|
|
||||||
|
.SUBCKT NOR A B Y
|
||||||
|
.model nor1 d_nor
|
||||||
|
Anand [A B] Y nor1
|
||||||
|
.ENDS NOR
|
||||||
|
|
||||||
|
.SUBCKT DLATCH E D Q
|
||||||
|
.model latch1 d_latch
|
||||||
|
Alatch D E null null Q nQ latch1
|
||||||
|
.ENDS DLATCH
|
||||||
|
|
||||||
|
.SUBCKT DFF C D Q
|
||||||
|
.model dff1 d_dff
|
||||||
|
Adff D C null null Q nQ dff1
|
||||||
|
.ENDS DFF
|
||||||
|
|
|
@ -5,3 +5,6 @@ set -ex
|
||||||
../../yosys counter.ys
|
../../yosys counter.ys
|
||||||
ngspice testbench.sp
|
ngspice testbench.sp
|
||||||
|
|
||||||
|
# requires ngspice with xspice support enabled:
|
||||||
|
#ngspice testbench_digital.sp
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,8 @@ Vdd Vdd 0 DC 3
|
||||||
.MODEL cmosp PMOS LEVEL=1 VT0=-0.7 KP=50U GAMMA=0.57 LAMBDA=0.05 PHI=0.8
|
.MODEL cmosp PMOS LEVEL=1 VT0=-0.7 KP=50U GAMMA=0.57 LAMBDA=0.05 PHI=0.8
|
||||||
|
|
||||||
* load design and library
|
* load design and library
|
||||||
.include synth.sp
|
|
||||||
.include cmos_cells.sp
|
.include cmos_cells.sp
|
||||||
|
.include synth.sp
|
||||||
|
|
||||||
* input signals
|
* input signals
|
||||||
Vclk clk 0 PULSE(0 3 1 0.1 0.1 0.8 2)
|
Vclk clk 0 PULSE(0 3 1 0.1 0.1 0.8 2)
|
||||||
|
|
35
examples/cmos/testbench_digital.sp
Normal file
35
examples/cmos/testbench_digital.sp
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
|
||||||
|
* supply voltages
|
||||||
|
.global Vss Vdd
|
||||||
|
Vss Vss 0 DC 0
|
||||||
|
Vdd Vdd 0 DC 3
|
||||||
|
|
||||||
|
* simple transistor model
|
||||||
|
.MODEL cmosn NMOS LEVEL=1 VT0=0.7 KP=110U GAMMA=0.4 LAMBDA=0.04 PHI=0.7
|
||||||
|
.MODEL cmosp PMOS LEVEL=1 VT0=-0.7 KP=50U GAMMA=0.57 LAMBDA=0.05 PHI=0.8
|
||||||
|
|
||||||
|
* load design and library
|
||||||
|
.include cmos_cells_digital.sp
|
||||||
|
.include synth.sp
|
||||||
|
|
||||||
|
* input signals
|
||||||
|
Vclk clk 0 PULSE(0 3 1 0.1 0.1 0.8 2)
|
||||||
|
Vrst rst 0 PULSE(0 3 0.5 0.1 0.1 2.9 40)
|
||||||
|
Ven en 0 PULSE(0 3 0.5 0.1 0.1 5.9 8)
|
||||||
|
|
||||||
|
Xuut dclk drst den dout0 dout1 dout2 counter
|
||||||
|
* Bridge to digital
|
||||||
|
.model adc_buff adc_bridge(in_low = 0.8 in_high=2)
|
||||||
|
.model dac_buff dac_bridge(out_high = 3.5)
|
||||||
|
Aad [clk rst en] [dclk drst den] adc_buff
|
||||||
|
Ada [dout0 dout1 dout2] [out0 out1 out2] dac_buff
|
||||||
|
|
||||||
|
|
||||||
|
.tran 0.01 50
|
||||||
|
|
||||||
|
.control
|
||||||
|
run
|
||||||
|
plot v(clk) v(rst)+5 v(en)+10 v(out0)+20 v(out1)+25 v(out2)+30
|
||||||
|
.endc
|
||||||
|
|
||||||
|
.end
|
Loading…
Add table
Add a link
Reference in a new issue