mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +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
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
* load design and library
 | 
			
		||||
.include synth.sp
 | 
			
		||||
.include cmos_cells.sp
 | 
			
		||||
.include synth.sp
 | 
			
		||||
 | 
			
		||||
* input signals
 | 
			
		||||
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