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
27 .subckt tcycle_up IN OUT
\r
28 XXnti _IN _IN_NTI nti
\r
29 XXpti _IN _IN_PTI pti
\r
31 XXtnor1 _IN_NTI INI OUT tnor
\r
32 XXtnor0 _IN_PTI 0 INI tnor
\r
35 .subckt mux3-1 A B C S Q
\r
39 XXdecoder S CTRL_A CTRL_B CTRL_C decoder1-3
\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
46 XX0nor OUT_1 OUT_i OUT_0 tnor
\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
55 .subckt min A B MIN_OUT
\r
56 XXsti_tand AtnandB MIN_OUT sti
\r
57 XXtnand A B AtnandB tnand
\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
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
74 XXnegCarry C3 B3 sti
\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
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
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
98 Xinv IN NC_01 NC_02 OUT tinv
\r
102 Xinv IN OUT NC_01 NC_02 tinv
\r
106 XXinv IN NC_01 OUT NC_02 tinv
\r
109 .subckt tnor A B TNOR_Out
\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
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
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
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
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
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
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
207 .lib C:\PROGRA~1\LTC\SwCADIII\lib\cmp\standard.mos
\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
214 * IN "Register"\n(User input)
\r
215 * OUT "Register"\n(Cannot read from)
\r