diff --git a/CPUProject.bdf b/CPUProject.bdf index 6372c4e..358afc4 100644 --- a/CPUProject.bdf +++ b/CPUProject.bdf @@ -53,7 +53,7 @@ refer to the applicable agreement for further details. ) (pin (output) - (rect 1232 656 1408 672) + (rect 1232 528 1408 544) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "ALU_carry" (rect 90 0 139 17)(font "Intel Clear" )) (pt 0 8) @@ -69,7 +69,7 @@ refer to the applicable agreement for further details. ) (pin (output) - (rect 1232 688 1408 704) + (rect 1232 560 1408 576) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "Rs1[15..0]" (rect 90 0 137 17)(font "Intel Clear" )) (pt 0 8) @@ -85,7 +85,7 @@ refer to the applicable agreement for further details. ) (pin (output) - (rect 1232 704 1408 720) + (rect 1232 576 1408 592) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "Rs2[15..0]" (rect 90 0 137 17)(font "Intel Clear" )) (pt 0 8) @@ -101,7 +101,7 @@ refer to the applicable agreement for further details. ) (pin (output) - (rect 1232 672 1408 688) + (rect 1232 544 1408 560) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "Rd[15..0]" (rect 90 0 136 12)(font "Arial" )) (pt 0 8) @@ -117,7 +117,7 @@ refer to the applicable agreement for further details. ) (pin (output) - (rect 1232 720 1408 736) + (rect 1232 592 1408 608) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "instr[15..0]" (rect 90 0 139 17)(font "Intel Clear" )) (pt 0 8) @@ -133,7 +133,7 @@ refer to the applicable agreement for further details. ) (pin (output) - (rect 1232 736 1408 752) + (rect 1232 608 1408 624) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "FETCH" (rect 90 0 121 17)(font "Intel Clear" )) (pt 0 8) @@ -149,7 +149,7 @@ refer to the applicable agreement for further details. ) (pin (output) - (rect 1232 752 1408 768) + (rect 1232 624 1408 640) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "EXEC1" (rect 90 0 121 17)(font "Intel Clear" )) (pt 0 8) @@ -165,7 +165,7 @@ refer to the applicable agreement for further details. ) (pin (output) - (rect 1232 768 1408 784) + (rect 1232 640 1408 656) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "EXEC2" (rect 90 0 121 17)(font "Intel Clear" )) (pt 0 8) @@ -181,7 +181,7 @@ refer to the applicable agreement for further details. ) (pin (output) - (rect 1232 640 1408 656) + (rect 1232 512 1408 528) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "reg_in[15..0]" (rect 90 0 151 12)(font "Arial" )) (pt 0 8) @@ -195,6 +195,134 @@ refer to the applicable agreement for further details. (line (pt 78 12)(pt 82 8)) ) ) +(pin + (output) + (rect 1232 656 1408 672) + (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) + (text "PC[15..0]" (rect 90 0 137 12)(font "Arial" )) + (pt 0 8) + (drawing + (line (pt 0 8)(pt 52 8)) + (line (pt 52 4)(pt 78 4)) + (line (pt 52 12)(pt 78 12)) + (line (pt 52 12)(pt 52 4)) + (line (pt 78 4)(pt 82 8)) + (line (pt 82 8)(pt 78 12)) + (line (pt 78 12)(pt 82 8)) + ) +) +(pin + (output) + (rect 1232 672 1408 688) + (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) + (text "R1[15..0]" (rect 90 0 132 17)(font "Intel Clear" )) + (pt 0 8) + (drawing + (line (pt 0 8)(pt 52 8)) + (line (pt 52 4)(pt 78 4)) + (line (pt 52 12)(pt 78 12)) + (line (pt 52 12)(pt 52 4)) + (line (pt 78 4)(pt 82 8)) + (line (pt 82 8)(pt 78 12)) + (line (pt 78 12)(pt 82 8)) + ) +) +(pin + (output) + (rect 1232 688 1408 704) + (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) + (text "R2[15..0]" (rect 90 0 132 17)(font "Intel Clear" )) + (pt 0 8) + (drawing + (line (pt 0 8)(pt 52 8)) + (line (pt 52 4)(pt 78 4)) + (line (pt 52 12)(pt 78 12)) + (line (pt 52 12)(pt 52 4)) + (line (pt 78 4)(pt 82 8)) + (line (pt 82 8)(pt 78 12)) + (line (pt 78 12)(pt 82 8)) + ) +) +(pin + (output) + (rect 1232 704 1408 720) + (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) + (text "R3[15..0]" (rect 90 0 132 17)(font "Intel Clear" )) + (pt 0 8) + (drawing + (line (pt 0 8)(pt 52 8)) + (line (pt 52 4)(pt 78 4)) + (line (pt 52 12)(pt 78 12)) + (line (pt 52 12)(pt 52 4)) + (line (pt 78 4)(pt 82 8)) + (line (pt 82 8)(pt 78 12)) + (line (pt 78 12)(pt 82 8)) + ) +) +(pin + (output) + (rect 1232 720 1408 736) + (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) + (text "R4[15..0]" (rect 90 0 132 17)(font "Intel Clear" )) + (pt 0 8) + (drawing + (line (pt 0 8)(pt 52 8)) + (line (pt 52 4)(pt 78 4)) + (line (pt 52 12)(pt 78 12)) + (line (pt 52 12)(pt 52 4)) + (line (pt 78 4)(pt 82 8)) + (line (pt 82 8)(pt 78 12)) + (line (pt 78 12)(pt 82 8)) + ) +) +(pin + (output) + (rect 1232 736 1408 752) + (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) + (text "R5[15..0]" (rect 90 0 132 17)(font "Intel Clear" )) + (pt 0 8) + (drawing + (line (pt 0 8)(pt 52 8)) + (line (pt 52 4)(pt 78 4)) + (line (pt 52 12)(pt 78 12)) + (line (pt 52 12)(pt 52 4)) + (line (pt 78 4)(pt 82 8)) + (line (pt 82 8)(pt 78 12)) + (line (pt 78 12)(pt 82 8)) + ) +) +(pin + (output) + (rect 1232 752 1408 768) + (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) + (text "R6[15..0]" (rect 90 0 132 17)(font "Intel Clear" )) + (pt 0 8) + (drawing + (line (pt 0 8)(pt 52 8)) + (line (pt 52 4)(pt 78 4)) + (line (pt 52 12)(pt 78 12)) + (line (pt 52 12)(pt 52 4)) + (line (pt 78 4)(pt 82 8)) + (line (pt 82 8)(pt 78 12)) + (line (pt 78 12)(pt 82 8)) + ) +) +(pin + (output) + (rect 1232 768 1408 784) + (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) + (text "R7[15..0]" (rect 90 0 132 17)(font "Intel Clear" )) + (pt 0 8) + (drawing + (line (pt 0 8)(pt 52 8)) + (line (pt 52 4)(pt 78 4)) + (line (pt 52 12)(pt 78 12)) + (line (pt 52 12)(pt 52 4)) + (line (pt 78 4)(pt 82 8)) + (line (pt 82 8)(pt 78 12)) + (line (pt 78 12)(pt 82 8)) + ) +) (symbol (rect 200 160 408 512) (text "reg_file" (rect 5 0 49 19)(font "Intel Clear" (font_size 8))) @@ -770,168 +898,6 @@ refer to the applicable agreement for further details. (rectangle (rect 16 16 136 96)) ) ) -(symbol - (rect 968 -216 1176 120) - (text "DECODE" (rect 5 0 52 12)(font "Arial" )) - (text "DECODE" (rect 8 320 55 332)(font "Arial" )) - (port - (pt 0 32) - (input) - (text "instr[15..0]" (rect 0 0 53 12)(font "Arial" )) - (text "instr[15..0]" (rect 21 27 74 39)(font "Arial" )) - (line (pt 0 32)(pt 16 32)(line_width 3)) - ) - (port - (pt 0 48) - (input) - (text "EXEC1" (rect 0 0 34 12)(font "Arial" )) - (text "EXEC1" (rect 21 43 55 55)(font "Arial" )) - (line (pt 0 48)(pt 16 48)) - ) - (port - (pt 0 64) - (input) - (text "EXEC2" (rect 0 0 34 12)(font "Arial" )) - (text "EXEC2" (rect 21 59 55 71)(font "Arial" )) - (line (pt 0 64)(pt 16 64)) - ) - (port - (pt 0 80) - (input) - (text "COND_result" (rect 0 0 66 12)(font "Arial" )) - (text "COND_result" (rect 21 75 87 87)(font "Arial" )) - (line (pt 0 80)(pt 16 80)) - ) - (port - (pt 208 32) - (output) - (text "R0_count" (rect 0 0 47 12)(font "Arial" )) - (text "R0_count" (rect 148 27 195 39)(font "Arial" )) - (line (pt 208 32)(pt 192 32)) - ) - (port - (pt 208 48) - (output) - (text "R0_en" (rect 0 0 31 12)(font "Arial" )) - (text "R0_en" (rect 161 43 192 55)(font "Arial" )) - (line (pt 208 48)(pt 192 48)) - ) - (port - (pt 208 64) - (output) - (text "R1_en" (rect 0 0 31 12)(font "Arial" )) - (text "R1_en" (rect 161 59 192 71)(font "Arial" )) - (line (pt 208 64)(pt 192 64)) - ) - (port - (pt 208 80) - (output) - (text "R2_en" (rect 0 0 31 12)(font "Arial" )) - (text "R2_en" (rect 161 75 192 87)(font "Arial" )) - (line (pt 208 80)(pt 192 80)) - ) - (port - (pt 208 96) - (output) - (text "R3_en" (rect 0 0 31 12)(font "Arial" )) - (text "R3_en" (rect 161 91 192 103)(font "Arial" )) - (line (pt 208 96)(pt 192 96)) - ) - (port - (pt 208 112) - (output) - (text "R4_en" (rect 0 0 31 12)(font "Arial" )) - (text "R4_en" (rect 161 107 192 119)(font "Arial" )) - (line (pt 208 112)(pt 192 112)) - ) - (port - (pt 208 128) - (output) - (text "R5_en" (rect 0 0 31 12)(font "Arial" )) - (text "R5_en" (rect 161 123 192 135)(font "Arial" )) - (line (pt 208 128)(pt 192 128)) - ) - (port - (pt 208 144) - (output) - (text "R6_en" (rect 0 0 31 12)(font "Arial" )) - (text "R6_en" (rect 161 139 192 151)(font "Arial" )) - (line (pt 208 144)(pt 192 144)) - ) - (port - (pt 208 160) - (output) - (text "R7_en" (rect 0 0 31 12)(font "Arial" )) - (text "R7_en" (rect 161 155 192 167)(font "Arial" )) - (line (pt 208 160)(pt 192 160)) - ) - (port - (pt 208 176) - (output) - (text "s1[2..0]" (rect 0 0 37 12)(font "Arial" )) - (text "s1[2..0]" (rect 156 171 193 183)(font "Arial" )) - (line (pt 208 176)(pt 192 176)(line_width 3)) - ) - (port - (pt 208 192) - (output) - (text "s2[2..0]" (rect 0 0 37 12)(font "Arial" )) - (text "s2[2..0]" (rect 156 187 193 199)(font "Arial" )) - (line (pt 208 192)(pt 192 192)(line_width 3)) - ) - (port - (pt 208 208) - (output) - (text "s3[2..0]" (rect 0 0 37 12)(font "Arial" )) - (text "s3[2..0]" (rect 156 203 193 215)(font "Arial" )) - (line (pt 208 208)(pt 192 208)(line_width 3)) - ) - (port - (pt 208 224) - (output) - (text "s4" (rect 0 0 11 12)(font "Arial" )) - (text "s4" (rect 178 219 189 231)(font "Arial" )) - (line (pt 208 224)(pt 192 224)) - ) - (port - (pt 208 240) - (output) - (text "RAMd_wren" (rect 0 0 57 12)(font "Arial" )) - (text "RAMd_wren" (rect 139 235 196 247)(font "Arial" )) - (line (pt 208 240)(pt 192 240)) - ) - (port - (pt 208 256) - (output) - (text "RAMd_en" (rect 0 0 47 12)(font "Arial" )) - (text "RAMd_en" (rect 148 251 195 263)(font "Arial" )) - (line (pt 208 256)(pt 192 256)) - ) - (port - (pt 208 272) - (output) - (text "RAMi_en" (rect 0 0 43 12)(font "Arial" )) - (text "RAMi_en" (rect 151 267 194 279)(font "Arial" )) - (line (pt 208 272)(pt 192 272)) - ) - (port - (pt 208 288) - (output) - (text "ALU_en" (rect 0 0 38 12)(font "Arial" )) - (text "ALU_en" (rect 155 283 193 295)(font "Arial" )) - (line (pt 208 288)(pt 192 288)) - ) - (port - (pt 208 304) - (output) - (text "E2" (rect 0 0 12 12)(font "Arial" )) - (text "E2" (rect 177 299 189 311)(font "Arial" )) - (line (pt 208 304)(pt 192 304)) - ) - (drawing - (rectangle (rect 16 16 192 320)) - ) -) (symbol (rect 936 304 1120 464) (text "ALU_top" (rect 5 0 56 19)(font "Intel Clear" (font_size 8))) @@ -1378,6 +1344,189 @@ refer to the applicable agreement for further details. (rectangle (rect 16 16 168 96)) ) ) +(symbol + (rect 1168 -136 1376 264) + (text "DECODE" (rect 5 0 52 12)(font "Arial" )) + (text "DECODE" (rect 8 384 55 396)(font "Arial" )) + (port + (pt 0 32) + (input) + (text "instr[15..0]" (rect 0 0 53 12)(font "Arial" )) + (text "instr[15..0]" (rect 21 27 74 39)(font "Arial" )) + (line (pt 0 32)(pt 16 32)(line_width 3)) + ) + (port + (pt 0 48) + (input) + (text "EXEC1" (rect 0 0 34 12)(font "Arial" )) + (text "EXEC1" (rect 21 43 55 55)(font "Arial" )) + (line (pt 0 48)(pt 16 48)) + ) + (port + (pt 0 64) + (input) + (text "EXEC2" (rect 0 0 34 12)(font "Arial" )) + (text "EXEC2" (rect 21 59 55 71)(font "Arial" )) + (line (pt 0 64)(pt 16 64)) + ) + (port + (pt 0 80) + (input) + (text "COND_result" (rect 0 0 66 12)(font "Arial" )) + (text "COND_result" (rect 21 75 87 87)(font "Arial" )) + (line (pt 0 80)(pt 16 80)) + ) + (port + (pt 208 32) + (output) + (text "R0_count" (rect 0 0 47 12)(font "Arial" )) + (text "R0_count" (rect 148 27 187 39)(font "Arial" )) + (line (pt 208 32)(pt 192 32)) + ) + (port + (pt 208 48) + (output) + (text "R0_en" (rect 0 0 31 12)(font "Arial" )) + (text "R0_en" (rect 161 43 187 55)(font "Arial" )) + (line (pt 208 48)(pt 192 48)) + ) + (port + (pt 208 64) + (output) + (text "R1_en" (rect 0 0 31 12)(font "Arial" )) + (text "R1_en" (rect 161 59 187 71)(font "Arial" )) + (line (pt 208 64)(pt 192 64)) + ) + (port + (pt 208 80) + (output) + (text "R2_en" (rect 0 0 31 12)(font "Arial" )) + (text "R2_en" (rect 161 75 187 87)(font "Arial" )) + (line (pt 208 80)(pt 192 80)) + ) + (port + (pt 208 96) + (output) + (text "R3_en" (rect 0 0 31 12)(font "Arial" )) + (text "R3_en" (rect 161 91 187 103)(font "Arial" )) + (line (pt 208 96)(pt 192 96)) + ) + (port + (pt 208 112) + (output) + (text "R4_en" (rect 0 0 31 12)(font "Arial" )) + (text "R4_en" (rect 161 107 187 119)(font "Arial" )) + (line (pt 208 112)(pt 192 112)) + ) + (port + (pt 208 128) + (output) + (text "R5_en" (rect 0 0 31 12)(font "Arial" )) + (text "R5_en" (rect 161 123 187 135)(font "Arial" )) + (line (pt 208 128)(pt 192 128)) + ) + (port + (pt 208 144) + (output) + (text "R6_en" (rect 0 0 31 12)(font "Arial" )) + (text "R6_en" (rect 161 139 187 151)(font "Arial" )) + (line (pt 208 144)(pt 192 144)) + ) + (port + (pt 208 160) + (output) + (text "R7_en" (rect 0 0 31 12)(font "Arial" )) + (text "R7_en" (rect 161 155 187 167)(font "Arial" )) + (line (pt 208 160)(pt 192 160)) + ) + (port + (pt 208 176) + (output) + (text "s1[2..0]" (rect 0 0 37 12)(font "Arial" )) + (text "s1[2..0]" (rect 156 171 187 183)(font "Arial" )) + (line (pt 208 176)(pt 192 176)(line_width 3)) + ) + (port + (pt 208 192) + (output) + (text "s2[2..0]" (rect 0 0 37 12)(font "Arial" )) + (text "s2[2..0]" (rect 156 187 187 199)(font "Arial" )) + (line (pt 208 192)(pt 192 192)(line_width 3)) + ) + (port + (pt 208 208) + (output) + (text "s3[2..0]" (rect 0 0 37 12)(font "Arial" )) + (text "s3[2..0]" (rect 156 203 187 215)(font "Arial" )) + (line (pt 208 208)(pt 192 208)(line_width 3)) + ) + (port + (pt 208 224) + (output) + (text "s4" (rect 0 0 11 12)(font "Arial" )) + (text "s4" (rect 178 219 187 231)(font "Arial" )) + (line (pt 208 224)(pt 192 224)) + ) + (port + (pt 208 240) + (output) + (text "RAMd_wren" (rect 0 0 57 12)(font "Arial" )) + (text "RAMd_wren" (rect 139 235 187 247)(font "Arial" )) + (line (pt 208 240)(pt 192 240)) + ) + (port + (pt 208 256) + (output) + (text "RAMd_en" (rect 0 0 47 12)(font "Arial" )) + (text "RAMd_en" (rect 148 251 187 263)(font "Arial" )) + (line (pt 208 256)(pt 192 256)) + ) + (port + (pt 208 272) + (output) + (text "RAMi_en" (rect 0 0 43 12)(font "Arial" )) + (text "RAMi_en" (rect 151 267 187 279)(font "Arial" )) + (line (pt 208 272)(pt 192 272)) + ) + (port + (pt 208 288) + (output) + (text "ALU_en" (rect 0 0 38 12)(font "Arial" )) + (text "ALU_en" (rect 155 283 187 295)(font "Arial" )) + (line (pt 208 288)(pt 192 288)) + ) + (port + (pt 208 304) + (output) + (text "E2" (rect 0 0 12 12)(font "Arial" )) + (text "E2" (rect 177 299 187 311)(font "Arial" )) + (line (pt 208 304)(pt 192 304)) + ) + (port + (pt 208 320) + (output) + (text "stack_en" (rect 0 0 44 12)(font "Arial" )) + (text "stack_en" (rect 150 315 187 327)(font "Arial" )) + (line (pt 208 320)(pt 192 320)) + ) + (port + (pt 208 336) + (output) + (text "stack_rst" (rect 0 0 46 12)(font "Arial" )) + (text "stack_rst" (rect 149 331 187 343)(font "Arial" )) + (line (pt 208 336)(pt 192 336)) + ) + (port + (pt 208 352) + (output) + (text "stack_rw" (rect 0 0 43 12)(font "Arial" )) + (text "stack_rw" (rect 151 347 187 359)(font "Arial" )) + (line (pt 208 352)(pt 192 352)) + ) + (drawing + (rectangle (rect 16 16 192 384)) + ) +) (connector (pt 728 -88) (pt 728 16) @@ -1428,11 +1577,6 @@ refer to the applicable agreement for further details. (pt 256 -16) (pt 216 -16) ) -(connector - (pt 1152 192) - (pt 1160 192) - (bus) -) (connector (pt 856 192) (pt 936 192) @@ -1459,11 +1603,6 @@ refer to the applicable agreement for further details. (pt 936 208) (pt 880 208) ) -(connector - (pt 856 -72) - (pt 872 -72) - (bus) -) (connector (pt 472 -112) (pt 488 -112) @@ -1556,147 +1695,6 @@ refer to the applicable agreement for further details. (pt 1120 368) (pt 1152 368) ) -(connector - (text "R0_count" (rect 1186 -200 1230 -183)(font "Intel Clear" )) - (pt 1176 -184) - (pt 1224 -184) -) -(connector - (text "R0_en" (rect 1186 -184 1216 -167)(font "Intel Clear" )) - (pt 1176 -168) - (pt 1224 -168) -) -(connector - (text "R1_en" (rect 1186 -168 1216 -151)(font "Intel Clear" )) - (pt 1176 -152) - (pt 1224 -152) -) -(connector - (text "R2_en" (rect 1186 -152 1216 -135)(font "Intel Clear" )) - (pt 1176 -136) - (pt 1224 -136) -) -(connector - (text "R3_en" (rect 1186 -136 1216 -119)(font "Intel Clear" )) - (pt 1176 -120) - (pt 1224 -120) -) -(connector - (text "R4_en" (rect 1186 -120 1216 -103)(font "Intel Clear" )) - (pt 1176 -104) - (pt 1224 -104) -) -(connector - (text "R5_en" (rect 1186 -104 1216 -87)(font "Intel Clear" )) - (pt 1176 -88) - (pt 1224 -88) -) -(connector - (text "R6_en" (rect 1186 -88 1216 -71)(font "Intel Clear" )) - (pt 1176 -72) - (pt 1224 -72) -) -(connector - (text "R7_en" (rect 1186 -72 1216 -55)(font "Intel Clear" )) - (pt 1176 -56) - (pt 1224 -56) -) -(connector - (text "s1[2..0]" (rect 1186 -56 1220 -39)(font "Intel Clear" )) - (pt 1176 -40) - (pt 1224 -40) - (bus) -) -(connector - (text "s2[2..0]" (rect 1186 -40 1220 -23)(font "Intel Clear" )) - (pt 1176 -24) - (pt 1224 -24) - (bus) -) -(connector - (text "s3[2..0]" (rect 1186 -24 1220 -7)(font "Intel Clear" )) - (pt 1176 -8) - (pt 1224 -8) - (bus) -) -(connector - (text "s4" (rect 1186 -8 1196 9)(font "Intel Clear" )) - (pt 1176 8) - (pt 1224 8) -) -(connector - (text "RAMd_en" (rect 1186 24 1233 41)(font "Intel Clear" )) - (pt 1176 40) - (pt 1224 40) -) -(connector - (text "RAMi_en" (rect 1186 40 1229 57)(font "Intel Clear" )) - (pt 1176 56) - (pt 1224 56) -) -(connector - (text "RAMd_wren" (rect 1186 8 1245 25)(font "Intel Clear" )) - (pt 1176 24) - (pt 1240 24) -) -(connector - (text "EXEC1" (rect 938 -184 969 -167)(font "Intel Clear" )) - (pt 968 -168) - (pt 928 -168) -) -(connector - (text "COND" (rect 938 -152 967 -135)(font "Intel Clear" )) - (pt 928 -136) - (pt 968 -136) -) -(connector - (text "ALU_en" (rect 1186 56 1223 73)(font "Intel Clear" )) - (pt 1176 72) - (pt 1224 72) -) -(connector - (text "EXEC2" (rect 938 -168 969 -151)(font "Intel Clear" )) - (pt 968 -152) - (pt 928 -152) -) -(connector - (pt 912 -184) - (pt 968 -184) - (bus) -) -(connector - (text "E2" (rect 1186 72 1197 89)(font "Intel Clear" )) - (pt 1176 88) - (pt 1224 88) -) -(connector - (text "instr[15..0]" (rect 896 -130 913 -81)(font "Intel Clear" )(vertical)) - (pt 912 -184) - (pt 912 -72) - (bus) -) -(connector - (text "instr[15..0]" (rect 864 -88 913 -71)(font "Intel Clear" )) - (pt 872 -72) - (pt 912 -72) - (bus) -) -(connector - (pt 872 -72) - (pt 872 -32) - (bus) -) -(connector - (pt 872 -32) - (pt 872 224) - (bus) -) -(connector - (text "instr[15..10]" (rect 882 -48 937 -31)(font "Intel Clear" )) - (pt 872 -32) - (pt 936 -32) - (bus) -) (connector (text "EXEC2" (rect 792 27 809 58)(font "Intel Clear" )(vertical)) (pt 808 32) @@ -1707,12 +1705,6 @@ refer to the applicable agreement for further details. (pt 792 32) (pt 792 64) ) -(connector - (text "Rs1[15..0]" (rect 818 160 865 177)(font "Intel Clear" )) - (pt 856 176) - (pt 816 176) - (bus) -) (connector (pt 208 -80) (pt 208 144) @@ -1863,71 +1855,36 @@ refer to the applicable agreement for further details. (pt 464 144) (bus) ) -(connector - (pt 408 208) - (pt 480 208) - (bus) -) (connector (pt 480 208) (pt 632 208) (bus) ) -(connector - (pt 408 224) - (pt 496 224) - (bus) -) (connector (pt 496 224) (pt 632 224) (bus) ) -(connector - (pt 408 240) - (pt 512 240) - (bus) -) (connector (pt 512 240) (pt 632 240) (bus) ) -(connector - (pt 408 256) - (pt 528 256) - (bus) -) (connector (pt 528 256) (pt 632 256) (bus) ) -(connector - (pt 408 272) - (pt 544 272) - (bus) -) (connector (pt 544 272) (pt 632 272) (bus) ) -(connector - (pt 408 288) - (pt 560 288) - (bus) -) (connector (pt 560 288) (pt 632 288) (bus) ) -(connector - (pt 408 304) - (pt 576 304) - (bus) -) (connector (pt 576 304) (pt 632 304) @@ -2144,32 +2101,6 @@ refer to the applicable agreement for further details. (pt 592 592) (bus) ) -(connector - (text "Rs1[15..0]" (rect 882 128 929 145)(font "Intel Clear" )) - (pt 856 144) - (pt 928 144) - (bus) -) -(connector - (pt 856 144) - (pt 856 176) - (bus) -) -(connector - (pt 856 176) - (pt 856 192) - (bus) -) -(connector - (pt 1160 192) - (pt 1160 320) - (bus) -) -(connector - (pt 1160 320) - (pt 1216 320) - (bus) -) (connector (pt 1120 336) (pt 1216 336) @@ -2186,80 +2117,11 @@ refer to the applicable agreement for further details. (pt 1416 304) (bus) ) -(connector - (pt 1416 624) - (pt 1224 624) - (bus) -) -(connector - (pt 1232 648) - (pt 1224 648) - (bus) -) -(connector - (pt 1224 648) - (pt 1224 624) - (bus) -) (connector (pt 136 792) (pt 1416 792) (bus) ) -(connector - (pt 1416 304) - (pt 1416 624) - (bus) -) -(connector - (pt 1416 624) - (pt 1416 792) - (bus) -) -(connector - (text "CARRY" (rect 1186 648 1221 665)(font "Intel Clear" )) - (pt 1176 664) - (pt 1232 664) -) -(connector - (text "Rs1[15..0]" (rect 1186 680 1233 697)(font "Intel Clear" )) - (pt 1176 696) - (pt 1232 696) - (bus) -) -(connector - (text "Rs2[15..0]" (rect 1186 696 1233 713)(font "Intel Clear" )) - (pt 1176 712) - (pt 1232 712) - (bus) -) -(connector - (text "Rd[15..0]" (rect 1186 664 1228 681)(font "Intel Clear" )) - (pt 1176 680) - (pt 1232 680) - (bus) -) -(connector - (text "instr[15..0]" (rect 1184 712 1233 729)(font "Intel Clear" )) - (pt 1176 728) - (pt 1232 728) - (bus) -) -(connector - (text "FETCH" (rect 1186 728 1217 745)(font "Intel Clear" )) - (pt 1176 744) - (pt 1232 744) -) -(connector - (text "EXEC1" (rect 1186 744 1217 761)(font "Intel Clear" )) - (pt 1176 760) - (pt 1232 760) -) -(connector - (text "EXEC2" (rect 1186 760 1217 777)(font "Intel Clear" )) - (pt 1176 776) - (pt 1232 776) -) (connector (text "CLK" (rect 890 512 910 529)(font "Intel Clear" )) (pt 936 528) @@ -2301,11 +2163,356 @@ refer to the applicable agreement for further details. (pt 1184 352) (bus) ) +(connector + (text "instr[15..10]" (rect 882 -48 937 -31)(font "Intel Clear" )) + (pt 872 -32) + (pt 936 -32) + (bus) +) +(connector + (pt 872 -72) + (pt 872 -32) + (bus) +) +(connector + (pt 872 -32) + (pt 872 224) + (bus) +) +(connector + (pt 856 -72) + (pt 872 -72) + (bus) +) +(connector + (text "instr[15..0]" (rect 864 -88 913 -71)(font "Intel Clear" )) + (pt 872 -72) + (pt 912 -72) + (bus) +) +(connector + (pt 1152 192) + (pt 1160 192) + (bus) +) +(connector + (pt 1160 192) + (pt 1160 320) + (bus) +) +(connector + (pt 1216 320) + (pt 1160 320) + (bus) +) +(connector + (pt 912 -72) + (pt 912 -104) + (bus) +) +(connector + (text "instr[15..0]" (rect 906 -120 955 -103)(font "Intel Clear" )) + (pt 912 -104) + (pt 1168 -104) + (bus) +) +(connector + (text "EXEC1" (rect 1138 -104 1169 -87)(font "Intel Clear" )) + (pt 1128 -88) + (pt 1168 -88) +) +(connector + (text "EXEC2" (rect 1138 -88 1169 -71)(font "Intel Clear" )) + (pt 1128 -72) + (pt 1168 -72) +) +(connector + (text "COND" (rect 1138 -72 1167 -55)(font "Intel Clear" )) + (pt 1128 -56) + (pt 1168 -56) +) +(connector + (text "R0_count" (rect 1386 -120 1430 -103)(font "Intel Clear" )) + (pt 1376 -104) + (pt 1424 -104) +) +(connector + (text "R0_en" (rect 1386 -104 1416 -87)(font "Intel Clear" )) + (pt 1376 -88) + (pt 1424 -88) +) +(connector + (text "R1_en" (rect 1386 -88 1416 -71)(font "Intel Clear" )) + (pt 1376 -72) + (pt 1424 -72) +) +(connector + (text "R2_en" (rect 1386 -72 1416 -55)(font "Intel Clear" )) + (pt 1376 -56) + (pt 1424 -56) +) +(connector + (text "R3_en" (rect 1386 -56 1416 -39)(font "Intel Clear" )) + (pt 1376 -40) + (pt 1424 -40) +) +(connector + (text "R4_en" (rect 1386 -40 1416 -23)(font "Intel Clear" )) + (pt 1376 -24) + (pt 1424 -24) +) +(connector + (text "R5_en" (rect 1386 -24 1416 -7)(font "Intel Clear" )) + (pt 1376 -8) + (pt 1424 -8) +) +(connector + (text "R6_en" (rect 1386 -8 1416 9)(font "Intel Clear" )) + (pt 1376 8) + (pt 1424 8) +) +(connector + (text "R7_en" (rect 1386 8 1416 25)(font "Intel Clear" )) + (pt 1376 24) + (pt 1424 24) +) +(connector + (text "s1[2..0]" (rect 1386 24 1420 41)(font "Intel Clear" )) + (pt 1376 40) + (pt 1424 40) + (bus) +) +(connector + (text "s2[2..0]" (rect 1386 40 1420 57)(font "Intel Clear" )) + (pt 1376 56) + (pt 1424 56) + (bus) +) +(connector + (text "s3[2..0]" (rect 1386 56 1420 73)(font "Intel Clear" )) + (pt 1376 72) + (pt 1424 72) + (bus) +) +(connector + (text "s4" (rect 1386 72 1396 89)(font "Intel Clear" )) + (pt 1376 88) + (pt 1424 88) +) +(connector + (text "RAMd_wren" (rect 1386 88 1445 105)(font "Intel Clear" )) + (pt 1376 104) + (pt 1440 104) +) +(connector + (text "RAMd_en" (rect 1386 104 1433 121)(font "Intel Clear" )) + (pt 1376 120) + (pt 1424 120) +) +(connector + (text "RAMi_en" (rect 1386 120 1429 137)(font "Intel Clear" )) + (pt 1376 136) + (pt 1424 136) +) +(connector + (text "ALU_en" (rect 1386 136 1423 153)(font "Intel Clear" )) + (pt 1376 152) + (pt 1424 152) +) +(connector + (text "E2" (rect 1386 152 1397 169)(font "Intel Clear" )) + (pt 1376 168) + (pt 1424 168) +) +(connector + (text "stack_en" (rect 1386 168 1428 185)(font "Intel Clear" )) + (pt 1376 184) + (pt 1424 184) +) +(connector + (text "stack_rst" (rect 1386 184 1428 201)(font "Intel Clear" )) + (pt 1376 200) + (pt 1424 200) +) +(connector + (text "stack_rw" (rect 1386 200 1428 217)(font "Intel Clear" )) + (pt 1376 216) + (pt 1424 216) +) +(connector + (pt 856 176) + (pt 856 192) + (bus) +) +(connector + (text "Rs1[15..0]" (rect 818 160 865 177)(font "Intel Clear" )) + (pt 816 176) + (pt 856 176) + (bus) +) +(connector + (text "R1[15..0]" (rect 418 192 460 209)(font "Intel Clear" )) + (pt 408 208) + (pt 480 208) + (bus) +) +(connector + (text "R2[15..0]" (rect 418 208 460 225)(font "Intel Clear" )) + (pt 408 224) + (pt 496 224) + (bus) +) +(connector + (text "R3[15..0]" (rect 418 224 460 241)(font "Intel Clear" )) + (pt 408 240) + (pt 512 240) + (bus) +) +(connector + (text "R4[15..0]" (rect 418 240 460 257)(font "Intel Clear" )) + (pt 408 256) + (pt 528 256) + (bus) +) +(connector + (text "R5[15..0]" (rect 418 256 460 273)(font "Intel Clear" )) + (pt 408 272) + (pt 544 272) + (bus) +) +(connector + (text "R6[15..0]" (rect 418 272 460 289)(font "Intel Clear" )) + (pt 408 288) + (pt 560 288) + (bus) +) +(connector + (text "R7[15..0]" (rect 418 288 460 305)(font "Intel Clear" )) + (pt 408 304) + (pt 576 304) + (bus) +) +(connector + (pt 1416 496) + (pt 1224 496) + (bus) +) +(connector + (pt 1232 520) + (pt 1224 520) + (bus) +) +(connector + (pt 1224 520) + (pt 1224 496) + (bus) +) +(connector + (text "EXEC1" (rect 1186 616 1217 633)(font "Intel Clear" )) + (pt 1176 632) + (pt 1232 632) +) +(connector + (text "EXEC2" (rect 1186 632 1217 649)(font "Intel Clear" )) + (pt 1176 648) + (pt 1232 648) +) +(connector + (text "CARRY" (rect 1186 520 1221 537)(font "Intel Clear" )) + (pt 1176 536) + (pt 1232 536) +) +(connector + (text "Rd[15..0]" (rect 1186 536 1228 553)(font "Intel Clear" )) + (pt 1176 552) + (pt 1232 552) + (bus) +) +(connector + (text "Rs1[15..0]" (rect 1186 552 1233 569)(font "Intel Clear" )) + (pt 1176 568) + (pt 1232 568) + (bus) +) +(connector + (text "Rs2[15..0]" (rect 1186 568 1233 585)(font "Intel Clear" )) + (pt 1176 584) + (pt 1232 584) + (bus) +) +(connector + (text "instr[15..0]" (rect 1184 584 1233 601)(font "Intel Clear" )) + (pt 1176 600) + (pt 1232 600) + (bus) +) +(connector + (text "FETCH" (rect 1186 600 1217 617)(font "Intel Clear" )) + (pt 1176 616) + (pt 1232 616) +) +(connector + (pt 1416 304) + (pt 1416 496) + (bus) +) +(connector + (pt 1416 496) + (pt 1416 792) + (bus) +) +(connector + (text "PC[15..0]" (rect 1186 648 1229 665)(font "Intel Clear" )) + (pt 1232 664) + (pt 1176 664) + (bus) +) +(connector + (text "R1[15..0]" (rect 1186 664 1228 681)(font "Intel Clear" )) + (pt 1232 680) + (pt 1176 680) + (bus) +) +(connector + (text "R2[15..0]" (rect 1186 680 1228 697)(font "Intel Clear" )) + (pt 1232 696) + (pt 1176 696) + (bus) +) +(connector + (text "R3[15..0]" (rect 1186 696 1228 713)(font "Intel Clear" )) + (pt 1232 712) + (pt 1176 712) + (bus) +) +(connector + (text "R4[15..0]" (rect 1186 712 1228 729)(font "Intel Clear" )) + (pt 1232 728) + (pt 1176 728) + (bus) +) +(connector + (text "R5[15..0]" (rect 1186 728 1228 745)(font "Intel Clear" )) + (pt 1232 744) + (pt 1176 744) + (bus) +) +(connector + (text "R6[15..0]" (rect 1186 744 1228 761)(font "Intel Clear" )) + (pt 1232 760) + (pt 1176 760) + (bus) +) +(connector + (text "R7[15..0]" (rect 1186 760 1228 777)(font "Intel Clear" )) + (pt 1232 776) + (pt 1176 776) + (bus) +) (junction (pt 488 -72)) (junction (pt 856 192)) (junction (pt 872 -72)) (junction (pt 872 -32)) -(junction (pt 856 176)) (junction (pt 136 320)) (junction (pt 136 352)) (junction (pt 136 384)) @@ -2329,4 +2536,4 @@ refer to the applicable agreement for further details. (junction (pt 544 480)) (junction (pt 560 496)) (junction (pt 576 512)) -(junction (pt 1416 624)) +(junction (pt 1416 496)) diff --git a/CPUProject.qsf b/CPUProject.qsf index 867f441..69f8bc0 100644 --- a/CPUProject.qsf +++ b/CPUProject.qsf @@ -38,7 +38,7 @@ set_global_assignment -name FAMILY "Cyclone IV E" set_global_assignment -name DEVICE AUTO -set_global_assignment -name TOP_LEVEL_ENTITY mux_8x16 +set_global_assignment -name TOP_LEVEL_ENTITY test set_global_assignment -name ORIGINAL_QUARTUS_VERSION 18.1.0 set_global_assignment -name PROJECT_CREATION_TIME_DATE "12:38:11 MAY 20, 2020" set_global_assignment -name LAST_QUARTUS_VERSION "18.1.0 Standard Edition" @@ -62,8 +62,9 @@ set_global_assignment -name VERILOG_FILE min.v set_global_assignment -name VERILOG_FILE SM.v set_global_assignment -name BDF_FILE ALU_top.bdf set_global_assignment -name VERILOG_FILE mux_8x16.v +set_global_assignment -name VERILOG_FILE mux_3x16.v +set_global_assignment -name BDF_FILE test.bdf set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top -set_global_assignment -name VERILOG_FILE mux_3x16.v set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/DECODE.bsf b/DECODE.bsf index 59e6f44..fd5546f 100644 --- a/DECODE.bsf +++ b/DECODE.bsf @@ -20,9 +20,9 @@ refer to the applicable agreement for further details. */ (header "symbol" (version "1.1")) (symbol - (rect 16 16 224 352) + (rect 16 16 224 416) (text "DECODE" (rect 5 0 47 12)(font "Arial" )) - (text "inst" (rect 8 320 20 332)(font "Arial" )) + (text "inst" (rect 8 384 20 396)(font "Arial" )) (port (pt 0 32) (input) @@ -177,7 +177,28 @@ refer to the applicable agreement for further details. (text "E2" (rect 176 299 187 311)(font "Arial" )) (line (pt 208 304)(pt 192 304)(line_width 1)) ) + (port + (pt 208 320) + (output) + (text "stack_en" (rect 0 0 36 12)(font "Arial" )) + (text "stack_en" (rect 151 315 187 327)(font "Arial" )) + (line (pt 208 320)(pt 192 320)(line_width 1)) + ) + (port + (pt 208 336) + (output) + (text "stack_rst" (rect 0 0 37 12)(font "Arial" )) + (text "stack_rst" (rect 150 331 187 343)(font "Arial" )) + (line (pt 208 336)(pt 192 336)(line_width 1)) + ) + (port + (pt 208 352) + (output) + (text "stack_rw" (rect 0 0 36 12)(font "Arial" )) + (text "stack_rw" (rect 151 347 187 359)(font "Arial" )) + (line (pt 208 352)(pt 192 352)(line_width 1)) + ) (drawing - (rectangle (rect 16 16 192 320)(line_width 1)) + (rectangle (rect 16 16 192 384)(line_width 1)) ) ) diff --git a/DECODE.v b/DECODE.v index 9676be8..5b29a0a 100644 --- a/DECODE.v +++ b/DECODE.v @@ -58,15 +58,15 @@ module DECODE assign R5_en = EXEC1 & ~(UJMP | JMP | STORE | LOAD | MUL | MLA | MLS | NOP | STP | POP) & Rd[2] & ~Rd[1] & Rd[0] | EXEC2 & LOAD & Rls[2] & ~Rls[1] & Rls[0] | EXEC2 & (MUL | MLA | MLS | POP) & Rd[2] & ~Rd[1] & Rd[0]; assign R6_en = EXEC1 & ~(UJMP | JMP | STORE | LOAD | MUL | MLA | MLS | NOP | STP | POP) & Rd[2] & Rd[1] & ~Rd[0] | EXEC2 & LOAD & Rls[2] & Rls[1] & ~Rls[0] | EXEC2 & (MUL | MLA | MLS | POP) & Rd[2] & Rd[1] & ~Rd[0]; assign R7_en = EXEC1 & ~(UJMP | JMP | STORE | LOAD | MUL | MLA | MLS | NOP | STP | POP) & Rd[2] & Rd[1] & Rd[0] | EXEC2 & LOAD & Rls[2] & Rls[1] & Rls[0] | EXEC2 & (MUL | MLA | MLS | POP) & Rd[2] & Rd[1] & Rd[0]; - assign s1[2] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP) & Rs1[2]) | (STORE & Rls[2]) | (PSH & Rs1[2])); - assign s1[1] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP) & Rs1[1]) | (STORE & Rls[1]) | (PSH & Rs1[1])); - assign s1[0] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP) & Rs1[0]) | (STORE & Rls[0]) | (PSH & Rs1[0])); - assign s2[2] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP)) & Rs2[2]); - assign s2[1] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP)) & Rs2[1]); - assign s2[0] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP)) & Rs2[0]); - assign s3[2] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP)) & Rd[2]); - assign s3[1] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP)) & Rd[1]); - assign s3[0] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP)) & Rd[0]); + assign s1[2] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP | PSH | POP) & Rs1[2]) | (STORE & Rls[2]) | (PSH & Rs1[2])); + assign s1[1] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP | PSH | POP) & Rs1[1]) | (STORE & Rls[1]) | (PSH & Rs1[1])); + assign s1[0] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP | PSH | POP) & Rs1[0]) | (STORE & Rls[0]) | (PSH & Rs1[0])); + assign s2[2] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP | PSH | POP)) & Rs2[2]); + assign s2[1] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP | PSH | POP)) & Rs2[1]); + assign s2[0] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP | PSH | POP)) & Rs2[0]); + assign s3[2] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP | PSH | POP)) & Rd[2]); + assign s3[1] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP | PSH | POP)) & Rd[1]); + assign s3[0] = EXEC1 & ((~(UJMP | JMP | STORE | LOAD | NOP | STP | PSH | POP)) & Rd[0]); assign s4 = EXEC1 & ~(LOAD | STORE); assign RAMd_wren = EXEC1 & STORE; assign RAMd_en = EXEC1 & (STORE | LOAD); diff --git a/test.bdf b/test.bdf new file mode 100644 index 0000000..e016cc5 --- /dev/null +++ b/test.bdf @@ -0,0 +1,127 @@ +/* +WARNING: Do NOT edit the input and output ports in this file in a text +editor if you plan to continue editing the block that represents it in +the Block Editor! File corruption is VERY likely to occur. +*/ +/* +Copyright (C) 2018 Intel Corporation. All rights reserved. +Your use of Intel Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Intel Program License +Subscription Agreement, the Intel Quartus Prime License Agreement, +the Intel FPGA IP License Agreement, or other applicable license +agreement, including, without limitation, that your use is for +the sole purpose of programming logic devices manufactured by +Intel and sold by Intel or its authorized distributors. Please +refer to the applicable agreement for further details. +*/ +(header "graphic" (version "1.4")) +(pin + (input) + (rect 176 288 344 304) + (text "INPUT" (rect 125 0 153 10)(font "Arial" (font_size 6))) + (text "A" (rect 5 0 14 12)(font "Arial" )) + (pt 168 8) + (drawing + (line (pt 84 12)(pt 109 12)) + (line (pt 84 4)(pt 109 4)) + (line (pt 113 8)(pt 168 8)) + (line (pt 84 12)(pt 84 4)) + (line (pt 109 4)(pt 113 8)) + (line (pt 109 12)(pt 113 8)) + ) + (text "VCC" (rect 128 7 148 17)(font "Arial" (font_size 6))) +) +(pin + (input) + (rect 176 304 344 320) + (text "INPUT" (rect 125 0 153 10)(font "Arial" (font_size 6))) + (text "B" (rect 5 0 13 17)(font "Intel Clear" )) + (pt 168 8) + (drawing + (line (pt 84 12)(pt 109 12)) + (line (pt 84 4)(pt 109 4)) + (line (pt 113 8)(pt 168 8)) + (line (pt 84 12)(pt 84 4)) + (line (pt 109 4)(pt 113 8)) + (line (pt 109 12)(pt 113 8)) + ) + (text "VCC" (rect 128 7 148 17)(font "Arial" (font_size 6))) +) +(pin + (output) + (rect 464 296 640 312) + (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) + (text "OUT1" (rect 90 0 117 17)(font "Intel Clear" )) + (pt 0 8) + (drawing + (line (pt 0 8)(pt 52 8)) + (line (pt 52 4)(pt 78 4)) + (line (pt 52 12)(pt 78 12)) + (line (pt 52 12)(pt 52 4)) + (line (pt 78 4)(pt 82 8)) + (line (pt 82 8)(pt 78 12)) + (line (pt 78 12)(pt 82 8)) + ) +) +(pin + (output) + (rect 536 208 712 224) + (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) + (text "OUT2" (rect 90 0 118 12)(font "Arial" )) + (pt 0 8) + (drawing + (line (pt 0 8)(pt 52 8)) + (line (pt 52 4)(pt 78 4)) + (line (pt 52 12)(pt 78 12)) + (line (pt 52 12)(pt 52 4)) + (line (pt 78 4)(pt 82 8)) + (line (pt 82 8)(pt 78 12)) + (line (pt 78 12)(pt 82 8)) + ) +) +(symbol + (rect 344 280 408 328) + (text "AND2" (rect 1 0 25 10)(font "Arial" (font_size 6))) + (text "inst" (rect 3 37 20 49)(font "Arial" )) + (port + (pt 0 16) + (input) + (text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) + (text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) + (line (pt 0 16)(pt 14 16)) + ) + (port + (pt 0 32) + (input) + (text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) + (text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) + (line (pt 0 32)(pt 14 32)) + ) + (port + (pt 64 24) + (output) + (text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) + (text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) + (line (pt 42 24)(pt 64 24)) + ) + (drawing + (line (pt 14 12)(pt 30 12)) + (line (pt 14 37)(pt 31 37)) + (line (pt 14 12)(pt 14 37)) + (arc (pt 31 37)(pt 30 12)(rect 18 12 43 37)) + ) +) +(connector + (text "hi" (rect 418 288 426 305)(font "Intel Clear" )) + (pt 408 304) + (pt 464 304) +) +(connector + (text "hi" (rect 522 200 530 217)(font "Intel Clear" )) + (pt 536 216) + (pt 512 216) +)