Sign board (previous commit), changing from discrete resistors to network changes...
[trinary.git] / bb / main.net
blob66ca71311b3c4b9ada76fc8a4cecbc5f678950d4
1 * Z:\trinary\code\circuits\main.asc\r
2 XX2 $G_Vdd $G_Vss tpower\r
3 XCYCLE_PC PC PC_PLUS_1 tcycle_up\r
4 XMUX_PC PC_PLUS_1 0 0 CTRL_PC NEXT_ADDR mux3-1\r
5 V1 CTRL_PC 0 PWL(0 0 5u 0 5.1u -5)\r
6 XX3 I0_opcode IS_CMP IS_LWI IS_BE decoder1-3\r
7 XREGISTER_A I2 CLK_A A2 I1 A1 A0 0 trit_reg3\r
8 XDO_LWI IS_LWI EXECUTE CLK_A min\r
9 XMUX_ALU_A $G_Vdd 0 $G_Vss 0 0 0 A0_BUF A1_BUF A2_BUF I1 ALU_IN_A2 ALU_IN_A1 ALU_IN_A0 mux9-3\r
10 XMUX_ALU_B $G_Vdd 0 $G_Vss 0 0 0 A0_BUF A1_BUF A2_BUF I2 ALU_IN_B2 ALU_IN_B1 ALU_IN_B0 mux9-3\r
11 XDO_CMP IS_CMP EXECUTE CLK_STATUS min\r
12 XXalu ALU_IN_A0 ALU_IN_A1 ALU_IN_A2 ALU_IN_B0 ALU_IN_B1 ALU_IN_B2 S_IN alu\r
13 Xcg FETCH EXECUTE clock_gen\r
14 XX1 PC I0_opcode I1 I2 swrom-cmptest\r
15 XPROGRAM_COUNTER NEXT_ADDR FETCH PC NC_01 dtflop-ms2\r
16 XSTATUS_REG S_IN CLK_STATUS S NC_02 dtflop-ms2\r
17 XBUF_A1 A1 A1_BUF tbuf\r
18 XBUF_A0 A0 A0_BUF tbuf\r
19 XBUF_A2 A2 A2_BUF tbuf\r
21 * block symbol definitions\r
22 .subckt tpower Vdd Vss\r
23 Vdd Vdd 0 5V\r
24 Vss 0 Vss 5V\r
25 .ends tpower\r
27 .subckt tcycle_up IN OUT\r
28 XXnti _IN _IN_NTI nti\r
29 XXpti _IN _IN_PTI pti\r
30 XXsti IN _IN sti\r
31 XXtnor1 _IN_NTI INI OUT tnor\r
32 XXtnor0 _IN_PTI 0 INI tnor\r
33 .ends tcycle_up\r
35 .subckt mux3-1 A B C S Q\r
36 XXtgA A Q CTRL_A tg\r
37 XXtgC C Q CTRL_C tg\r
38 XXtgB B Q CTRL_B tg\r
39 XXdecoder S CTRL_A CTRL_B CTRL_C decoder1-3\r
40 .ends mux3-1\r
42 .subckt decoder1-3 IN OUT_i OUT_0 OUT_1\r
43 XX1pti IN IN_pti pti\r
44 XX1sti IN_pti OUT_1 sti\r
45 XXinti IN OUT_i nti\r
46 XX0nor OUT_1 OUT_i OUT_0 tnor\r
47 .ends decoder1-3\r
49 .subckt trit_reg3 D2 CLK Q2 D1 Q1 Q0 D0\r
50 XXtrit0 D0 CLK Q0 NC_01 dtflop-ms2\r
51 XXtrit1 D1 CLK Q1 NC_02 dtflop-ms2\r
52 XXtrit2 D2 CLK Q2 NC_03 dtflop-ms2\r
53 .ends trit_reg3\r
55 .subckt min A B MIN_OUT\r
56 XXsti_tand AtnandB MIN_OUT sti\r
57 XXtnand A B AtnandB tnand\r
58 .ends min\r
60 .subckt mux9-3 IiA IiB IiC I0A I0B I0C I1A I1B I1C S QC QB QA\r
61 XXmux1 IiA I0A I1A S QA mux3-1\r
62 XXmux2 IiB I0B I1B S QB mux3-1\r
63 XXmux3 IiC I0C I1C S QC mux3-1\r
64 .ends mux9-3\r
66 .subckt alu A0 A1 A2 B0 B1 B2 S\r
67 XXfa0 A0 C1 S0 N001 0 full_adder\r
68 XXfa1 A1 C2 S1 N002 C1 full_adder\r
69 XXfa2 A2 S2 C3 N003 C2 full_adder\r
70 XX1 S0 S1 S2 S B3 tsign4\r
71 XXnegB0 B0 N001 sti\r
72 XXnegB1 B1 N002 sti\r
73 XXnegB2 B2 N003 sti\r
74 XXnegCarry C3 B3 sti\r
75 .ends alu\r
77 .subckt clock_gen FETCH EXECUTE\r
78 V§CLK_F1 FETCH 0 PULSE(-5 5 3u 1n 1n 30u 60u)\r
79 V§CLK_X1 EXECUTE 0 PULSE(-5 5 10u 1n 1n 30u 60u)\r
80 .ends clock_gen\r
82 .subckt swrom-cmptest ADDRESS D0 D1 D2\r
83 XX1 $G_Vss $G_Vdd $G_Vss 0 $G_Vss 0 $G_Vss $G_Vss $G_Vdd ADDRESS D2 D1 D0 mux9-3\r
84 .ends swrom-cmptest\r
86 .subckt dtflop-ms2 D CLK Q _Q\r
87 XMaster D _CLK between NC_01 dtflop\r
88 XSlave between CLK Q _Q dtflop\r
89 XXstiCLK CLK _CLK sti\r
90 .ends dtflop-ms2\r
92 .subckt tbuf IN OUT\r
93 XXinv1 IN _IN sti\r
94 XXinv2 _IN OUT sti\r
95 .ends tbuf\r
97 .subckt nti IN OUT\r
98 Xinv IN NC_01 NC_02 OUT tinv\r
99 .ends nti\r
101 .subckt pti IN OUT\r
102 Xinv IN OUT NC_01 NC_02 tinv\r
103 .ends pti\r
105 .subckt sti IN OUT\r
106 XXinv IN NC_01 OUT NC_02 tinv\r
107 .ends sti\r
109 .subckt tnor A B TNOR_Out\r
110 RP NP TNOR_Out 12k\r
111 RN TNOR_Out NN 12k\r
112 MN1 NN A $G_Vss $G_Vss CD4007N\r
113 MP2 NI A $G_Vdd $G_Vdd CD4007P\r
114 MN2 NN B $G_Vss $G_Vss CD4007N\r
115 MP1 NI B NP $G_Vdd CD4007P\r
116 .ends tnor\r
118 .subckt tg IN_OUT OUT_IN CONTROL\r
119 M1 OUT_IN _C IN_OUT $G_Vdd CD4007P\r
120 M2 IN_OUT C OUT_IN $G_Vss CD4007N\r
121 M3 $G_Vdd CONTROL _C $G_Vdd CD4007P\r
122 M4 _C CONTROL $G_Vss $G_Vss CD4007N\r
123 M5 $G_Vdd _C C $G_Vdd CD4007P\r
124 M6 C _C $G_Vss $G_Vss CD4007N\r
125 .ends tg\r
127 .subckt tnand A B TNAND_Out\r
128 RP NP TNAND_Out 12k\r
129 RN TNAND_Out NN 12k\r
130 MP1 NP B $G_Vdd $G_Vdd CD4007P\r
131 MP2 NP A $G_Vdd $G_Vdd CD4007P\r
132 MN2 NI B $G_Vss $G_Vss CD4007N\r
133 MN1 NN A NI $G_Vss CD4007N\r
134 .ends tnand\r
136 .subckt full_adder X CO S Y CI\r
137 XXdecodeX X CTRL_XC CTRL_XB CTRL_XA decoder1-3\r
138 XXtgA1 $G_Vss A1 CTRL_XA tg\r
139 XXtgC1 0 A1 CTRL_XC tg\r
140 XXtgB1 $G_Vdd A1 CTRL_XB tg\r
141 XXtgA2 0 A2 CTRL_XA tg\r
142 XXtgC2 $G_Vdd A2 CTRL_XC tg\r
143 XXtgB2 $G_Vss A2 CTRL_XB tg\r
144 XXtgA3 0 A3 CTRL_XA tg\r
145 XXtgC3 $G_Vss A3 CTRL_XC tg\r
146 XXtgB3 $G_Vss A3 CTRL_XB tg\r
147 XXtgA4 0 A4 CTRL_XA tg\r
148 XXtgC4 $G_Vss A4 CTRL_XC tg\r
149 XXtgB4 0 A4 CTRL_XB tg\r
150 XXtgA5 $G_Vdd A5 CTRL_XA tg\r
151 XXtgC5 0 A5 CTRL_XC tg\r
152 XXtgB5 0 A5 CTRL_XB tg\r
153 XXtgA6 $G_Vdd A6 CTRL_XA tg\r
154 XXtgC6 0 A6 CTRL_XC tg\r
155 XXtgB6 $G_Vdd A6 CTRL_XB tg\r
156 XXtgA7 X CTRL_SA CTRL_YA tg\r
157 XXtgC7 A1 CTRL_SA CTRL_YC tg\r
158 XXtgB7 A2 CTRL_SA CTRL_YB tg\r
159 XXtgA8 A1 CTRL_SB CTRL_YA tg\r
160 XXtgC8 A2 CTRL_SB CTRL_YC tg\r
161 XXtgB8 X CTRL_SB CTRL_YB tg\r
162 XXtgA9 A2 CTRL_SC CTRL_YA tg\r
163 XXtgC9 X CTRL_SC CTRL_YC tg\r
164 XXtgB9 A1 CTRL_SC CTRL_YB tg\r
165 XXtgA10 0 CTRL_C0A CTRL_YA tg\r
166 XXtgC10 A3 CTRL_C0A CTRL_YC tg\r
167 XXtgB10 A4 CTRL_C0A CTRL_YB tg\r
168 XXtgA11 A5 CTRL_C0B CTRL_YA tg\r
169 XXtgC11 A4 CTRL_C0B CTRL_YC tg\r
170 XXtgB11 0 CTRL_C0B CTRL_YB tg\r
171 XXtgA12 A6 CTRL_C0C CTRL_YA tg\r
172 XXtgC12 0 CTRL_C0C CTRL_YC tg\r
173 XXtgB12 A5 CTRL_C0C CTRL_YB tg\r
174 XXdecodeY Y CTRL_YC CTRL_YB CTRL_YA decoder1-3\r
175 XXtgA15 CTRL_SA S CTRL_CA tg\r
176 XXtgC15 CTRL_SC S CTRL_CC tg\r
177 XXtgB15 CTRL_SB S CTRL_CB tg\r
178 XXtgA18 CTRL_C0A CO CTRL_CA tg\r
179 XXtgC18 CTRL_C0C CO CTRL_CC tg\r
180 XXtgB18 CTRL_C0B CO CTRL_CB tg\r
181 XX1 CI CTRL_CA CTRL_CB CTRL_CC decoder1-3\r
182 .ends full_adder\r
184 .subckt tsign4 I0 I1 I2 SIGN I3\r
185 XXcheckI2 $G_Vss N001 $G_Vdd I2 N002 mux3-1\r
186 XXcheckI3 $G_Vss N002 $G_Vdd I3 SIGN mux3-1\r
187 XXcheckI1 $G_Vss I0 $G_Vdd I1 N001 mux3-1\r
188 .ends tsign4\r
190 .subckt dtflop D CLK Q _Q\r
191 XXlatch Q_storage _Q Q tnand\r
192 X_Xlatch Q _Q_storage _Q tnand\r
193 XXgatetop D CLK Q_storage tnand\r
194 XXgatebot CLK _D _Q_storage tnand\r
195 XXstiD D _D sti\r
196 .ends dtflop\r
198 .subckt tinv Vin PTI_Out STI_Out NTI_Out\r
199 RP PTI_Out STI_Out 12k\r
200 RN STI_Out NTI_Out 12k\r
201 MN NTI_Out Vin $G_Vss $G_Vss CD4007N\r
202 MP PTI_Out Vin $G_Vdd $G_Vdd CD4007P\r
203 .ends tinv\r
205 .model NMOS NMOS\r
206 .model PMOS PMOS\r
207 .lib C:\PROGRA~1\LTC\SwCADIII\lib\cmp\standard.mos\r
208 .tran 320u\r
209 * Reset address\r
210 * Should result in S = _1, _1, 1\r
211 * IN "Register"\n(User input)\r
212 * OUT "Register"\n(Cannot read from)\r
213 * A Register\r
214 * IN "Register"\n(User input)\r
215 * OUT "Register"\n(Cannot read from)\r
216 * A Register\r
217 .backanno\r
218 .end\r