ELEC40006-P1-CW/CPUProject.bdf
2020-06-04 16:33:27 +01:00

2278 lines
51 KiB
Plaintext

/*
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 192 752 360 768)
(text "INPUT" (rect 125 0 153 10)(font "Arial" (font_size 6)))
(text "CLK" (rect 5 0 26 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
(output)
(rect 1096 512 1272 528)
(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)
(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 1096 544 1272 560)
(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)
(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 1096 560 1272 576)
(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)
(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 1096 528 1272 544)
(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)
(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 1096 576 1272 592)
(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)
(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 1096 592 1272 608)
(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)
(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 1096 608 1272 624)
(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)
(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 1096 624 1272 640)
(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)
(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 1096 496 1272 512)
(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)
(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 632 112 816 336)
(text "mux_8x16" (rect 5 0 67 19)(font "Intel Clear" (font_size 8)))
(text "MUX1" (rect 8 203 37 220)(font "Intel Clear" ))
(port
(pt 0 32)
(input)
(text "s0" (rect 0 0 14 19)(font "Intel Clear" (font_size 8)))
(text "s0" (rect 21 27 35 46)(font "Intel Clear" (font_size 8)))
(line (pt 0 32)(pt 16 32))
)
(port
(pt 0 48)
(input)
(text "s1" (rect 0 0 14 19)(font "Intel Clear" (font_size 8)))
(text "s1" (rect 21 43 35 62)(font "Intel Clear" (font_size 8)))
(line (pt 0 48)(pt 16 48))
)
(port
(pt 0 64)
(input)
(text "s2" (rect 0 0 14 19)(font "Intel Clear" (font_size 8)))
(text "s2" (rect 21 59 35 78)(font "Intel Clear" (font_size 8)))
(line (pt 0 64)(pt 16 64))
)
(port
(pt 0 80)
(input)
(text "in0[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in0[15..0]" (rect 21 75 78 94)(font "Intel Clear" (font_size 8)))
(line (pt 0 80)(pt 16 80)(line_width 3))
)
(port
(pt 0 96)
(input)
(text "in1[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in1[15..0]" (rect 21 91 78 110)(font "Intel Clear" (font_size 8)))
(line (pt 0 96)(pt 16 96)(line_width 3))
)
(port
(pt 0 112)
(input)
(text "in2[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in2[15..0]" (rect 21 107 78 126)(font "Intel Clear" (font_size 8)))
(line (pt 0 112)(pt 16 112)(line_width 3))
)
(port
(pt 0 128)
(input)
(text "in3[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in3[15..0]" (rect 21 123 78 142)(font "Intel Clear" (font_size 8)))
(line (pt 0 128)(pt 16 128)(line_width 3))
)
(port
(pt 0 144)
(input)
(text "in4[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in4[15..0]" (rect 21 139 78 158)(font "Intel Clear" (font_size 8)))
(line (pt 0 144)(pt 16 144)(line_width 3))
)
(port
(pt 0 160)
(input)
(text "in5[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in5[15..0]" (rect 21 155 78 174)(font "Intel Clear" (font_size 8)))
(line (pt 0 160)(pt 16 160)(line_width 3))
)
(port
(pt 0 176)
(input)
(text "in6[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in6[15..0]" (rect 21 171 78 190)(font "Intel Clear" (font_size 8)))
(line (pt 0 176)(pt 16 176)(line_width 3))
)
(port
(pt 0 192)
(input)
(text "in7[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in7[15..0]" (rect 21 187 78 206)(font "Intel Clear" (font_size 8)))
(line (pt 0 192)(pt 16 192)(line_width 3))
)
(port
(pt 184 32)
(output)
(text "result[15..0]" (rect 0 0 71 19)(font "Intel Clear" (font_size 8)))
(text "result[15..0]" (rect 92 27 163 46)(font "Intel Clear" (font_size 8)))
(line (pt 184 32)(pt 168 32)(line_width 3))
)
(drawing
(rectangle (rect 16 16 168 208))
)
)
(symbol
(rect 632 336 816 560)
(text "mux_8x16" (rect 5 0 67 19)(font "Intel Clear" (font_size 8)))
(text "MUX2" (rect 8 203 37 220)(font "Intel Clear" ))
(port
(pt 0 32)
(input)
(text "s0" (rect 0 0 14 19)(font "Intel Clear" (font_size 8)))
(text "s0" (rect 21 27 35 46)(font "Intel Clear" (font_size 8)))
(line (pt 0 32)(pt 16 32))
)
(port
(pt 0 48)
(input)
(text "s1" (rect 0 0 14 19)(font "Intel Clear" (font_size 8)))
(text "s1" (rect 21 43 35 62)(font "Intel Clear" (font_size 8)))
(line (pt 0 48)(pt 16 48))
)
(port
(pt 0 64)
(input)
(text "s2" (rect 0 0 14 19)(font "Intel Clear" (font_size 8)))
(text "s2" (rect 21 59 35 78)(font "Intel Clear" (font_size 8)))
(line (pt 0 64)(pt 16 64))
)
(port
(pt 0 80)
(input)
(text "in0[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in0[15..0]" (rect 21 75 78 94)(font "Intel Clear" (font_size 8)))
(line (pt 0 80)(pt 16 80)(line_width 3))
)
(port
(pt 0 96)
(input)
(text "in1[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in1[15..0]" (rect 21 91 78 110)(font "Intel Clear" (font_size 8)))
(line (pt 0 96)(pt 16 96)(line_width 3))
)
(port
(pt 0 112)
(input)
(text "in2[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in2[15..0]" (rect 21 107 78 126)(font "Intel Clear" (font_size 8)))
(line (pt 0 112)(pt 16 112)(line_width 3))
)
(port
(pt 0 128)
(input)
(text "in3[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in3[15..0]" (rect 21 123 78 142)(font "Intel Clear" (font_size 8)))
(line (pt 0 128)(pt 16 128)(line_width 3))
)
(port
(pt 0 144)
(input)
(text "in4[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in4[15..0]" (rect 21 139 78 158)(font "Intel Clear" (font_size 8)))
(line (pt 0 144)(pt 16 144)(line_width 3))
)
(port
(pt 0 160)
(input)
(text "in5[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in5[15..0]" (rect 21 155 78 174)(font "Intel Clear" (font_size 8)))
(line (pt 0 160)(pt 16 160)(line_width 3))
)
(port
(pt 0 176)
(input)
(text "in6[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in6[15..0]" (rect 21 171 78 190)(font "Intel Clear" (font_size 8)))
(line (pt 0 176)(pt 16 176)(line_width 3))
)
(port
(pt 0 192)
(input)
(text "in7[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in7[15..0]" (rect 21 187 78 206)(font "Intel Clear" (font_size 8)))
(line (pt 0 192)(pt 16 192)(line_width 3))
)
(port
(pt 184 32)
(output)
(text "result[15..0]" (rect 0 0 71 19)(font "Intel Clear" (font_size 8)))
(text "result[15..0]" (rect 92 27 163 46)(font "Intel Clear" (font_size 8)))
(line (pt 184 32)(pt 168 32)(line_width 3))
)
(drawing
(rectangle (rect 16 16 168 208))
)
)
(symbol
(rect 632 560 816 784)
(text "mux_8x16" (rect 5 0 67 19)(font "Intel Clear" (font_size 8)))
(text "MUX3" (rect 8 203 37 220)(font "Intel Clear" ))
(port
(pt 0 32)
(input)
(text "s0" (rect 0 0 14 19)(font "Intel Clear" (font_size 8)))
(text "s0" (rect 21 27 35 46)(font "Intel Clear" (font_size 8)))
(line (pt 0 32)(pt 16 32))
)
(port
(pt 0 48)
(input)
(text "s1" (rect 0 0 14 19)(font "Intel Clear" (font_size 8)))
(text "s1" (rect 21 43 35 62)(font "Intel Clear" (font_size 8)))
(line (pt 0 48)(pt 16 48))
)
(port
(pt 0 64)
(input)
(text "s2" (rect 0 0 14 19)(font "Intel Clear" (font_size 8)))
(text "s2" (rect 21 59 35 78)(font "Intel Clear" (font_size 8)))
(line (pt 0 64)(pt 16 64))
)
(port
(pt 0 80)
(input)
(text "in0[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in0[15..0]" (rect 21 75 78 94)(font "Intel Clear" (font_size 8)))
(line (pt 0 80)(pt 16 80)(line_width 3))
)
(port
(pt 0 96)
(input)
(text "in1[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in1[15..0]" (rect 21 91 78 110)(font "Intel Clear" (font_size 8)))
(line (pt 0 96)(pt 16 96)(line_width 3))
)
(port
(pt 0 112)
(input)
(text "in2[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in2[15..0]" (rect 21 107 78 126)(font "Intel Clear" (font_size 8)))
(line (pt 0 112)(pt 16 112)(line_width 3))
)
(port
(pt 0 128)
(input)
(text "in3[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in3[15..0]" (rect 21 123 78 142)(font "Intel Clear" (font_size 8)))
(line (pt 0 128)(pt 16 128)(line_width 3))
)
(port
(pt 0 144)
(input)
(text "in4[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in4[15..0]" (rect 21 139 78 158)(font "Intel Clear" (font_size 8)))
(line (pt 0 144)(pt 16 144)(line_width 3))
)
(port
(pt 0 160)
(input)
(text "in5[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in5[15..0]" (rect 21 155 78 174)(font "Intel Clear" (font_size 8)))
(line (pt 0 160)(pt 16 160)(line_width 3))
)
(port
(pt 0 176)
(input)
(text "in6[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in6[15..0]" (rect 21 171 78 190)(font "Intel Clear" (font_size 8)))
(line (pt 0 176)(pt 16 176)(line_width 3))
)
(port
(pt 0 192)
(input)
(text "in7[15..0]" (rect 0 0 57 19)(font "Intel Clear" (font_size 8)))
(text "in7[15..0]" (rect 21 187 78 206)(font "Intel Clear" (font_size 8)))
(line (pt 0 192)(pt 16 192)(line_width 3))
)
(port
(pt 184 32)
(output)
(text "result[15..0]" (rect 0 0 71 19)(font "Intel Clear" (font_size 8)))
(text "result[15..0]" (rect 92 27 163 46)(font "Intel Clear" (font_size 8)))
(line (pt 184 32)(pt 168 32)(line_width 3))
)
(drawing
(rectangle (rect 16 16 168 208))
)
)
(symbol
(rect 1168 272 1280 360)
(text "BUSMUX" (rect 28 0 91 16)(font "Arial" (font_size 10)))
(text "MUX4" (rect 3 77 32 94)(font "Intel Clear" ))
(port
(pt 0 64)
(input)
(text "datab[WIDTH-1..0]" (rect 6 51 108 65)(font "Arial" (font_size 8)))
(text "datab[]" (rect 6 51 44 65)(font "Arial" (font_size 8)))
(line (pt 0 64)(pt 44 64)(line_width 3))
)
(port
(pt 56 88)
(input)
(text "sel" (rect 59 70 75 84)(font "Arial" (font_size 8)))
(text "sel" (rect 59 70 75 84)(font "Arial" (font_size 8)))
(line (pt 56 88)(pt 56 72))
)
(port
(pt 0 32)
(input)
(text "dataa[WIDTH-1..0]" (rect 6 19 108 33)(font "Arial" (font_size 8)))
(text "dataa[]" (rect 6 19 44 33)(font "Arial" (font_size 8)))
(line (pt 0 32)(pt 44 32)(line_width 3))
)
(port
(pt 112 48)
(output)
(text "result[WIDTH-1..0]" (rect 75 35 177 49)(font "Arial" (font_size 8)))
(text "result[]" (rect 75 35 113 49)(font "Arial" (font_size 8)))
(line (pt 68 48)(pt 112 48)(line_width 3))
)
(parameter
"WIDTH"
"16"
"Width of I/O, any integer > 0"
" 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" " 9" "10" "11" "12" "13" "14" "15" "16" "20" "24" "28" "32" "40" "48" "56" "64"
)
(drawing
(text "0" (rect 52 31 56 41)(font "Arial" (font_size 6)))
(text "1" (rect 52 55 56 65)(font "Arial" (font_size 6)))
(line (pt 68 64)(pt 68 32))
(line (pt 44 80)(pt 44 16))
(line (pt 44 16)(pt 68 32))
(line (pt 44 80)(pt 68 64))
)
(annotation_block (parameter)(rect 1280 272 1304 288))
)
(symbol
(rect 224 160 432 512)
(text "reg_file" (rect 5 0 49 19)(font "Intel Clear" (font_size 8)))
(text "REG" (rect 8 331 28 348)(font "Intel Clear" ))
(port
(pt 0 32)
(input)
(text "CLK" (rect 0 0 23 19)(font "Intel Clear" (font_size 8)))
(text "CLK" (rect 21 27 44 46)(font "Intel Clear" (font_size 8)))
(line (pt 0 32)(pt 16 32))
)
(port
(pt 0 48)
(input)
(text "R0_en" (rect 0 0 37 19)(font "Intel Clear" (font_size 8)))
(text "R0_en" (rect 21 43 58 62)(font "Intel Clear" (font_size 8)))
(line (pt 0 48)(pt 16 48))
)
(port
(pt 0 64)
(input)
(text "R0_in[15..0]" (rect 0 0 73 19)(font "Intel Clear" (font_size 8)))
(text "R0_in[15..0]" (rect 21 59 94 78)(font "Intel Clear" (font_size 8)))
(line (pt 0 64)(pt 16 64)(line_width 3))
)
(port
(pt 0 80)
(input)
(text "R0_count" (rect 0 0 55 19)(font "Intel Clear" (font_size 8)))
(text "R0_count" (rect 21 75 76 94)(font "Intel Clear" (font_size 8)))
(line (pt 0 80)(pt 16 80))
)
(port
(pt 0 96)
(input)
(text "R1_in[15..0]" (rect 0 0 73 19)(font "Intel Clear" (font_size 8)))
(text "R1_in[15..0]" (rect 21 91 94 110)(font "Intel Clear" (font_size 8)))
(line (pt 0 96)(pt 16 96)(line_width 3))
)
(port
(pt 0 112)
(input)
(text "R1_en" (rect 0 0 37 19)(font "Intel Clear" (font_size 8)))
(text "R1_en" (rect 21 107 58 126)(font "Intel Clear" (font_size 8)))
(line (pt 0 112)(pt 16 112))
)
(port
(pt 0 128)
(input)
(text "R2_in[15..0]" (rect 0 0 73 19)(font "Intel Clear" (font_size 8)))
(text "R2_in[15..0]" (rect 21 123 94 142)(font "Intel Clear" (font_size 8)))
(line (pt 0 128)(pt 16 128)(line_width 3))
)
(port
(pt 0 144)
(input)
(text "R2_en" (rect 0 0 37 19)(font "Intel Clear" (font_size 8)))
(text "R2_en" (rect 21 139 58 158)(font "Intel Clear" (font_size 8)))
(line (pt 0 144)(pt 16 144))
)
(port
(pt 0 160)
(input)
(text "R3_in[15..0]" (rect 0 0 73 19)(font "Intel Clear" (font_size 8)))
(text "R3_in[15..0]" (rect 21 155 94 174)(font "Intel Clear" (font_size 8)))
(line (pt 0 160)(pt 16 160)(line_width 3))
)
(port
(pt 0 176)
(input)
(text "R3_en" (rect 0 0 37 19)(font "Intel Clear" (font_size 8)))
(text "R3_en" (rect 21 171 58 190)(font "Intel Clear" (font_size 8)))
(line (pt 0 176)(pt 16 176))
)
(port
(pt 0 192)
(input)
(text "R4_in[15..0]" (rect 0 0 73 19)(font "Intel Clear" (font_size 8)))
(text "R4_in[15..0]" (rect 21 187 94 206)(font "Intel Clear" (font_size 8)))
(line (pt 0 192)(pt 16 192)(line_width 3))
)
(port
(pt 0 208)
(input)
(text "R4_en" (rect 0 0 37 19)(font "Intel Clear" (font_size 8)))
(text "R4_en" (rect 21 203 58 222)(font "Intel Clear" (font_size 8)))
(line (pt 0 208)(pt 16 208))
)
(port
(pt 0 224)
(input)
(text "R5_in[15..0]" (rect 0 0 73 19)(font "Intel Clear" (font_size 8)))
(text "R5_in[15..0]" (rect 21 219 94 238)(font "Intel Clear" (font_size 8)))
(line (pt 0 224)(pt 16 224)(line_width 3))
)
(port
(pt 0 240)
(input)
(text "R5_en" (rect 0 0 37 19)(font "Intel Clear" (font_size 8)))
(text "R5_en" (rect 21 235 58 254)(font "Intel Clear" (font_size 8)))
(line (pt 0 240)(pt 16 240))
)
(port
(pt 0 256)
(input)
(text "R6_in[15..0]" (rect 0 0 73 19)(font "Intel Clear" (font_size 8)))
(text "R6_in[15..0]" (rect 21 251 94 270)(font "Intel Clear" (font_size 8)))
(line (pt 0 256)(pt 16 256)(line_width 3))
)
(port
(pt 0 272)
(input)
(text "R6_en" (rect 0 0 37 19)(font "Intel Clear" (font_size 8)))
(text "R6_en" (rect 21 267 58 286)(font "Intel Clear" (font_size 8)))
(line (pt 0 272)(pt 16 272))
)
(port
(pt 0 288)
(input)
(text "R7_in[15..0]" (rect 0 0 73 19)(font "Intel Clear" (font_size 8)))
(text "R7_in[15..0]" (rect 21 283 94 302)(font "Intel Clear" (font_size 8)))
(line (pt 0 288)(pt 16 288)(line_width 3))
)
(port
(pt 0 304)
(input)
(text "R7_en" (rect 0 0 37 19)(font "Intel Clear" (font_size 8)))
(text "R7_en" (rect 21 299 58 318)(font "Intel Clear" (font_size 8)))
(line (pt 0 304)(pt 16 304))
)
(port
(pt 208 32)
(output)
(text " R0_out[15..0]" (rect 0 0 84 19)(font "Intel Clear" (font_size 8)))
(text " R0_out[15..0]" (rect 103 27 187 46)(font "Intel Clear" (font_size 8)))
(line (pt 208 32)(pt 192 32)(line_width 3))
)
(port
(pt 208 48)
(output)
(text "R1_out[15..0]" (rect 0 0 81 19)(font "Intel Clear" (font_size 8)))
(text "R1_out[15..0]" (rect 106 43 187 62)(font "Intel Clear" (font_size 8)))
(line (pt 208 48)(pt 192 48)(line_width 3))
)
(port
(pt 208 64)
(output)
(text "R2_out[15..0]" (rect 0 0 81 19)(font "Intel Clear" (font_size 8)))
(text "R2_out[15..0]" (rect 106 59 187 78)(font "Intel Clear" (font_size 8)))
(line (pt 208 64)(pt 192 64)(line_width 3))
)
(port
(pt 208 80)
(output)
(text "R3_out[15..0]" (rect 0 0 81 19)(font "Intel Clear" (font_size 8)))
(text "R3_out[15..0]" (rect 106 75 187 94)(font "Intel Clear" (font_size 8)))
(line (pt 208 80)(pt 192 80)(line_width 3))
)
(port
(pt 208 96)
(output)
(text "R4_out[15..0]" (rect 0 0 81 19)(font "Intel Clear" (font_size 8)))
(text "R4_out[15..0]" (rect 106 91 187 110)(font "Intel Clear" (font_size 8)))
(line (pt 208 96)(pt 192 96)(line_width 3))
)
(port
(pt 208 112)
(output)
(text "R5_out[15..0]" (rect 0 0 81 19)(font "Intel Clear" (font_size 8)))
(text "R5_out[15..0]" (rect 106 107 187 126)(font "Intel Clear" (font_size 8)))
(line (pt 208 112)(pt 192 112)(line_width 3))
)
(port
(pt 208 128)
(output)
(text "R6_out[15..0]" (rect 0 0 81 19)(font "Intel Clear" (font_size 8)))
(text "R6_out[15..0]" (rect 106 123 187 142)(font "Intel Clear" (font_size 8)))
(line (pt 208 128)(pt 192 128)(line_width 3))
)
(port
(pt 208 144)
(output)
(text "R7_out[15..0]" (rect 0 0 81 19)(font "Intel Clear" (font_size 8)))
(text "R7_out[15..0]" (rect 106 139 187 158)(font "Intel Clear" (font_size 8)))
(line (pt 208 144)(pt 192 144)(line_width 3))
)
(drawing
(rectangle (rect 16 16 192 336))
)
)
(symbol
(rect 536 -144 712 0)
(text "LPM_FF" (rect 19 0 78 16)(font "Arial" (font_size 10)))
(text "IR" (rect 3 133 12 150)(font "Intel Clear" ))
(port
(pt 88 144)
(input)
(text "aclr" (rect 80 113 101 127)(font "Arial" (font_size 8)))
(text "aclr" (rect 80 113 101 127)(font "Arial" (font_size 8)))
(line (pt 88 144)(pt 88 128))
(unused)
)
(port
(pt 0 24)
(input)
(text "aload" (rect 20 17 50 31)(font "Arial" (font_size 8)))
(text "aload" (rect 20 17 50 31)(font "Arial" (font_size 8)))
(line (pt 0 24)(pt 16 24))
(unused)
)
(port
(pt 88 0)
(input)
(text "aset" (rect 79 17 103 31)(font "Arial" (font_size 8)))
(text "aset" (rect 79 17 103 31)(font "Arial" (font_size 8)))
(line (pt 88 16)(pt 88 0))
(unused)
)
(port
(pt 0 88)
(input)
(text "clock" (rect 20 81 49 95)(font "Arial" (font_size 8))(invisible))
(text "clock" (rect 20 81 49 95)(font "Arial" (font_size 8))(invisible))
(line (pt 0 88)(pt 16 88))
)
(port
(pt 0 72)
(input)
(text "data[LPM_WIDTH-1..0]" (rect 20 63 146 77)(font "Arial" (font_size 8)))
(text "data[]" (rect 20 63 51 77)(font "Arial" (font_size 8)))
(line (pt 0 72)(pt 16 72)(line_width 3))
)
(port
(pt 0 104)
(input)
(text "enable" (rect 20 97 57 111)(font "Arial" (font_size 8)))
(text "enable" (rect 20 97 57 111)(font "Arial" (font_size 8)))
(line (pt 0 104)(pt 16 104))
(unused)
)
(port
(pt 0 120)
(input)
(text "sclr" (rect 20 113 41 127)(font "Arial" (font_size 8)))
(text "sclr" (rect 20 113 41 127)(font "Arial" (font_size 8)))
(line (pt 0 120)(pt 16 120))
(unused)
)
(port
(pt 0 56)
(input)
(text "sload" (rect 20 49 50 63)(font "Arial" (font_size 8)))
(text "sload" (rect 20 49 50 63)(font "Arial" (font_size 8)))
(line (pt 0 56)(pt 16 56))
)
(port
(pt 0 40)
(input)
(text "sset" (rect 20 33 44 47)(font "Arial" (font_size 8)))
(text "sset" (rect 20 33 44 47)(font "Arial" (font_size 8)))
(line (pt 0 40)(pt 16 40))
(unused)
)
(port
(pt 176 88)
(output)
(text "q[LPM_WIDTH-1..0]" (rect 144 81 252 95)(font "Arial" (font_size 8)))
(text "q[]" (rect 144 81 158 95)(font "Arial" (font_size 8)))
(line (pt 160 88)(pt 176 88)(line_width 3))
)
(parameter
"LPM_AVALUE"
""
"Unsigned value associated with the aset port"
)
(parameter
"LPM_FFTYPE"
"\"DFF\""
"Selects behavior as DFF or TFF"
"\"DFF\"" "\"TFF\""
)
(parameter
"LPM_SVALUE"
""
"Unsigned value associated with the sset port"
)
(parameter
"LPM_WIDTH"
"16"
"Width of I/O, any integer > 0"
" 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" " 9" "10" "11" "12" "13" "14" "15" "16" "20" "24" "28" "32" "40" "48" "56" "64"
)
(drawing
(line (pt 16 16)(pt 160 16))
(line (pt 16 128)(pt 160 128))
(line (pt 160 128)(pt 160 16))
(line (pt 16 128)(pt 16 16))
(line (pt 16 80)(pt 24 88))
(line (pt 24 88)(pt 16 96))
)
(annotation_block (parameter)(rect 712 -144 744 -128))
)
(symbol
(rect 744 -120 856 -32)
(text "BUSMUX" (rect 28 0 91 16)(font "Arial" (font_size 10)))
(text "MUX5" (rect 3 77 32 94)(font "Intel Clear" ))
(port
(pt 0 64)
(input)
(text "datab[WIDTH-1..0]" (rect 6 51 108 65)(font "Arial" (font_size 8)))
(text "datab[]" (rect 6 51 44 65)(font "Arial" (font_size 8)))
(line (pt 0 64)(pt 44 64)(line_width 3))
)
(port
(pt 56 88)
(input)
(text "sel" (rect 59 70 75 84)(font "Arial" (font_size 8)))
(text "sel" (rect 59 70 75 84)(font "Arial" (font_size 8)))
(line (pt 56 88)(pt 56 72))
)
(port
(pt 0 32)
(input)
(text "dataa[WIDTH-1..0]" (rect 6 19 108 33)(font "Arial" (font_size 8)))
(text "dataa[]" (rect 6 19 44 33)(font "Arial" (font_size 8)))
(line (pt 0 32)(pt 44 32)(line_width 3))
)
(port
(pt 112 48)
(output)
(text "result[WIDTH-1..0]" (rect 75 35 177 49)(font "Arial" (font_size 8)))
(text "result[]" (rect 75 35 113 49)(font "Arial" (font_size 8)))
(line (pt 68 48)(pt 112 48)(line_width 3))
)
(parameter
"WIDTH"
"16"
"Width of I/O, any integer > 0"
" 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" " 9" "10" "11" "12" "13" "14" "15" "16" "20" "24" "28" "32" "40" "48" "56" "64"
)
(drawing
(text "0" (rect 52 31 56 41)(font "Arial" (font_size 6)))
(text "1" (rect 52 55 56 65)(font "Arial" (font_size 6)))
(line (pt 68 64)(pt 68 32))
(line (pt 44 80)(pt 44 16))
(line (pt 44 16)(pt 68 32))
(line (pt 44 80)(pt 68 64))
)
(annotation_block (parameter)(rect 856 -120 888 -104))
)
(symbol
(rect 256 -144 472 0)
(text "ram_instr" (rect 81 0 144 16)(font "Arial" (font_size 10)))
(text "RAMi" (rect 8 128 33 140)(font "Arial" ))
(port
(pt 0 32)
(input)
(text "data[15..0]" (rect 0 0 60 14)(font "Arial" (font_size 8)))
(text "data[15..0]" (rect 4 18 64 32)(font "Arial" (font_size 8)))
(line (pt 0 32)(pt 88 32)(line_width 3))
)
(port
(pt 0 48)
(input)
(text "wren" (rect 0 0 30 14)(font "Arial" (font_size 8)))
(text "wren" (rect 4 34 34 48)(font "Arial" (font_size 8)))
(line (pt 0 48)(pt 88 48))
)
(port
(pt 0 64)
(input)
(text "address[10..0]" (rect 0 0 82 14)(font "Arial" (font_size 8)))
(text "address[10..0]" (rect 4 50 86 64)(font "Arial" (font_size 8)))
(line (pt 0 64)(pt 88 64)(line_width 3))
)
(port
(pt 0 112)
(input)
(text "clock" (rect 0 0 29 14)(font "Arial" (font_size 8)))
(text "clock" (rect 4 98 33 112)(font "Arial" (font_size 8)))
(line (pt 0 112)(pt 80 112))
)
(port
(pt 0 128)
(input)
(text "clken" (rect 0 0 29 14)(font "Arial" (font_size 8)))
(text "clken" (rect 4 114 33 128)(font "Arial" (font_size 8)))
(line (pt 0 128)(pt 16 128))
)
(port
(pt 216 32)
(output)
(text "q[15..0]" (rect 0 0 42 14)(font "Arial" (font_size 8)))
(text "q[15..0]" (rect 177 18 219 32)(font "Arial" (font_size 8)))
(line (pt 216 32)(pt 136 32)(line_width 3))
)
(drawing
(text "16 bits" (rect 109 24 121 57)(font "Arial" )(vertical))
(text "2048 words" (rect 120 12 132 67)(font "Arial" )(vertical))
(text "Block type: AUTO" (rect 48 130 137 142)(font "Arial" ))
(line (pt 104 24)(pt 136 24))
(line (pt 136 24)(pt 136 96))
(line (pt 136 96)(pt 104 96))
(line (pt 104 96)(pt 104 24))
(line (pt 118 58)(pt 123 63))
(line (pt 118 62)(pt 123 57))
(line (pt 88 27)(pt 96 27))
(line (pt 96 27)(pt 96 39))
(line (pt 96 39)(pt 88 39))
(line (pt 88 39)(pt 88 27))
(line (pt 88 34)(pt 90 36))
(line (pt 90 36)(pt 88 38))
(line (pt 80 36)(pt 88 36))
(line (pt 96 32)(pt 104 32)(line_width 3))
(line (pt 88 43)(pt 96 43))
(line (pt 96 43)(pt 96 55))
(line (pt 96 55)(pt 88 55))
(line (pt 88 55)(pt 88 43))
(line (pt 88 50)(pt 90 52))
(line (pt 90 52)(pt 88 54))
(line (pt 80 52)(pt 88 52))
(line (pt 96 48)(pt 104 48))
(line (pt 88 59)(pt 96 59))
(line (pt 96 59)(pt 96 71))
(line (pt 96 71)(pt 88 71))
(line (pt 88 71)(pt 88 59))
(line (pt 88 66)(pt 90 68))
(line (pt 90 68)(pt 88 70))
(line (pt 80 68)(pt 88 68))
(line (pt 96 64)(pt 104 64)(line_width 3))
(line (pt 80 112)(pt 80 36))
(line (pt 0 0)(pt 217 0))
(line (pt 217 0)(pt 217 146))
(line (pt 0 146)(pt 217 146))
(line (pt 0 0)(pt 0 146))
(line (pt 0 0)(pt 0 0))
(line (pt 0 0)(pt 0 0))
(line (pt 0 0)(pt 0 0))
(line (pt 0 0)(pt 0 0))
)
)
(symbol
(rect 936 160 1152 304)
(text "ram_data" (rect 81 0 144 16)(font "Arial" (font_size 10)))
(text "RAMd" (rect 8 128 37 140)(font "Arial" ))
(port
(pt 0 32)
(input)
(text "data[15..0]" (rect 0 0 60 14)(font "Arial" (font_size 8)))
(text "data[15..0]" (rect 4 18 64 32)(font "Arial" (font_size 8)))
(line (pt 0 32)(pt 88 32)(line_width 3))
)
(port
(pt 0 48)
(input)
(text "wren" (rect 0 0 30 14)(font "Arial" (font_size 8)))
(text "wren" (rect 4 34 34 48)(font "Arial" (font_size 8)))
(line (pt 0 48)(pt 88 48))
)
(port
(pt 0 64)
(input)
(text "address[10..0]" (rect 0 0 82 14)(font "Arial" (font_size 8)))
(text "address[10..0]" (rect 4 50 86 64)(font "Arial" (font_size 8)))
(line (pt 0 64)(pt 88 64)(line_width 3))
)
(port
(pt 0 112)
(input)
(text "clock" (rect 0 0 29 14)(font "Arial" (font_size 8)))
(text "clock" (rect 4 98 33 112)(font "Arial" (font_size 8)))
(line (pt 0 112)(pt 80 112))
)
(port
(pt 0 128)
(input)
(text "clken" (rect 0 0 29 14)(font "Arial" (font_size 8)))
(text "clken" (rect 4 114 33 128)(font "Arial" (font_size 8)))
(line (pt 0 128)(pt 16 128))
)
(port
(pt 216 32)
(output)
(text "q[15..0]" (rect 0 0 42 14)(font "Arial" (font_size 8)))
(text "q[15..0]" (rect 177 18 219 32)(font "Arial" (font_size 8)))
(line (pt 216 32)(pt 136 32)(line_width 3))
)
(drawing
(text "16 bits" (rect 109 24 121 57)(font "Arial" )(vertical))
(text "2048 words" (rect 120 12 132 67)(font "Arial" )(vertical))
(text "Block type: AUTO" (rect 48 130 137 142)(font "Arial" ))
(line (pt 104 24)(pt 136 24))
(line (pt 136 24)(pt 136 96))
(line (pt 136 96)(pt 104 96))
(line (pt 104 96)(pt 104 24))
(line (pt 118 58)(pt 123 63))
(line (pt 118 62)(pt 123 57))
(line (pt 88 27)(pt 96 27))
(line (pt 96 27)(pt 96 39))
(line (pt 96 39)(pt 88 39))
(line (pt 88 39)(pt 88 27))
(line (pt 88 34)(pt 90 36))
(line (pt 90 36)(pt 88 38))
(line (pt 80 36)(pt 88 36))
(line (pt 96 32)(pt 104 32)(line_width 3))
(line (pt 88 43)(pt 96 43))
(line (pt 96 43)(pt 96 55))
(line (pt 96 55)(pt 88 55))
(line (pt 88 55)(pt 88 43))
(line (pt 88 50)(pt 90 52))
(line (pt 90 52)(pt 88 54))
(line (pt 80 52)(pt 88 52))
(line (pt 96 48)(pt 104 48))
(line (pt 88 59)(pt 96 59))
(line (pt 96 59)(pt 96 71))
(line (pt 96 71)(pt 88 71))
(line (pt 88 71)(pt 88 59))
(line (pt 88 66)(pt 90 68))
(line (pt 90 68)(pt 88 70))
(line (pt 80 68)(pt 88 68))
(line (pt 96 64)(pt 104 64)(line_width 3))
(line (pt 80 112)(pt 80 36))
(line (pt 0 0)(pt 217 0))
(line (pt 217 0)(pt 217 146))
(line (pt 0 146)(pt 217 146))
(line (pt 0 0)(pt 0 146))
(line (pt 0 0)(pt 0 0))
(line (pt 0 0)(pt 0 0))
(line (pt 0 0)(pt 0 0))
(line (pt 0 0)(pt 0 0))
)
)
(symbol
(rect 256 16 408 128)
(text "SM" (rect 5 0 20 12)(font "Arial" ))
(text "SM" (rect 8 96 23 113)(font "Intel Clear" ))
(port
(pt 0 32)
(input)
(text "CLK" (rect 0 0 21 12)(font "Arial" ))
(text "CLK" (rect 21 27 42 39)(font "Arial" ))
(line (pt 0 32)(pt 16 32))
)
(port
(pt 0 48)
(input)
(text "E2" (rect 0 0 12 12)(font "Arial" ))
(text "E2" (rect 21 43 33 55)(font "Arial" ))
(line (pt 0 48)(pt 16 48))
)
(port
(pt 152 32)
(output)
(text "FETCH" (rect 0 0 36 12)(font "Arial" ))
(text "FETCH" (rect 101 27 137 39)(font "Arial" ))
(line (pt 152 32)(pt 136 32))
)
(port
(pt 152 48)
(output)
(text "EXEC1" (rect 0 0 34 12)(font "Arial" ))
(text "EXEC1" (rect 103 43 137 55)(font "Arial" ))
(line (pt 152 48)(pt 136 48))
)
(port
(pt 152 64)
(output)
(text "EXEC2" (rect 0 0 34 12)(font "Arial" ))
(text "EXEC2" (rect 103 59 137 71)(font "Arial" ))
(line (pt 152 64)(pt 136 64))
)
(drawing
(rectangle (rect 16 16 136 96))
)
)
(symbol
(rect 968 -184 1176 152)
(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)))
(text "ALU" (rect 8 139 28 156)(font "Intel Clear" ))
(port
(pt 0 32)
(input)
(text "ALU_en" (rect 0 0 46 19)(font "Intel Clear" (font_size 8)))
(text "ALU_en" (rect 21 27 67 46)(font "Intel Clear" (font_size 8)))
(line (pt 0 32)(pt 16 32))
)
(port
(pt 0 48)
(input)
(text "Rs1[15..0]" (rect 0 0 61 19)(font "Intel Clear" (font_size 8)))
(text "Rs1[15..0]" (rect 21 43 82 62)(font "Intel Clear" (font_size 8)))
(line (pt 0 48)(pt 16 48)(line_width 3))
)
(port
(pt 0 64)
(input)
(text "Rs2[15..0]" (rect 0 0 61 19)(font "Intel Clear" (font_size 8)))
(text "Rs2[15..0]" (rect 21 59 82 78)(font "Intel Clear" (font_size 8)))
(line (pt 0 64)(pt 16 64)(line_width 3))
)
(port
(pt 0 80)
(input)
(text "Rd[15..0]" (rect 0 0 55 19)(font "Intel Clear" (font_size 8)))
(text "Rd[15..0]" (rect 21 75 76 94)(font "Intel Clear" (font_size 8)))
(line (pt 0 80)(pt 16 80)(line_width 3))
)
(port
(pt 0 96)
(input)
(text "op[5..0]" (rect 0 0 46 19)(font "Intel Clear" (font_size 8)))
(text "op[5..0]" (rect 21 91 67 110)(font "Intel Clear" (font_size 8)))
(line (pt 0 96)(pt 16 96)(line_width 3))
)
(port
(pt 0 112)
(input)
(text "EXEC2" (rect 0 0 38 19)(font "Intel Clear" (font_size 8)))
(text "EXEC2" (rect 21 107 59 126)(font "Intel Clear" (font_size 8)))
(line (pt 0 112)(pt 16 112))
)
(port
(pt 184 32)
(output)
(text "Rout[15..0]" (rect 0 0 66 19)(font "Intel Clear" (font_size 8)))
(text "Rout[15..0]" (rect 97 27 163 46)(font "Intel Clear" (font_size 8)))
(line (pt 184 32)(pt 168 32)(line_width 3))
)
(port
(pt 184 48)
(output)
(text "COND" (rect 0 0 36 19)(font "Intel Clear" (font_size 8)))
(text "COND" (rect 127 43 163 62)(font "Intel Clear" (font_size 8)))
(line (pt 184 48)(pt 168 48))
)
(port
(pt 184 64)
(output)
(text "CARRY" (rect 0 0 41 19)(font "Intel Clear" (font_size 8)))
(text "CARRY" (rect 122 59 163 78)(font "Intel Clear" (font_size 8)))
(line (pt 184 64)(pt 168 64))
)
(drawing
(rectangle (rect 16 16 168 144))
)
)
(connector
(pt 504 416)
(pt 632 416)
(bus)
)
(connector
(pt 520 432)
(pt 632 432)
(bus)
)
(connector
(pt 536 448)
(pt 632 448)
(bus)
)
(connector
(pt 552 464)
(pt 632 464)
(bus)
)
(connector
(pt 568 480)
(pt 632 480)
(bus)
)
(connector
(pt 584 496)
(pt 632 496)
(bus)
)
(connector
(pt 600 512)
(pt 632 512)
(bus)
)
(connector
(pt 616 528)
(pt 632 528)
(bus)
)
(connector
(pt 504 640)
(pt 632 640)
(bus)
)
(connector
(pt 520 656)
(pt 632 656)
(bus)
)
(connector
(pt 536 672)
(pt 632 672)
(bus)
)
(connector
(pt 552 688)
(pt 632 688)
(bus)
)
(connector
(pt 568 704)
(pt 632 704)
(bus)
)
(connector
(pt 584 720)
(pt 632 720)
(bus)
)
(connector
(pt 600 736)
(pt 632 736)
(bus)
)
(connector
(pt 616 752)
(pt 632 752)
(bus)
)
(connector
(pt 504 416)
(pt 504 640)
(bus)
)
(connector
(pt 520 432)
(pt 520 656)
(bus)
)
(connector
(pt 536 448)
(pt 536 672)
(bus)
)
(connector
(pt 552 464)
(pt 552 688)
(bus)
)
(connector
(pt 568 480)
(pt 568 704)
(bus)
)
(connector
(pt 584 496)
(pt 584 720)
(bus)
)
(connector
(pt 600 512)
(pt 600 736)
(bus)
)
(connector
(pt 616 528)
(pt 616 752)
(bus)
)
(connector
(text "s2[1]" (rect 474 368 497 385)(font "Intel Clear" ))
(pt 632 384)
(pt 464 384)
)
(connector
(text "s2[0]" (rect 474 352 497 369)(font "Intel Clear" ))
(pt 632 368)
(pt 464 368)
)
(connector
(text "s2[2]" (rect 474 384 497 401)(font "Intel Clear" ))
(pt 632 400)
(pt 464 400)
)
(connector
(pt 592 176)
(pt 592 160)
(bus)
)
(connector
(pt 592 144)
(pt 592 160)
(bus)
)
(connector
(pt 592 128)
(pt 592 144)
(bus)
)
(connector
(pt 464 384)
(pt 464 400)
(bus)
)
(connector
(text "s3[2]" (rect 474 608 497 625)(font "Intel Clear" ))
(pt 632 624)
(pt 448 624)
)
(connector
(text "s3[0]" (rect 474 576 497 593)(font "Intel Clear" ))
(pt 448 592)
(pt 632 592)
)
(connector
(text "s3[1]" (rect 474 592 497 609)(font "Intel Clear" ))
(pt 448 608)
(pt 632 608)
)
(connector
(pt 448 608)
(pt 448 624)
(bus)
)
(connector
(pt 1280 320)
(pt 1288 320)
(bus)
)
(connector
(pt 160 792)
(pt 1288 792)
(bus)
)
(connector
(text "s4" (rect 1203 368 1220 378)(font "Intel Clear" )(vertical))
(pt 1224 360)
(pt 1224 392)
)
(connector
(pt 728 -88)
(pt 728 16)
(bus)
)
(connector
(pt 488 16)
(pt 728 16)
(bus)
)
(connector
(pt 488 -72)
(pt 536 -72)
(bus)
)
(connector
(pt 728 -88)
(pt 744 -88)
(bus)
)
(connector
(text "CLK" (rect 234 -48 254 -31)(font "Intel Clear" ))
(pt 224 -32)
(pt 256 -32)
)
(connector
(pt 488 -112)
(pt 488 -72)
(bus)
)
(connector
(pt 488 -72)
(pt 488 16)
(bus)
)
(connector
(pt 712 -56)
(pt 744 -56)
(bus)
)
(connector
(pt 448 592)
(pt 448 608)
(bus)
)
(connector
(pt 464 368)
(pt 464 384)
(bus)
)
(connector
(pt 592 128)
(pt 480 128)
(bus)
)
(connector
(pt 208 144)
(pt 504 144)
(bus)
)
(connector
(pt 256 -80)
(pt 208 -80)
(bus)
)
(connector
(pt 208 144)
(pt 208 -80)
(bus)
)
(connector
(pt 504 192)
(pt 504 416)
(bus)
)
(connector
(pt 520 208)
(pt 520 432)
(bus)
)
(connector
(pt 536 224)
(pt 536 448)
(bus)
)
(connector
(pt 552 240)
(pt 552 464)
(bus)
)
(connector
(pt 568 256)
(pt 568 480)
(bus)
)
(connector
(pt 584 272)
(pt 584 496)
(bus)
)
(connector
(pt 600 288)
(pt 600 512)
(bus)
)
(connector
(pt 616 304)
(pt 616 528)
(bus)
)
(connector
(text "R0_en" (rect 186 192 216 209)(font "Intel Clear" ))
(pt 224 208)
(pt 176 208)
)
(connector
(text "CLK" (rect 186 176 206 193)(font "Intel Clear" ))
(pt 224 192)
(pt 176 192)
)
(connector
(text "R0_count" (rect 186 224 230 241)(font "Intel Clear" ))
(pt 224 240)
(pt 176 240)
)
(connector
(text "R1_en" (rect 186 256 216 273)(font "Intel Clear" ))
(pt 224 272)
(pt 176 272)
)
(connector
(text "R2_en" (rect 186 288 216 305)(font "Intel Clear" ))
(pt 224 304)
(pt 176 304)
)
(connector
(text "R3_en" (rect 186 320 216 337)(font "Intel Clear" ))
(pt 224 336)
(pt 176 336)
)
(connector
(text "R4_en" (rect 186 352 216 369)(font "Intel Clear" ))
(pt 224 368)
(pt 176 368)
)
(connector
(text "R5_en" (rect 186 384 216 401)(font "Intel Clear" ))
(pt 224 400)
(pt 176 400)
)
(connector
(text "R6_en" (rect 186 416 216 433)(font "Intel Clear" ))
(pt 224 432)
(pt 176 432)
)
(connector
(text "R7_en" (rect 186 448 216 465)(font "Intel Clear" ))
(pt 224 464)
(pt 176 464)
)
(connector
(pt 160 224)
(pt 224 224)
(bus)
)
(connector
(pt 160 256)
(pt 224 256)
(bus)
)
(connector
(pt 160 288)
(pt 224 288)
(bus)
)
(connector
(pt 160 320)
(pt 224 320)
(bus)
)
(connector
(pt 160 352)
(pt 224 352)
(bus)
)
(connector
(pt 160 384)
(pt 224 384)
(bus)
)
(connector
(pt 160 416)
(pt 224 416)
(bus)
)
(connector
(pt 160 448)
(pt 224 448)
(bus)
)
(connector
(pt 504 192)
(pt 632 192)
(bus)
)
(connector
(pt 432 208)
(pt 520 208)
(bus)
)
(connector
(pt 520 208)
(pt 632 208)
(bus)
)
(connector
(pt 432 224)
(pt 536 224)
(bus)
)
(connector
(pt 536 224)
(pt 632 224)
(bus)
)
(connector
(pt 432 240)
(pt 552 240)
(bus)
)
(connector
(pt 552 240)
(pt 632 240)
(bus)
)
(connector
(pt 432 256)
(pt 568 256)
(bus)
)
(connector
(pt 568 256)
(pt 632 256)
(bus)
)
(connector
(pt 432 272)
(pt 584 272)
(bus)
)
(connector
(pt 584 272)
(pt 632 272)
(bus)
)
(connector
(pt 160 256)
(pt 160 288)
(bus)
)
(connector
(pt 432 288)
(pt 600 288)
(bus)
)
(connector
(pt 600 288)
(pt 632 288)
(bus)
)
(connector
(pt 616 304)
(pt 632 304)
(bus)
)
(connector
(pt 160 288)
(pt 160 320)
(bus)
)
(connector
(pt 160 320)
(pt 160 352)
(bus)
)
(connector
(pt 160 352)
(pt 160 384)
(bus)
)
(connector
(pt 160 384)
(pt 160 416)
(bus)
)
(connector
(pt 160 416)
(pt 160 448)
(bus)
)
(connector
(pt 160 448)
(pt 160 792)
(bus)
)
(connector
(pt 160 224)
(pt 160 256)
(bus)
)
(connector
(text "CLK" (rect 370 744 390 761)(font "Intel Clear" ))
(pt 360 760)
(pt 400 760)
)
(connector
(text "RAMi_en" (rect 216 -32 259 -15)(font "Intel Clear" ))
(pt 256 -16)
(pt 216 -16)
)
(connector
(pt 1168 304)
(pt 1160 304)
(bus)
)
(connector
(pt 1152 192)
(pt 1160 192)
(bus)
)
(connector
(pt 856 192)
(pt 936 192)
(bus)
)
(connector
(text "instr[10..0]" (rect 882 208 931 225)(font "Intel Clear" ))
(pt 936 224)
(pt 872 224)
(bus)
)
(connector
(text "RAMd_en" (rect 890 272 937 289)(font "Intel Clear" ))
(pt 936 288)
(pt 880 288)
)
(connector
(text "CLK" (rect 890 256 910 273)(font "Intel Clear" ))
(pt 936 272)
(pt 880 272)
)
(connector
(text "RAMd_wren" (rect 882 192 941 209)(font "Intel Clear" ))
(pt 936 208)
(pt 880 208)
)
(connector
(pt 872 -72)
(pt 872 224)
(bus)
)
(connector
(pt 1160 192)
(pt 1160 304)
(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 472 -112)
(pt 488 -112)
(bus)
)
(connector
(pt 432 304)
(pt 616 304)
(bus)
)
(connector
(text "s2[2..0]" (rect 446 103 463 137)(font "Intel Clear" )(vertical))
(pt 464 104)
(pt 464 368)
(bus)
)
(connector
(text "s1[2..0]" (rect 461 104 478 138)(font "Intel Clear" )(vertical))
(pt 480 128)
(pt 480 104)
(bus)
)
(connector
(text "s3[2..0]" (rect 429 102 446 136)(font "Intel Clear" )(vertical))
(pt 448 104)
(pt 448 592)
(bus)
)
(connector
(text "s1[0]" (rect 602 128 625 145)(font "Intel Clear" ))
(pt 632 144)
(pt 592 144)
)
(connector
(text "s1[1]" (rect 602 144 625 161)(font "Intel Clear" ))
(pt 632 160)
(pt 592 160)
)
(connector
(text "s1[2]" (rect 602 160 625 177)(font "Intel Clear" ))
(pt 632 176)
(pt 592 176)
)
(connector
(text "PC[15..0]" (rect 442 176 485 193)(font "Intel Clear" ))
(pt 432 192)
(pt 504 192)
(bus)
)
(connector
(text "PC[10..0]" (rect 488 145 505 188)(font "Intel Clear" )(vertical))
(pt 504 144)
(pt 504 192)
(bus)
)
(connector
(text "FETCH" (rect 418 32 449 49)(font "Intel Clear" ))
(pt 408 48)
(pt 448 48)
)
(connector
(text "CLK" (rect 236 32 256 49)(font "Intel Clear" ))
(pt 256 48)
(pt 224 48)
)
(connector
(text "E2" (rect 234 48 245 65)(font "Intel Clear" ))
(pt 256 64)
(pt 224 64)
)
(connector
(text "EXEC2" (rect 418 64 449 81)(font "Intel Clear" ))
(pt 408 80)
(pt 448 80)
)
(connector
(text "EXEC1" (rect 418 48 449 65)(font "Intel Clear" ))
(pt 408 64)
(pt 448 64)
)
(connector
(text "R0_count" (rect 1186 -168 1230 -151)(font "Intel Clear" ))
(pt 1176 -152)
(pt 1224 -152)
)
(connector
(text "R0_en" (rect 1186 -152 1216 -135)(font "Intel Clear" ))
(pt 1176 -136)
(pt 1224 -136)
)
(connector
(text "R1_en" (rect 1186 -136 1216 -119)(font "Intel Clear" ))
(pt 1176 -120)
(pt 1224 -120)
)
(connector
(text "R2_en" (rect 1186 -120 1216 -103)(font "Intel Clear" ))
(pt 1176 -104)
(pt 1224 -104)
)
(connector
(text "R3_en" (rect 1186 -104 1216 -87)(font "Intel Clear" ))
(pt 1176 -88)
(pt 1224 -88)
)
(connector
(text "R4_en" (rect 1186 -88 1216 -71)(font "Intel Clear" ))
(pt 1176 -72)
(pt 1224 -72)
)
(connector
(text "R5_en" (rect 1186 -72 1216 -55)(font "Intel Clear" ))
(pt 1176 -56)
(pt 1224 -56)
)
(connector
(text "R6_en" (rect 1186 -56 1216 -39)(font "Intel Clear" ))
(pt 1176 -40)
(pt 1224 -40)
)
(connector
(text "R7_en" (rect 1186 -40 1216 -23)(font "Intel Clear" ))
(pt 1176 -24)
(pt 1224 -24)
)
(connector
(text "s1[2..0]" (rect 1186 -24 1220 -7)(font "Intel Clear" ))
(pt 1176 -8)
(pt 1224 -8)
(bus)
)
(connector
(text "s2[2..0]" (rect 1186 -8 1220 9)(font "Intel Clear" ))
(pt 1176 8)
(pt 1224 8)
(bus)
)
(connector
(text "s3[2..0]" (rect 1186 8 1220 25)(font "Intel Clear" ))
(pt 1176 24)
(pt 1224 24)
(bus)
)
(connector
(text "s4" (rect 1186 24 1196 41)(font "Intel Clear" ))
(pt 1176 40)
(pt 1224 40)
)
(connector
(text "RAMd_en" (rect 1186 56 1233 73)(font "Intel Clear" ))
(pt 1176 72)
(pt 1224 72)
)
(connector
(text "RAMi_en" (rect 1186 72 1229 89)(font "Intel Clear" ))
(pt 1176 88)
(pt 1224 88)
)
(connector
(text "RAMd_wren" (rect 1186 40 1245 57)(font "Intel Clear" ))
(pt 1176 56)
(pt 1240 56)
)
(connector
(text "EXEC1" (rect 938 -152 969 -135)(font "Intel Clear" ))
(pt 968 -136)
(pt 928 -136)
)
(connector
(text "COND" (rect 938 -120 967 -103)(font "Intel Clear" ))
(pt 928 -104)
(pt 968 -104)
)
(connector
(text "ALU_en" (rect 1186 88 1223 105)(font "Intel Clear" ))
(pt 1176 104)
(pt 1224 104)
)
(connector
(text "EXEC2" (rect 938 -136 969 -119)(font "Intel Clear" ))
(pt 968 -120)
(pt 928 -120)
)
(connector
(pt 968 -152)
(pt 912 -152)
(bus)
)
(connector
(text "instr[15..10]" (rect 888 -65 905 -10)(font "Intel Clear" )(vertical))
(pt 912 -72)
(pt 912 0)
(bus)
)
(connector
(text "instr[15..0]" (rect 888 -148 905 -99)(font "Intel Clear" )(vertical))
(pt 912 -152)
(pt 912 -72)
(bus)
)
(connector
(text "EXEC1" (rect 783 -28 800 3)(font "Intel Clear" )(vertical))
(pt 800 -32)
(pt 800 8)
)
(connector
(text "E2" (rect 1186 104 1197 121)(font "Intel Clear" ))
(pt 1176 120)
(pt 1224 120)
)
(connector
(text "Rs1[15..0]" (rect 818 128 865 145)(font "Intel Clear" ))
(pt 816 144)
(pt 856 144)
(bus)
)
(connector
(text "Rd[15..0]" (rect 818 576 860 593)(font "Intel Clear" ))
(pt 816 592)
(pt 856 592)
(bus)
)
(connector
(pt 1120 336)
(pt 1168 336)
(bus)
)
(connector
(text "COND" (rect 1122 336 1151 353)(font "Intel Clear" ))
(pt 1120 352)
(pt 1152 352)
)
(connector
(pt 856 352)
(pt 936 352)
(bus)
)
(connector
(pt 856 144)
(pt 856 192)
(bus)
)
(connector
(pt 856 192)
(pt 856 352)
(bus)
)
(connector
(text "Rs2[15..0]" (rect 816 352 863 369)(font "Intel Clear" ))
(pt 816 368)
(pt 936 368)
(bus)
)
(connector
(pt 856 592)
(pt 856 384)
(bus)
)
(connector
(pt 856 384)
(pt 936 384)
(bus)
)
(connector
(text "ALU_en" (rect 890 320 927 337)(font "Intel Clear" ))
(pt 936 336)
(pt 880 336)
)
(connector
(text "EXEC2" (rect 890 400 921 417)(font "Intel Clear" ))
(pt 936 416)
(pt 880 416)
)
(connector
(text "instr[15..10]" (rect 890 384 945 401)(font "Intel Clear" ))
(pt 936 400)
(pt 880 400)
(bus)
)
(connector
(text "EXEC1" (rect 506 -104 537 -87)(font "Intel Clear" ))
(pt 536 -88)
(pt 496 -88)
)
(connector
(text "CLK" (rect 506 -72 526 -55)(font "Intel Clear" ))
(pt 536 -56)
(pt 496 -56)
)
(connector
(text "CARRY" (rect 1122 352 1157 369)(font "Intel Clear" ))
(pt 1120 368)
(pt 1152 368)
)
(connector
(text "CARRY" (rect 1050 504 1085 521)(font "Intel Clear" ))
(pt 1096 520)
(pt 1040 520)
)
(connector
(text "Rd[15..0]" (rect 1050 520 1092 537)(font "Intel Clear" ))
(pt 1096 536)
(pt 1040 536)
(bus)
)
(connector
(text "Rs1[15..0]" (rect 1050 536 1097 553)(font "Intel Clear" ))
(pt 1096 552)
(pt 1040 552)
(bus)
)
(connector
(text "Rs2[15..0]" (rect 1050 552 1097 569)(font "Intel Clear" ))
(pt 1096 568)
(pt 1040 568)
(bus)
)
(connector
(text "instr[15..0]" (rect 1048 568 1097 585)(font "Intel Clear" ))
(pt 1096 584)
(pt 1040 584)
(bus)
)
(connector
(text "FETCH" (rect 1050 584 1081 601)(font "Intel Clear" ))
(pt 1096 600)
(pt 1040 600)
)
(connector
(text "EXEC1" (rect 1050 600 1081 617)(font "Intel Clear" ))
(pt 1096 616)
(pt 1040 616)
)
(connector
(text "EXEC2" (rect 1050 616 1081 633)(font "Intel Clear" ))
(pt 1096 632)
(pt 1040 632)
)
(connector
(pt 1288 480)
(pt 1088 480)
(bus)
)
(connector
(pt 1096 504)
(pt 1088 504)
(bus)
)
(connector
(pt 1088 504)
(pt 1088 480)
(bus)
)
(connector
(pt 1288 320)
(pt 1288 480)
(bus)
)
(connector
(pt 1288 480)
(pt 1288 792)
(bus)
)
(junction (pt 504 416))
(junction (pt 504 192))
(junction (pt 520 432))
(junction (pt 536 448))
(junction (pt 552 464))
(junction (pt 568 480))
(junction (pt 584 496))
(junction (pt 600 512))
(junction (pt 616 528))
(junction (pt 592 160))
(junction (pt 464 368))
(junction (pt 464 384))
(junction (pt 592 144))
(junction (pt 448 592))
(junction (pt 448 608))
(junction (pt 488 -72))
(junction (pt 520 208))
(junction (pt 536 224))
(junction (pt 552 240))
(junction (pt 568 256))
(junction (pt 584 272))
(junction (pt 600 288))
(junction (pt 616 304))
(junction (pt 160 256))
(junction (pt 160 288))
(junction (pt 160 320))
(junction (pt 160 352))
(junction (pt 160 384))
(junction (pt 160 416))
(junction (pt 160 448))
(junction (pt 856 192))
(junction (pt 872 -72))
(junction (pt 912 -72))
(junction (pt 1288 480))