Add BE instruction circuitry to main, reorganize (not tested).
[trinary.git] / circuits / main.asc
blobfd61ced4e064caba58f3042d2b70bdad24b59f91
1 Version 4\r
2 SHEET 1 2116 2028\r
3 WIRE 1024 -1216 992 -1216\r
4 WIRE 1104 -1216 1024 -1216\r
5 WIRE 1040 -1184 992 -1184\r
6 WIRE 1104 -1184 1040 -1184\r
7 WIRE 1056 -1152 992 -1152\r
8 WIRE 1104 -1152 1056 -1152\r
9 WIRE -256 -1136 -576 -1136\r
10 WIRE -144 -1136 -256 -1136\r
11 WIRE -16 -1136 -112 -1136\r
12 WIRE 1056 -1120 1056 -1152\r
13 WIRE 1056 -1120 960 -1120\r
14 WIRE 1424 -1120 1216 -1120\r
15 WIRE 1536 -1120 1424 -1120\r
16 WIRE 544 -1104 448 -1104\r
17 WIRE 624 -1104 544 -1104\r
18 WIRE -464 -1088 -528 -1088\r
19 WIRE 1040 -1088 1040 -1184\r
20 WIRE 1040 -1088 992 -1088\r
21 WIRE 1424 -1088 1216 -1088\r
22 WIRE 1536 -1088 1424 -1088\r
23 WIRE 544 -1056 448 -1056\r
24 WIRE 1424 -1056 1216 -1056\r
25 WIRE 1536 -1056 1424 -1056\r
26 WIRE -304 -1008 -336 -1008\r
27 WIRE -224 -1008 -304 -1008\r
28 WIRE -16 -1008 -16 -1136\r
29 WIRE -16 -1008 -64 -1008\r
30 WIRE 80 -1008 -16 -1008\r
31 WIRE 192 -1008 80 -1008\r
32 WIRE 544 -1008 448 -1008\r
33 WIRE 1792 -1008 1744 -1008\r
34 WIRE 1840 -1008 1792 -1008\r
35 WIRE 2048 -1008 2000 -1008\r
36 WIRE 2080 -1008 2048 -1008\r
37 WIRE 1104 -992 944 -992\r
38 WIRE -576 -976 -576 -1136\r
39 WIRE -480 -976 -576 -976\r
40 WIRE -224 -960 -304 -960\r
41 WIRE 1104 -960 944 -960\r
42 WIRE 1424 -960 1264 -960\r
43 WIRE 1536 -960 1424 -960\r
44 WIRE 1840 -960 1792 -960\r
45 WIRE -736 -944 -768 -944\r
46 WIRE -528 -944 -528 -1088\r
47 WIRE -480 -944 -528 -944\r
48 WIRE -336 -944 -336 -1008\r
49 WIRE -336 -944 -368 -944\r
50 WIRE 1104 -928 944 -928\r
51 WIRE 1424 -928 1296 -928\r
52 WIRE 1536 -928 1424 -928\r
53 WIRE -736 -912 -768 -912\r
54 WIRE -544 -912 -624 -912\r
55 WIRE -480 -912 -544 -912\r
56 WIRE 1424 -896 1344 -896\r
57 WIRE 1536 -896 1424 -896\r
58 WIRE -736 -880 -768 -880\r
59 WIRE -304 -880 -304 -960\r
60 WIRE 288 -864 208 -864\r
61 WIRE 1648 -832 1568 -832\r
62 WIRE -688 -816 -688 -832\r
63 WIRE -432 -816 -432 -864\r
64 WIRE 288 -816 208 -816\r
65 WIRE 624 -816 624 -1104\r
66 WIRE 624 -816 480 -816\r
67 WIRE 1792 -816 1792 -960\r
68 WIRE 1792 -816 1728 -816\r
69 WIRE 1648 -800 1568 -800\r
70 WIRE 1152 -784 1152 -880\r
71 WIRE 1152 -784 1136 -784\r
72 WIRE 288 -768 208 -768\r
73 WIRE 1024 -656 1024 -1216\r
74 WIRE 1072 -656 1024 -656\r
75 WIRE 992 -624 992 -1088\r
76 WIRE 1072 -624 992 -624\r
77 WIRE 960 -592 960 -1120\r
78 WIRE 1072 -592 960 -592\r
79 WIRE 1264 -560 1264 -960\r
80 WIRE 1264 -560 1184 -560\r
81 WIRE 512 -544 464 -544\r
82 WIRE 1296 -528 1296 -928\r
83 WIRE 1296 -528 1184 -528\r
84 WIRE 304 -512 176 -512\r
85 WIRE 512 -512 464 -512\r
86 WIRE 1344 -496 1344 -896\r
87 WIRE 1344 -496 1184 -496\r
88 WIRE 304 -480 176 -480\r
89 WIRE 512 -480 464 -480\r
90 WIRE 896 -464 848 -464\r
91 WIRE 992 -464 944 -464\r
92 WIRE 1040 -464 992 -464\r
93 WIRE -400 -432 -448 -432\r
94 WIRE 1040 -432 1040 -464\r
95 WIRE 1072 -432 1040 -432\r
96 WIRE 896 -400 848 -400\r
97 WIRE 992 -400 944 -400\r
98 WIRE 1072 -400 992 -400\r
99 WIRE 128 -384 96 -384\r
100 WIRE -400 -368 -448 -368\r
101 WIRE 240 -368 208 -368\r
102 WIRE 304 -368 240 -368\r
103 WIRE 1072 -368 1040 -368\r
104 WIRE 128 -352 96 -352\r
105 WIRE 896 -336 848 -336\r
106 WIRE 992 -336 944 -336\r
107 WIRE 1040 -336 1040 -368\r
108 WIRE 1040 -336 992 -336\r
109 WIRE 1120 -224 1120 -320\r
110 WIRE 1120 -224 1040 -224\r
111 FLAG -192 -560 $G_Vss\r
112 FLAG -192 -624 $G_Vdd\r
113 FLAG 544 -1104 I0_opcode\r
114 FLAG 544 -1056 I1\r
115 FLAG 544 -1008 I2\r
116 FLAG -256 -1136 PC_PLUS_1\r
117 FLAG 208 -864 IS_CMP\r
118 FLAG 208 -816 IS_LWI\r
119 FLAG 208 -768 IS_BE\r
120 FLAG 512 -544 A0\r
121 FLAG 512 -512 A1\r
122 FLAG 512 -480 A2\r
123 FLAG 304 -544 0\r
124 FLAG 176 -512 I1\r
125 FLAG 176 -480 I2\r
126 FLAG 96 -384 IS_LWI\r
127 FLAG -304 -880 FETCH\r
128 FLAG 96 -352 EXECUTE\r
129 FLAG 80 -1008 PC\r
130 FLAG -304 -1008 NEXT_PC\r
131 FLAG 1792 -1008 S_IN\r
132 FLAG 2048 -1008 S\r
133 FLAG 992 -1152 $G_Vss\r
134 FLAG 992 -1216 $G_Vdd\r
135 FLAG 992 -1184 0\r
136 FLAG 1104 -1104 0\r
137 FLAG 1104 -1072 0\r
138 FLAG 1104 -1040 0\r
139 FLAG 944 -992 A0_BUF\r
140 FLAG 944 -960 A1_BUF\r
141 FLAG 944 -928 A2_BUF\r
142 FLAG 1136 -784 I1\r
143 FLAG 1072 -544 0\r
144 FLAG 1072 -512 0\r
145 FLAG 1072 -480 0\r
146 FLAG 992 -464 A0_BUF\r
147 FLAG 992 -336 A2_BUF\r
148 FLAG 1040 -224 I2\r
149 FLAG 1424 -1120 ALU_IN_A0\r
150 FLAG 1424 -1088 ALU_IN_A1\r
151 FLAG 1424 -1056 ALU_IN_A2\r
152 FLAG 1424 -960 ALU_IN_B0\r
153 FLAG 1424 -928 ALU_IN_B1\r
154 FLAG 1424 -896 ALU_IN_B2\r
155 FLAG 1792 -816 CLK_STATUS\r
156 FLAG 1568 -832 IS_CMP\r
157 FLAG 1568 -800 EXECUTE\r
158 FLAG 240 -368 CLK_A\r
159 FLAG -400 -432 FETCH\r
160 FLAG -400 -368 EXECUTE\r
161 FLAG 848 -400 A1\r
162 FLAG 992 -400 A1_BUF\r
163 FLAG 848 -464 A0\r
164 FLAG 848 -336 A2\r
165 FLAG -432 -816 IS_BE\r
166 FLAG -544 -912 JUMP_ADDR\r
167 FLAG -464 -1088 0\r
168 FLAG -688 -816 S\r
169 FLAG -768 -912 I1\r
170 FLAG -768 -944 I2\r
171 FLAG -768 -880 I2\r
172 SYMBOL tpower -192 -592 R0\r
173 SYMATTR InstName X2\r
174 SYMBOL tcycle_up -128 -1136 M0\r
175 SYMATTR InstName CYCLE_PC\r
176 SYMBOL mux3-1 -416 -976 R0\r
177 SYMATTR InstName MUX_PC\r
178 SYMBOL decoder1-3 384 -864 M0\r
179 SYMATTR InstName X3\r
180 SYMBOL trit_reg3 384 -592 R0\r
181 SYMATTR InstName REGISTER_A\r
182 SYMBOL min 160 -368 R0\r
183 SYMATTR InstName DO_LWI\r
184 SYMBOL mux9-3 1168 -1216 R0\r
185 SYMATTR InstName MUX_ALU_A\r
186 SYMBOL mux9-3 1136 -656 R0\r
187 SYMATTR InstName MUX_ALU_B\r
188 SYMBOL min 1680 -816 R0\r
189 SYMATTR InstName DO_CMP\r
190 SYMBOL alu 1584 -1120 R0\r
191 SYMATTR InstName Xalu\r
192 SYMBOL clock_gen -528 -480 R0\r
193 SYMATTR InstName cg\r
194 SYMBOL dtflop-ms2 -144 -1056 R0\r
195 SYMATTR InstName PROGRAM_COUNTER\r
196 SYMBOL dtflop-ms2 1920 -1056 R0\r
197 SYMATTR InstName STATUS_REG\r
198 SYMBOL tbuf 912 -400 R0\r
199 SYMATTR InstName BUF_A1\r
200 SYMBOL tbuf 912 -464 R0\r
201 SYMATTR InstName BUF_A0\r
202 SYMBOL tbuf 912 -336 R0\r
203 SYMATTR InstName BUF_A2\r
204 SYMBOL mux3-1 -672 -944 R0\r
205 SYMATTR InstName JUMP_MUX\r
206 SYMBOL swrom-cmptest 240 -1104 R0\r
207 SYMATTR InstName X1\r
208 TEXT -88 -760 Left 0 !.tran 320u\r
209 TEXT 120 -936 Left 0 ;Should result in S = _1, _1, 1\r
210 TEXT 736 -1192 Left 0 ;IN "Register"\n(User input)\r
211 TEXT 736 -1088 Left 0 ;OUT "Register"\n(Cannot read from)\r
212 TEXT 712 -968 Left 0 ;A Register\r
213 TEXT 704 -632 Left 0 ;IN "Register"\n(User input)\r
214 TEXT 704 -560 Left 0 ;OUT "Register"\n(Cannot read from)\r
215 TEXT 696 -408 Left 0 ;A Register\r
216 TEXT -448 -1088 Left 0 ;Not used\r
217 TEXT -808 -912 Left 0 ;=\r
218 TEXT -808 -944 Left 0 ;<\r
219 TEXT -808 -880 Left 0 ;>\r
220 RECTANGLE Normal 560 -240 -16 -640\r
221 RECTANGLE Normal 2112 -160 688 -1344\r
222 RECTANGLE Normal -352 -688 -832 -1184\r