From aff07036e0896d8b0155fe5e8775b5542bfb9bc7 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Sat, 13 Jun 2020 01:41:24 +0100 Subject: [PATCH] Fixed multiplier bug --- abs.bdf | 769 ----------------------------------------- abs.bsf | 44 --- min.bsf => max_min.bsf | 36 +- max_min.v | 11 + max_min.v.bak | 11 + min.v | 7 - min.v.bak | 12 - mul16.bdf | 354 +++++++++---------- mul8.bdf | 299 ++++++++-------- mul8.bsf | 18 +- 10 files changed, 364 insertions(+), 1197 deletions(-) delete mode 100644 abs.bdf delete mode 100644 abs.bsf rename min.bsf => max_min.bsf (66%) create mode 100644 max_min.v create mode 100644 max_min.v.bak delete mode 100644 min.v delete mode 100644 min.v.bak diff --git a/abs.bdf b/abs.bdf deleted file mode 100644 index ab619c9..0000000 --- a/abs.bdf +++ /dev/null @@ -1,769 +0,0 @@ -/* -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) 2019 Intel Corporation. All rights reserved. -Your use of Intel Corporation's design tools, logic functions -and other software and tools, and any 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, at -https://fpgasoftware.intel.com/eula. -*/ -(header "graphic" (version "1.4")) -(pin - (input) - (rect 64 168 232 184) - (text "INPUT" (rect 125 0 153 10)(font "Arial" (font_size 6))) - (text "N[7..0]" (rect 5 0 40 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 1152 224 1328 240) - (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) - (text "ABS[7..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)) - ) -) -(symbol - (rect 408 160 472 208) - (text "XOR" (rect 1 0 21 10)(font "Arial" (font_size 6))) - (text "C2" (rect 3 37 15 54)(font "Intel Clear" )) - (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 11 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 11 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 49 24)(pt 64 24)) - ) - (drawing - (line (pt 14 13)(pt 25 13)) - (line (pt 14 36)(pt 25 36)) - (arc (pt 7 29)(pt 7 19)(rect -14 8 19 41)) - (arc (pt 49 24)(pt 25 13)(rect -6 13 57 76)) - (arc (pt 25 35)(pt 49 24)(rect -6 -27 57 36)) - (arc (pt 8 36)(pt 8 12)(rect -21 7 14 42)) - ) -) -(symbol - (rect 408 224 472 272) - (text "XOR" (rect 1 0 21 10)(font "Arial" (font_size 6))) - (text "C3" (rect 3 37 15 54)(font "Intel Clear" )) - (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 11 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 11 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 49 24)(pt 64 24)) - ) - (drawing - (line (pt 14 13)(pt 25 13)) - (line (pt 14 36)(pt 25 36)) - (arc (pt 7 29)(pt 7 19)(rect -14 8 19 41)) - (arc (pt 49 24)(pt 25 13)(rect -6 13 57 76)) - (arc (pt 25 35)(pt 49 24)(rect -6 -27 57 36)) - (arc (pt 8 36)(pt 8 12)(rect -21 7 14 42)) - ) -) -(symbol - (rect 408 288 472 336) - (text "XOR" (rect 1 0 21 10)(font "Arial" (font_size 6))) - (text "C4" (rect 3 37 15 54)(font "Intel Clear" )) - (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 11 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 11 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 49 24)(pt 64 24)) - ) - (drawing - (line (pt 14 13)(pt 25 13)) - (line (pt 14 36)(pt 25 36)) - (arc (pt 7 29)(pt 7 19)(rect -14 8 19 41)) - (arc (pt 49 24)(pt 25 13)(rect -6 13 57 76)) - (arc (pt 25 35)(pt 49 24)(rect -6 -27 57 36)) - (arc (pt 8 36)(pt 8 12)(rect -21 7 14 42)) - ) -) -(symbol - (rect 408 352 472 400) - (text "XOR" (rect 1 0 21 10)(font "Arial" (font_size 6))) - (text "C5" (rect 3 37 15 54)(font "Intel Clear" )) - (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 11 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 11 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 49 24)(pt 64 24)) - ) - (drawing - (line (pt 14 13)(pt 25 13)) - (line (pt 14 36)(pt 25 36)) - (arc (pt 7 29)(pt 7 19)(rect -14 8 19 41)) - (arc (pt 49 24)(pt 25 13)(rect -6 13 57 76)) - (arc (pt 25 35)(pt 49 24)(rect -6 -27 57 36)) - (arc (pt 8 36)(pt 8 12)(rect -21 7 14 42)) - ) -) -(symbol - (rect 408 416 472 464) - (text "XOR" (rect 1 0 21 10)(font "Arial" (font_size 6))) - (text "C6" (rect 3 37 15 54)(font "Intel Clear" )) - (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 11 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 11 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 49 24)(pt 64 24)) - ) - (drawing - (line (pt 14 13)(pt 25 13)) - (line (pt 14 36)(pt 25 36)) - (arc (pt 7 29)(pt 7 19)(rect -14 8 19 41)) - (arc (pt 49 24)(pt 25 13)(rect -6 13 57 76)) - (arc (pt 25 35)(pt 49 24)(rect -6 -27 57 36)) - (arc (pt 8 36)(pt 8 12)(rect -21 7 14 42)) - ) -) -(symbol - (rect 408 32 472 80) - (text "XOR" (rect 1 0 21 10)(font "Arial" (font_size 6))) - (text "C0" (rect 3 37 17 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 11 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 11 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 49 24)(pt 64 24)) - ) - (drawing - (line (pt 14 13)(pt 25 13)) - (line (pt 14 36)(pt 25 36)) - (arc (pt 7 29)(pt 7 19)(rect -14 8 19 41)) - (arc (pt 49 24)(pt 25 13)(rect -6 13 57 76)) - (arc (pt 25 35)(pt 49 24)(rect -6 -27 57 36)) - (arc (pt 8 36)(pt 8 12)(rect -21 7 14 42)) - ) -) -(symbol - (rect 408 96 472 144) - (text "XOR" (rect 1 0 21 10)(font "Arial" (font_size 6))) - (text "C1" (rect 3 37 15 54)(font "Intel Clear" )) - (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 11 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 11 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 49 24)(pt 64 24)) - ) - (drawing - (line (pt 14 13)(pt 25 13)) - (line (pt 14 36)(pt 25 36)) - (arc (pt 7 29)(pt 7 19)(rect -14 8 19 41)) - (arc (pt 49 24)(pt 25 13)(rect -6 13 57 76)) - (arc (pt 25 35)(pt 49 24)(rect -6 -27 57 36)) - (arc (pt 8 36)(pt 8 12)(rect -21 7 14 42)) - ) -) -(symbol - (rect 408 480 472 528) - (text "XOR" (rect 1 0 21 10)(font "Arial" (font_size 6))) - (text "C7" (rect 3 37 15 54)(font "Intel Clear" )) - (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 11 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 11 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 49 24)(pt 64 24)) - ) - (drawing - (line (pt 14 13)(pt 25 13)) - (line (pt 14 36)(pt 25 36)) - (arc (pt 7 29)(pt 7 19)(rect -14 8 19 41)) - (arc (pt 49 24)(pt 25 13)(rect -6 13 57 76)) - (arc (pt 25 35)(pt 49 24)(rect -6 -27 57 36)) - (arc (pt 8 36)(pt 8 12)(rect -21 7 14 42)) - ) -) -(symbol - (rect 120 288 152 304) - (text "VCC" (rect 7 0 27 10)(font "Arial" (font_size 6))) - (text "inst" (rect 3 5 20 17)(font "Arial" )(invisible)) - (port - (pt 16 16) - (output) - (text "1" (rect 19 7 24 19)(font "Courier New" (bold))(invisible)) - (text "1" (rect 19 7 24 19)(font "Courier New" (bold))(invisible)) - (line (pt 16 16)(pt 16 8)) - ) - (drawing - (line (pt 8 8)(pt 24 8)) - ) -) -(symbol - (rect 168 280 200 312) - (text "GND" (rect 8 16 29 26)(font "Arial" (font_size 6))) - (text "inst5" (rect 3 21 25 38)(font "Intel Clear" )(invisible)) - (port - (pt 16 0) - (output) - (text "1" (rect 18 0 23 12)(font "Courier New" (bold))(invisible)) - (text "1" (rect 18 0 23 12)(font "Courier New" (bold))(invisible)) - (line (pt 16 8)(pt 16 0)) - ) - (drawing - (line (pt 8 8)(pt 16 16)) - (line (pt 16 16)(pt 24 8)) - (line (pt 8 8)(pt 24 8)) - ) -) -(symbol - (rect 968 136 1128 304) - (text "LPM_ADD_SUB" (rect 37 0 149 16)(font "Arial" (font_size 10))) - (text "FA_ABS" (rect 3 156 41 173)(font "Intel Clear" )) - (port - (pt 0 144) - (input) - (text "aclr" (rect 20 130 41 144)(font "Arial" (font_size 8))) - (text "aclr" (rect 20 130 41 144)(font "Arial" (font_size 8))) - (line (pt 0 144)(pt 15 144)) - (unused) - ) - (port - (pt 0 32) - (input) - (text "add_sub" (rect 20 17 69 31)(font "Arial" (font_size 8))) - (text "add_sub" (rect 20 17 69 31)(font "Arial" (font_size 8))) - (line (pt 0 32)(pt 15 32)) - ) - (port - (pt 0 48) - (input) - (text "cin" (rect 20 34 36 48)(font "Arial" (font_size 8))) - (text "cin" (rect 20 34 36 48)(font "Arial" (font_size 8))) - (line (pt 0 48)(pt 15 48)) - (unused) - ) - (port - (pt 0 104) - (input) - (text "clken" (rect 20 90 49 104)(font "Arial" (font_size 8))) - (text "clken" (rect 20 90 49 104)(font "Arial" (font_size 8))) - (line (pt 0 104)(pt 56 104)) - (unused) - ) - (port - (pt 0 88) - (input) - (text "clock" (rect 20 74 49 88)(font "Arial" (font_size 8))) - (text "clock" (rect 20 74 49 88)(font "Arial" (font_size 8))) - (line (pt 0 88)(pt 56 88)) - (unused) - ) - (port - (pt 0 72) - (input) - (text "dataa[LPM_WIDTH-1..0]" (rect 20 57 153 71)(font "Arial" (font_size 8))) - (text "dataa[]" (rect 20 57 58 71)(font "Arial" (font_size 8))) - (line (pt 0 72)(pt 15 72)(line_width 3)) - ) - (port - (pt 0 120) - (input) - (text "datab[LPM_WIDTH-1..0]" (rect 20 105 153 119)(font "Arial" (font_size 8))) - (text "datab[]" (rect 20 105 58 119)(font "Arial" (font_size 8))) - (line (pt 0 120)(pt 15 120)(line_width 3)) - ) - (port - (pt 160 144) - (output) - (text "cout" (rect 120 129 144 143)(font "Arial" (font_size 8))) - (text "cout" (rect 120 129 144 143)(font "Arial" (font_size 8))) - (line (pt 145 144)(pt 160 144)) - (unused) - ) - (port - (pt 160 128) - (output) - (text "overflow" (rect 99 113 150 127)(font "Arial" (font_size 8))) - (text "overflow" (rect 97 113 148 127)(font "Arial" (font_size 8))) - (line (pt 145 128)(pt 160 128)) - (unused) - ) - (port - (pt 160 96) - (output) - (text "result[LPM_WIDTH-1..0]" (rect 109 81 242 95)(font "Arial" (font_size 8))) - (text "result[]" (rect 108 81 146 95)(font "Arial" (font_size 8))) - (line (pt 145 96)(pt 160 96)(line_width 3)) - ) - (parameter - "LPM_WIDTH" - "8" - "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" - (type "PARAMETER_UNSIGNED_DEC") ) - (drawing - (line (pt 16 48)(pt 72 48)) - (line (pt 16 152)(pt 144 152)) - (line (pt 16 16)(pt 144 16)) - (line (pt 16 72)(pt 56 72)(line_width 3)) - (line (pt 16 120)(pt 56 120)(line_width 3)) - (line (pt 104 96)(pt 144 96)(line_width 3)) - (line (pt 88 128)(pt 144 128)) - (line (pt 16 32)(pt 88 32)) - (line (pt 80 144)(pt 144 144)) - (line (pt 16 144)(pt 72 144)) - (line (pt 104 112)(pt 104 80)) - (line (pt 88 128)(pt 88 120)) - (line (pt 16 152)(pt 16 16)) - (line (pt 144 152)(pt 144 16)) - (line (pt 56 136)(pt 56 56)) - (line (pt 72 64)(pt 72 48)) - (line (pt 88 72)(pt 88 32)) - (line (pt 80 144)(pt 80 124)) - (line (pt 72 144)(pt 72 128)) - (line (pt 56 56)(pt 104 80)) - (line (pt 56 136)(pt 104 112)) - ) - (annotation_block (parameter)(rect 960 96 1154 134)) -) -(symbol - (rect 784 120 896 208) - (text "BUSMUX" (rect 28 0 91 16)(font "Arial" (font_size 10))) - (text "ADD1" (rect 3 77 36 91)(font "Arial" (font_size 8))) - (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" - "8" - "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" - (type "PARAMETER_UNSIGNED_DEC") ) - (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 720 80 902 118)) -) -(connector - (pt 232 176) - (pt 312 176) - (bus) -) -(connector - (text "N[0]" (rect 362 32 382 49)(font "Intel Clear" )) - (pt 384 48) - (pt 408 48) -) -(connector - (text "N[7]" (rect 362 56 382 73)(font "Intel Clear" )) - (pt 384 64) - (pt 408 64) -) -(connector - (text "N[1]" (rect 368 96 388 113)(font "Intel Clear" )) - (pt 390 112) - (pt 408 112) -) -(connector - (text "N[7]" (rect 368 112 388 129)(font "Intel Clear" )) - (pt 390 128) - (pt 408 128) -) -(connector - (text "N[7]" (rect 368 176 388 193)(font "Intel Clear" )) - (pt 390 192) - (pt 408 192) -) -(connector - (text "N[7]" (rect 368 240 388 257)(font "Intel Clear" )) - (pt 390 256) - (pt 408 256) -) -(connector - (text "N[2]" (rect 368 160 388 177)(font "Intel Clear" )) - (pt 390 176) - (pt 408 176) -) -(connector - (text "N[3]" (rect 368 224 388 241)(font "Intel Clear" )) - (pt 390 240) - (pt 408 240) -) -(connector - (text "N[4]" (rect 368 288 388 305)(font "Intel Clear" )) - (pt 390 304) - (pt 408 304) -) -(connector - (text "N[7]" (rect 368 304 388 321)(font "Intel Clear" )) - (pt 390 320) - (pt 408 320) -) -(connector - (text "N[5]" (rect 368 352 388 369)(font "Intel Clear" )) - (pt 390 368) - (pt 408 368) -) -(connector - (text "N[7]" (rect 368 368 388 385)(font "Intel Clear" )) - (pt 390 384) - (pt 408 384) -) -(connector - (text "N[7]" (rect 368 432 388 449)(font "Intel Clear" )) - (pt 390 448) - (pt 408 448) -) -(connector - (text "N[6]" (rect 368 416 388 433)(font "Intel Clear" )) - (pt 390 432) - (pt 408 432) -) -(connector - (pt 512 24) - (pt 512 56) - (bus) -) -(connector - (pt 512 56) - (pt 512 120) - (bus) -) -(connector - (pt 512 120) - (pt 512 184) - (bus) -) -(connector - (pt 512 184) - (pt 512 248) - (bus) -) -(connector - (pt 512 312) - (pt 512 376) - (bus) -) -(connector - (text "T[0]" (rect 482 40 500 57)(font "Intel Clear" )) - (pt 472 56) - (pt 512 56) -) -(connector - (text "T[1]" (rect 482 104 500 121)(font "Intel Clear" )) - (pt 472 120) - (pt 512 120) -) -(connector - (text "T[2]" (rect 482 168 500 185)(font "Intel Clear" )) - (pt 472 184) - (pt 512 184) -) -(connector - (text "T[3]" (rect 482 232 500 249)(font "Intel Clear" )) - (pt 472 248) - (pt 512 248) -) -(connector - (text "T[4]" (rect 482 296 500 313)(font "Intel Clear" )) - (pt 472 312) - (pt 512 312) -) -(connector - (text "T[5]" (rect 482 360 500 377)(font "Intel Clear" )) - (pt 472 376) - (pt 512 376) -) -(connector - (text "T[6]" (rect 482 424 500 441)(font "Intel Clear" )) - (pt 472 440) - (pt 512 440) -) -(connector - (pt 512 376) - (pt 512 440) - (bus) -) -(connector - (text "N[7]" (rect 368 496 388 513)(font "Intel Clear" )) - (pt 390 512) - (pt 408 512) -) -(connector - (text "N[7]" (rect 368 480 388 497)(font "Intel Clear" )) - (pt 390 496) - (pt 408 496) -) -(connector - (pt 512 440) - (pt 512 504) - (bus) -) -(connector - (pt 512 504) - (pt 512 520) - (bus) -) -(connector - (text "T[7]" (rect 482 488 500 505)(font "Intel Clear" )) - (pt 472 504) - (pt 512 504) -) -(connector - (pt 1128 232) - (pt 1152 232) - (bus) -) -(connector - (text "1" (rect 120 315 137 320)(font "Intel Clear" )(vertical)) - (pt 136 304) - (pt 136 320) -) -(connector - (text "0" (rect 168 273 185 278)(font "Intel Clear" )(vertical)) - (pt 184 256) - (pt 184 280) -) -(connector - (text "N[7]" (rect 824 205 841 225)(font "Intel Clear" )(vertical)) - (pt 840 208) - (pt 840 232) -) -(connector - (text "0,0,0,0,0,0,0,0" (rect 682 136 745 153)(font "Intel Clear" )) - (pt 784 152) - (pt 672 152) - (bus) -) -(connector - (text "0,0,0,0,0,0,0,1" (rect 682 168 745 185)(font "Intel Clear" )) - (pt 672 184) - (pt 784 184) - (bus) -) -(connector - (pt 896 168) - (pt 912 168) - (bus) -) -(connector - (pt 912 168) - (pt 912 208) - (bus) -) -(connector - (pt 912 208) - (pt 968 208) - (bus) -) -(connector - (text "T[7..0]" (rect 522 256 551 273)(font "Intel Clear" )) - (pt 856 272) - (pt 512 272) - (bus) -) -(connector - (pt 856 272) - (pt 856 256) - (bus) -) -(connector - (pt 512 248) - (pt 512 272) - (bus) -) -(connector - (pt 512 272) - (pt 512 312) - (bus) -) -(connector - (pt 856 256) - (pt 968 256) - (bus) -) -(connector - (text "1" (rect 954 152 959 169)(font "Intel Clear" )) - (pt 968 168) - (pt 944 168) -) -(junction (pt 512 56)) -(junction (pt 512 120)) -(junction (pt 512 184)) -(junction (pt 512 248)) -(junction (pt 512 312)) -(junction (pt 512 376)) -(junction (pt 512 440)) -(junction (pt 512 272)) -(junction (pt 512 504)) diff --git a/abs.bsf b/abs.bsf deleted file mode 100644 index f6d0608..0000000 --- a/abs.bsf +++ /dev/null @@ -1,44 +0,0 @@ -/* -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) 2019 Intel Corporation. All rights reserved. -Your use of Intel Corporation's design tools, logic functions -and other software and tools, and any 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, at -https://fpgasoftware.intel.com/eula. -*/ -(header "symbol" (version "1.2")) -(symbol - (rect 16 16 168 112) - (text "abs" (rect 5 0 26 19)(font "Intel Clear" (font_size 8))) - (text "inst" (rect 8 75 24 92)(font "Intel Clear" )) - (port - (pt 0 32) - (input) - (text "N[7..0]" (rect 0 0 40 19)(font "Intel Clear" (font_size 8))) - (text "N[7..0]" (rect 21 27 61 46)(font "Intel Clear" (font_size 8))) - (line (pt 0 32)(pt 16 32)(line_width 3)) - ) - (port - (pt 152 32) - (output) - (text "ABS[7..0]" (rect 0 0 55 19)(font "Intel Clear" (font_size 8))) - (text "ABS[7..0]" (rect 76 27 131 46)(font "Intel Clear" (font_size 8))) - (line (pt 152 32)(pt 136 32)(line_width 3)) - ) - (drawing - (rectangle (rect 16 16 136 80)) - ) -) diff --git a/min.bsf b/max_min.bsf similarity index 66% rename from min.bsf rename to max_min.bsf index 5a7c022..bd160c7 100644 --- a/min.bsf +++ b/max_min.bsf @@ -21,38 +21,38 @@ https://fpgasoftware.intel.com/eula. */ (header "symbol" (version "1.1")) (symbol - (rect 16 16 176 128) - (text "min" (rect 5 0 19 12)(font "Arial" )) - (text "inst" (rect 8 96 20 108)(font "Arial" )) + (rect 16 16 200 96) + (text "max_min" (rect 5 0 42 12)(font "Arial" )) + (text "inst" (rect 8 64 20 76)(font "Arial" )) (port (pt 0 32) (input) - (text "sign" (rect 0 0 15 12)(font "Arial" )) - (text "sign" (rect 21 27 36 39)(font "Arial" )) - (line (pt 0 32)(pt 16 32)(line_width 1)) + (text "a[7..0]" (rect 0 0 24 12)(font "Arial" )) + (text "a[7..0]" (rect 21 27 45 39)(font "Arial" )) + (line (pt 0 32)(pt 16 32)(line_width 3)) ) (port (pt 0 48) (input) - (text "a[7..0]" (rect 0 0 24 12)(font "Arial" )) - (text "a[7..0]" (rect 21 43 45 55)(font "Arial" )) + (text "b[7..0]" (rect 0 0 24 12)(font "Arial" )) + (text "b[7..0]" (rect 21 43 45 55)(font "Arial" )) (line (pt 0 48)(pt 16 48)(line_width 3)) ) (port - (pt 0 64) - (input) - (text "b[7..0]" (rect 0 0 24 12)(font "Arial" )) - (text "b[7..0]" (rect 21 59 45 71)(font "Arial" )) - (line (pt 0 64)(pt 16 64)(line_width 3)) + (pt 184 32) + (output) + (text "maximum[7..0]" (rect 0 0 60 12)(font "Arial" )) + (text "maximum[7..0]" (rect 103 27 163 39)(font "Arial" )) + (line (pt 184 32)(pt 168 32)(line_width 3)) ) (port - (pt 160 32) + (pt 184 48) (output) - (text "num[7..0]" (rect 0 0 37 12)(font "Arial" )) - (text "num[7..0]" (rect 102 27 139 39)(font "Arial" )) - (line (pt 160 32)(pt 144 32)(line_width 3)) + (text "minimum[7..0]" (rect 0 0 56 12)(font "Arial" )) + (text "minimum[7..0]" (rect 107 43 163 55)(font "Arial" )) + (line (pt 184 48)(pt 168 48)(line_width 3)) ) (drawing - (rectangle (rect 16 16 144 96)(line_width 1)) + (rectangle (rect 16 16 168 64)(line_width 1)) ) ) diff --git a/max_min.v b/max_min.v new file mode 100644 index 0000000..8ea1773 --- /dev/null +++ b/max_min.v @@ -0,0 +1,11 @@ +module max_min(a, b, maximum, minimum); + +input unsigned [7:0] a; +input unsigned [7:0] b; +output unsigned [7:0] maximum; +output unsigned [7:0] minimum; + +assign minimum = (ab) ? a:b; + +endmodule \ No newline at end of file diff --git a/max_min.v.bak b/max_min.v.bak new file mode 100644 index 0000000..ec205cc --- /dev/null +++ b/max_min.v.bak @@ -0,0 +1,11 @@ +module min_max(a, b, minimum, maximum); + +input unsigned [7..0] a; +input unsigned [7..0] b; +output unsigned [7..0] minimum; +output unsigned [7..0] maximum; + +assign minimum = (ab) ? a:b; + +endmodule \ No newline at end of file diff --git a/min.v b/min.v deleted file mode 100644 index 1ca5b39..0000000 --- a/min.v +++ /dev/null @@ -1,7 +0,0 @@ -module min(sign, a, b, num); - input sign; - input [7:0] a; - input [7:0] b; - output [7:0] num; - assign num = sign ? a[7:0]:b[7:0]; -endmodule diff --git a/min.v.bak b/min.v.bak deleted file mode 100644 index c07952b..0000000 --- a/min.v.bak +++ /dev/null @@ -1,12 +0,0 @@ -module MIN( - input sign, - input a[7..0], - input b[7..0], - output [7..0] num; -); - -assign num = sign ? a[7..0]:b[7..0] - - - -endmodule diff --git a/mul16.bdf b/mul16.bdf index 024ecc3..0ba7f7e 100644 --- a/mul16.bdf +++ b/mul16.bdf @@ -145,7 +145,7 @@ https://fpgasoftware.intel.com/eula. (pt 160 144) (output) (text "cout" (rect 120 129 144 143)(font "Arial" (font_size 8))) - (text "cout" (rect 120 129 140 143)(font "Arial" (font_size 8))) + (text "cout" (rect 120 129 144 143)(font "Arial" (font_size 8))) (line (pt 145 144)(pt 160 144)) (unused) ) @@ -153,7 +153,7 @@ https://fpgasoftware.intel.com/eula. (pt 160 128) (output) (text "overflow" (rect 99 113 150 127)(font "Arial" (font_size 8))) - (text "overflow" (rect 97 113 140 127)(font "Arial" (font_size 8))) + (text "overflow" (rect 97 113 148 127)(font "Arial" (font_size 8))) (line (pt 145 128)(pt 160 128)) (unused) ) @@ -161,7 +161,7 @@ https://fpgasoftware.intel.com/eula. (pt 160 96) (output) (text "result[LPM_WIDTH-1..0]" (rect 109 81 242 95)(font "Arial" (font_size 8))) - (text "result[]" (rect 108 81 140 95)(font "Arial" (font_size 8))) + (text "result[]" (rect 108 81 146 95)(font "Arial" (font_size 8))) (line (pt 145 96)(pt 160 96)(line_width 3)) ) (parameter @@ -286,7 +286,7 @@ https://fpgasoftware.intel.com/eula. (pt 160 144) (output) (text "cout" (rect 120 129 144 143)(font "Arial" (font_size 8))) - (text "cout" (rect 120 129 140 143)(font "Arial" (font_size 8))) + (text "cout" (rect 120 129 144 143)(font "Arial" (font_size 8))) (line (pt 145 144)(pt 160 144)) (unused) ) @@ -294,7 +294,7 @@ https://fpgasoftware.intel.com/eula. (pt 160 128) (output) (text "overflow" (rect 99 113 150 127)(font "Arial" (font_size 8))) - (text "overflow" (rect 97 113 140 127)(font "Arial" (font_size 8))) + (text "overflow" (rect 97 113 148 127)(font "Arial" (font_size 8))) (line (pt 145 128)(pt 160 128)) (unused) ) @@ -302,7 +302,7 @@ https://fpgasoftware.intel.com/eula. (pt 160 96) (output) (text "result[LPM_WIDTH-1..0]" (rect 109 81 242 95)(font "Arial" (font_size 8))) - (text "result[]" (rect 108 81 140 95)(font "Arial" (font_size 8))) + (text "result[]" (rect 108 81 146 95)(font "Arial" (font_size 8))) (line (pt 145 96)(pt 160 96)(line_width 3)) ) (parameter @@ -427,7 +427,7 @@ https://fpgasoftware.intel.com/eula. (pt 160 144) (output) (text "cout" (rect 120 129 144 143)(font "Arial" (font_size 8))) - (text "cout" (rect 120 129 140 143)(font "Arial" (font_size 8))) + (text "cout" (rect 120 129 144 143)(font "Arial" (font_size 8))) (line (pt 145 144)(pt 160 144)) (unused) ) @@ -435,7 +435,7 @@ https://fpgasoftware.intel.com/eula. (pt 160 128) (output) (text "overflow" (rect 99 113 150 127)(font "Arial" (font_size 8))) - (text "overflow" (rect 97 113 140 127)(font "Arial" (font_size 8))) + (text "overflow" (rect 97 113 148 127)(font "Arial" (font_size 8))) (line (pt 145 128)(pt 160 128)) (unused) ) @@ -443,7 +443,7 @@ https://fpgasoftware.intel.com/eula. (pt 160 96) (output) (text "result[LPM_WIDTH-1..0]" (rect 109 81 242 95)(font "Arial" (font_size 8))) - (text "result[]" (rect 108 81 140 95)(font "Arial" (font_size 8))) + (text "result[]" (rect 108 81 146 95)(font "Arial" (font_size 8))) (line (pt 145 96)(pt 160 96)(line_width 3)) ) (parameter @@ -507,150 +507,6 @@ https://fpgasoftware.intel.com/eula. ) (annotation_block (parameter)(rect 1728 48 2038 181)) ) -(symbol - (rect 648 56 816 152) - (text "mul8" (rect 5 0 35 19)(font "Intel Clear" (font_size 8))) - (text "MUL1" (rect 8 75 36 92)(font "Intel Clear" )) - (port - (pt 0 32) - (input) - (text "CLOCK" (rect 0 0 41 19)(font "Intel Clear" (font_size 8))) - (text "CLOCK" (rect 21 27 62 46)(font "Intel Clear" (font_size 8))) - (line (pt 0 32)(pt 16 32)) - ) - (port - (pt 0 48) - (input) - (text "A[7..0]" (rect 0 0 38 19)(font "Intel Clear" (font_size 8))) - (text "A[7..0]" (rect 21 43 59 62)(font "Intel Clear" (font_size 8))) - (line (pt 0 48)(pt 16 48)(line_width 3)) - ) - (port - (pt 0 64) - (input) - (text "B[7..0]" (rect 0 0 38 19)(font "Intel Clear" (font_size 8))) - (text "B[7..0]" (rect 21 59 59 78)(font "Intel Clear" (font_size 8))) - (line (pt 0 64)(pt 16 64)(line_width 3)) - ) - (port - (pt 168 32) - (output) - (text "PROD[15..0]" (rect 0 0 74 19)(font "Intel Clear" (font_size 8))) - (text "PROD[15..0]" (rect 73 27 147 46)(font "Intel Clear" (font_size 8))) - (line (pt 168 32)(pt 152 32)(line_width 3)) - ) - (drawing - (rectangle (rect 16 16 152 80)) - ) -) -(symbol - (rect 648 176 816 272) - (text "mul8" (rect 5 0 35 19)(font "Intel Clear" (font_size 8))) - (text "MUL2" (rect 8 75 36 92)(font "Intel Clear" )) - (port - (pt 0 32) - (input) - (text "CLOCK" (rect 0 0 41 19)(font "Intel Clear" (font_size 8))) - (text "CLOCK" (rect 21 27 62 46)(font "Intel Clear" (font_size 8))) - (line (pt 0 32)(pt 16 32)) - ) - (port - (pt 0 48) - (input) - (text "A[7..0]" (rect 0 0 38 19)(font "Intel Clear" (font_size 8))) - (text "A[7..0]" (rect 21 43 59 62)(font "Intel Clear" (font_size 8))) - (line (pt 0 48)(pt 16 48)(line_width 3)) - ) - (port - (pt 0 64) - (input) - (text "B[7..0]" (rect 0 0 38 19)(font "Intel Clear" (font_size 8))) - (text "B[7..0]" (rect 21 59 59 78)(font "Intel Clear" (font_size 8))) - (line (pt 0 64)(pt 16 64)(line_width 3)) - ) - (port - (pt 168 32) - (output) - (text "PROD[15..0]" (rect 0 0 74 19)(font "Intel Clear" (font_size 8))) - (text "PROD[15..0]" (rect 73 27 147 46)(font "Intel Clear" (font_size 8))) - (line (pt 168 32)(pt 152 32)(line_width 3)) - ) - (drawing - (rectangle (rect 16 16 152 80)) - ) -) -(symbol - (rect 648 288 816 384) - (text "mul8" (rect 5 0 35 19)(font "Intel Clear" (font_size 8))) - (text "MUL3" (rect 8 75 36 92)(font "Intel Clear" )) - (port - (pt 0 32) - (input) - (text "CLOCK" (rect 0 0 41 19)(font "Intel Clear" (font_size 8))) - (text "CLOCK" (rect 21 27 62 46)(font "Intel Clear" (font_size 8))) - (line (pt 0 32)(pt 16 32)) - ) - (port - (pt 0 48) - (input) - (text "A[7..0]" (rect 0 0 38 19)(font "Intel Clear" (font_size 8))) - (text "A[7..0]" (rect 21 43 59 62)(font "Intel Clear" (font_size 8))) - (line (pt 0 48)(pt 16 48)(line_width 3)) - ) - (port - (pt 0 64) - (input) - (text "B[7..0]" (rect 0 0 38 19)(font "Intel Clear" (font_size 8))) - (text "B[7..0]" (rect 21 59 59 78)(font "Intel Clear" (font_size 8))) - (line (pt 0 64)(pt 16 64)(line_width 3)) - ) - (port - (pt 168 32) - (output) - (text "PROD[15..0]" (rect 0 0 74 19)(font "Intel Clear" (font_size 8))) - (text "PROD[15..0]" (rect 73 27 147 46)(font "Intel Clear" (font_size 8))) - (line (pt 168 32)(pt 152 32)(line_width 3)) - ) - (drawing - (rectangle (rect 16 16 152 80)) - ) -) -(symbol - (rect 648 392 816 488) - (text "mul8" (rect 5 0 35 19)(font "Intel Clear" (font_size 8))) - (text "MUL4" (rect 8 75 36 92)(font "Intel Clear" )) - (port - (pt 0 32) - (input) - (text "CLOCK" (rect 0 0 41 19)(font "Intel Clear" (font_size 8))) - (text "CLOCK" (rect 21 27 62 46)(font "Intel Clear" (font_size 8))) - (line (pt 0 32)(pt 16 32)) - ) - (port - (pt 0 48) - (input) - (text "A[7..0]" (rect 0 0 38 19)(font "Intel Clear" (font_size 8))) - (text "A[7..0]" (rect 21 43 59 62)(font "Intel Clear" (font_size 8))) - (line (pt 0 48)(pt 16 48)(line_width 3)) - ) - (port - (pt 0 64) - (input) - (text "B[7..0]" (rect 0 0 38 19)(font "Intel Clear" (font_size 8))) - (text "B[7..0]" (rect 21 59 59 78)(font "Intel Clear" (font_size 8))) - (line (pt 0 64)(pt 16 64)(line_width 3)) - ) - (port - (pt 168 32) - (output) - (text "PROD[15..0]" (rect 0 0 74 19)(font "Intel Clear" (font_size 8))) - (text "PROD[15..0]" (rect 73 27 147 46)(font "Intel Clear" (font_size 8))) - (line (pt 168 32)(pt 152 32)(line_width 3)) - ) - (drawing - (rectangle (rect 16 16 152 80)) - ) -) (symbol (rect 168 160 200 192) (text "GND" (rect 8 16 29 26)(font "Arial" (font_size 6))) @@ -668,6 +524,150 @@ https://fpgasoftware.intel.com/eula. (line (pt 8 8)(pt 24 8)) ) ) +(symbol + (rect 648 56 848 152) + (text "mul8" (rect 5 0 35 19)(font "Intel Clear" (font_size 8))) + (text "MUL1" (rect 8 75 36 92)(font "Intel Clear" )) + (port + (pt 0 32) + (input) + (text "CLOCK" (rect 0 0 41 19)(font "Intel Clear" (font_size 8))) + (text "CLOCK" (rect 21 27 62 46)(font "Intel Clear" (font_size 8))) + (line (pt 0 32)(pt 16 32)) + ) + (port + (pt 0 48) + (input) + (text "NUM1[7..0]" (rect 0 0 68 19)(font "Intel Clear" (font_size 8))) + (text "NUM1[7..0]" (rect 21 43 89 62)(font "Intel Clear" (font_size 8))) + (line (pt 0 48)(pt 16 48)(line_width 3)) + ) + (port + (pt 0 64) + (input) + (text "NUM2[7..0]" (rect 0 0 68 19)(font "Intel Clear" (font_size 8))) + (text "NUM2[7..0]" (rect 21 59 89 78)(font "Intel Clear" (font_size 8))) + (line (pt 0 64)(pt 16 64)(line_width 3)) + ) + (port + (pt 200 32) + (output) + (text "PROD[15..0]" (rect 0 0 74 19)(font "Intel Clear" (font_size 8))) + (text "PROD[15..0]" (rect 105 27 179 46)(font "Intel Clear" (font_size 8))) + (line (pt 200 32)(pt 184 32)(line_width 3)) + ) + (drawing + (rectangle (rect 16 16 184 80)) + ) +) +(symbol + (rect 648 176 848 272) + (text "mul8" (rect 5 0 35 19)(font "Intel Clear" (font_size 8))) + (text "MUL2" (rect 8 75 36 92)(font "Intel Clear" )) + (port + (pt 0 32) + (input) + (text "CLOCK" (rect 0 0 41 19)(font "Intel Clear" (font_size 8))) + (text "CLOCK" (rect 21 27 62 46)(font "Intel Clear" (font_size 8))) + (line (pt 0 32)(pt 16 32)) + ) + (port + (pt 0 48) + (input) + (text "NUM1[7..0]" (rect 0 0 68 19)(font "Intel Clear" (font_size 8))) + (text "NUM1[7..0]" (rect 21 43 89 62)(font "Intel Clear" (font_size 8))) + (line (pt 0 48)(pt 16 48)(line_width 3)) + ) + (port + (pt 0 64) + (input) + (text "NUM2[7..0]" (rect 0 0 68 19)(font "Intel Clear" (font_size 8))) + (text "NUM2[7..0]" (rect 21 59 89 78)(font "Intel Clear" (font_size 8))) + (line (pt 0 64)(pt 16 64)(line_width 3)) + ) + (port + (pt 200 32) + (output) + (text "PROD[15..0]" (rect 0 0 74 19)(font "Intel Clear" (font_size 8))) + (text "PROD[15..0]" (rect 105 27 179 46)(font "Intel Clear" (font_size 8))) + (line (pt 200 32)(pt 184 32)(line_width 3)) + ) + (drawing + (rectangle (rect 16 16 184 80)) + ) +) +(symbol + (rect 648 288 848 384) + (text "mul8" (rect 5 0 35 19)(font "Intel Clear" (font_size 8))) + (text "MUL3" (rect 8 75 36 92)(font "Intel Clear" )) + (port + (pt 0 32) + (input) + (text "CLOCK" (rect 0 0 41 19)(font "Intel Clear" (font_size 8))) + (text "CLOCK" (rect 21 27 62 46)(font "Intel Clear" (font_size 8))) + (line (pt 0 32)(pt 16 32)) + ) + (port + (pt 0 48) + (input) + (text "NUM1[7..0]" (rect 0 0 68 19)(font "Intel Clear" (font_size 8))) + (text "NUM1[7..0]" (rect 21 43 89 62)(font "Intel Clear" (font_size 8))) + (line (pt 0 48)(pt 16 48)(line_width 3)) + ) + (port + (pt 0 64) + (input) + (text "NUM2[7..0]" (rect 0 0 68 19)(font "Intel Clear" (font_size 8))) + (text "NUM2[7..0]" (rect 21 59 89 78)(font "Intel Clear" (font_size 8))) + (line (pt 0 64)(pt 16 64)(line_width 3)) + ) + (port + (pt 200 32) + (output) + (text "PROD[15..0]" (rect 0 0 74 19)(font "Intel Clear" (font_size 8))) + (text "PROD[15..0]" (rect 105 27 179 46)(font "Intel Clear" (font_size 8))) + (line (pt 200 32)(pt 184 32)(line_width 3)) + ) + (drawing + (rectangle (rect 16 16 184 80)) + ) +) +(symbol + (rect 648 392 848 488) + (text "mul8" (rect 5 0 35 19)(font "Intel Clear" (font_size 8))) + (text "MUL4" (rect 8 75 36 92)(font "Intel Clear" )) + (port + (pt 0 32) + (input) + (text "CLOCK" (rect 0 0 41 19)(font "Intel Clear" (font_size 8))) + (text "CLOCK" (rect 21 27 62 46)(font "Intel Clear" (font_size 8))) + (line (pt 0 32)(pt 16 32)) + ) + (port + (pt 0 48) + (input) + (text "NUM1[7..0]" (rect 0 0 68 19)(font "Intel Clear" (font_size 8))) + (text "NUM1[7..0]" (rect 21 43 89 62)(font "Intel Clear" (font_size 8))) + (line (pt 0 48)(pt 16 48)(line_width 3)) + ) + (port + (pt 0 64) + (input) + (text "NUM2[7..0]" (rect 0 0 68 19)(font "Intel Clear" (font_size 8))) + (text "NUM2[7..0]" (rect 21 59 89 78)(font "Intel Clear" (font_size 8))) + (line (pt 0 64)(pt 16 64)(line_width 3)) + ) + (port + (pt 200 32) + (output) + (text "PROD[15..0]" (rect 0 0 74 19)(font "Intel Clear" (font_size 8))) + (text "PROD[15..0]" (rect 105 27 179 46)(font "Intel Clear" (font_size 8))) + (line (pt 200 32)(pt 184 32)(line_width 3)) + ) + (drawing + (rectangle (rect 16 16 184 80)) + ) +) (connector (text "B[15..8]" (rect 570 104 606 121)(font "Intel Clear" )) (pt 648 120) @@ -716,30 +716,6 @@ https://fpgasoftware.intel.com/eula. (pt 584 456) (bus) ) -(connector - (text "P1[15..0]" (rect 826 72 868 89)(font "Intel Clear" )) - (pt 816 88) - (pt 880 88) - (bus) -) -(connector - (text "P2[15..0]" (rect 826 192 868 209)(font "Intel Clear" )) - (pt 816 208) - (pt 880 208) - (bus) -) -(connector - (text "P3[15..0]" (rect 834 296 876 313)(font "Intel Clear" )) - (pt 816 320) - (pt 888 320) - (bus) -) -(connector - (text "P4[15..0]" (rect 826 408 868 425)(font "Intel Clear" )) - (pt 816 424) - (pt 888 424) - (bus) -) (connector (pt 520 88) (pt 648 88) @@ -865,6 +841,30 @@ https://fpgasoftware.intel.com/eula. (pt 216 216) (pt 520 216) ) +(connector + (text "P1[15..0]" (rect 858 72 900 89)(font "Intel Clear" )) + (pt 848 88) + (pt 912 88) + (bus) +) +(connector + (text "P2[15..0]" (rect 858 192 900 209)(font "Intel Clear" )) + (pt 848 208) + (pt 896 208) + (bus) +) +(connector + (text "P3[15..0]" (rect 858 304 900 321)(font "Intel Clear" )) + (pt 848 320) + (pt 904 320) + (bus) +) +(connector + (text "P4[15..0]" (rect 858 408 900 425)(font "Intel Clear" )) + (pt 848 424) + (pt 888 424) + (bus) +) (junction (pt 520 208)) (junction (pt 520 216)) (junction (pt 520 320)) diff --git a/mul8.bdf b/mul8.bdf index 08eaa18..35635f3 100644 --- a/mul8.bdf +++ b/mul8.bdf @@ -20,38 +20,6 @@ refer to the applicable agreement for further details, at https://fpgasoftware.intel.com/eula. */ (header "graphic" (version "1.4")) -(pin - (input) - (rect -416 152 -248 168) - (text "INPUT" (rect 125 0 153 10)(font "Arial" (font_size 6))) - (text "A[7..0]" (rect 5 0 38 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 -424 296 -256 312) - (text "INPUT" (rect 125 0 153 10)(font "Arial" (font_size 6))) - (text "B[7..0]" (rect 5 0 38 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 320 40 488 56) @@ -68,6 +36,38 @@ https://fpgasoftware.intel.com/eula. ) (text "VCC" (rect 128 7 148 17)(font "Arial" (font_size 6))) ) +(pin + (input) + (rect -752 216 -584 232) + (text "INPUT" (rect 125 0 153 10)(font "Arial" (font_size 6))) + (text "NUM1[7..0]" (rect 5 0 62 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 -752 232 -584 248) + (text "INPUT" (rect 125 0 153 10)(font "Arial" (font_size 6))) + (text "NUM2[7..0]" (rect 5 0 59 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 1584 160 1760 176) @@ -642,64 +642,6 @@ https://fpgasoftware.intel.com/eula. ) (annotation_block (parameter)(rect 1128 -8 1322 30)) ) -(symbol - (rect 312 216 464 312) - (text "abs" (rect 5 0 26 19)(font "Intel Clear" (font_size 8))) - (text "inst1" (rect 8 75 30 92)(font "Intel Clear" )) - (port - (pt 0 32) - (input) - (text "N[7..0]" (rect 0 0 40 19)(font "Intel Clear" (font_size 8))) - (text "N[7..0]" (rect 21 27 61 46)(font "Intel Clear" (font_size 8))) - (line (pt 0 32)(pt 16 32)(line_width 3)) - ) - (port - (pt 152 32) - (output) - (text "ABS[7..0]" (rect 0 0 55 19)(font "Intel Clear" (font_size 8))) - (text "ABS[7..0]" (rect 76 27 131 46)(font "Intel Clear" (font_size 8))) - (line (pt 152 32)(pt 136 32)(line_width 3)) - ) - (drawing - (rectangle (rect 16 16 136 80)) - ) -) -(symbol - (rect 360 440 520 552) - (text "min" (rect 5 0 22 12)(font "Arial" )) - (text "inst4" (rect 8 96 30 113)(font "Intel Clear" )) - (port - (pt 0 32) - (input) - (text "sign" (rect 0 0 20 12)(font "Arial" )) - (text "sign" (rect 21 27 41 39)(font "Arial" )) - (line (pt 0 32)(pt 16 32)) - ) - (port - (pt 0 48) - (input) - (text "a[7..0]" (rect 0 0 31 12)(font "Arial" )) - (text "a[7..0]" (rect 21 43 52 55)(font "Arial" )) - (line (pt 0 48)(pt 16 48)(line_width 3)) - ) - (port - (pt 0 64) - (input) - (text "b[7..0]" (rect 0 0 31 12)(font "Arial" )) - (text "b[7..0]" (rect 21 59 52 71)(font "Arial" )) - (line (pt 0 64)(pt 16 64)(line_width 3)) - ) - (port - (pt 160 32) - (output) - (text "num[7..0]" (rect 0 0 47 12)(font "Arial" )) - (text "num[7..0]" (rect 100 27 147 39)(font "Arial" )) - (line (pt 160 32)(pt 144 32)(line_width 3)) - ) - (drawing - (rectangle (rect 16 16 144 96)) - ) -) (symbol (rect 688 -48 944 72) (text "LUT" (rect 112 0 139 16)(font "Arial" (font_size 10))) @@ -774,26 +716,52 @@ https://fpgasoftware.intel.com/eula. (line (pt 0 0)(pt 0 0)) ) ) +(symbol + (rect -544 192 -360 272) + (text "max_min" (rect 5 0 49 12)(font "Arial" )) + (text "maxmin" (rect 8 64 45 81)(font "Intel Clear" )) + (port + (pt 0 32) + (input) + (text "a[7..0]" (rect 0 0 31 12)(font "Arial" )) + (text "a[7..0]" (rect 21 27 52 39)(font "Arial" )) + (line (pt 0 32)(pt 16 32)(line_width 3)) + ) + (port + (pt 0 48) + (input) + (text "b[7..0]" (rect 0 0 31 12)(font "Arial" )) + (text "b[7..0]" (rect 21 43 52 55)(font "Arial" )) + (line (pt 0 48)(pt 16 48)(line_width 3)) + ) + (port + (pt 184 32) + (output) + (text "maximum[7..0]" (rect 0 0 74 12)(font "Arial" )) + (text "maximum[7..0]" (rect 101 27 175 39)(font "Arial" )) + (line (pt 184 32)(pt 168 32)(line_width 3)) + ) + (port + (pt 184 48) + (output) + (text "minimum[7..0]" (rect 0 0 70 12)(font "Arial" )) + (text "minimum[7..0]" (rect 104 43 174 55)(font "Arial" )) + (line (pt 184 48)(pt 168 48)(line_width 3)) + ) + (drawing + (rectangle (rect 16 16 168 64)) + ) +) (connector (text "1" (rect -94 -64 -89 -47)(font "Intel Clear" )) (pt -80 -48) (pt -104 -48) ) -(connector - (pt -200 160) - (pt -248 160) - (bus) -) (connector (pt -200 -8) (pt -80 -8) (bus) ) -(connector - (pt -256 304) - (pt -160 304) - (bus) -) (connector (pt -160 40) (pt -80 40) @@ -855,11 +823,6 @@ https://fpgasoftware.intel.com/eula. (pt 1024 104) (bus) ) -(connector - (pt 976 152) - (pt 1024 152) - (bus) -) (connector (pt 1184 128) (pt 1224 128) @@ -930,38 +893,11 @@ https://fpgasoftware.intel.com/eula. (pt 728 440) (bus) ) -(connector - (text "0,S[7..1]" (rect 530 -40 567 -23)(font "Intel Clear" )) - (pt 520 -16) - (pt 688 -16) - (bus) -) -(connector - (pt 976 16) - (pt 976 152) - (bus) -) -(connector - (pt 944 16) - (pt 976 16) - (bus) -) -(connector - (pt 944 -16) - (pt 992 -16) - (bus) -) (connector (pt 992 104) (pt 992 -16) (bus) ) -(connector - (text "0,D[7..1]" (rect 538 0 576 17)(font "Intel Clear" )) - (pt 528 16) - (pt 688 16) - (bus) -) (connector (pt 688 48) (pt 488 48) @@ -973,43 +909,84 @@ https://fpgasoftware.intel.com/eula. (bus) ) (connector - (text "DIFF[7..0]" (rect 106 392 150 409)(font "Intel Clear" )) - (pt 96 408) - (pt 152 408) - (bus) -) -(connector - (text "D[7..0]" (rect 474 232 504 249)(font "Intel Clear" )) - (pt 464 248) - (pt 512 248) - (bus) -) -(connector - (text "DIFF[7..0]" (rect 282 232 326 249)(font "Intel Clear" )) - (pt 312 248) - (pt 272 248) - (bus) -) -(connector + (text "B[7..0]" (rect 530 456 560 473)(font "Intel Clear" )) (pt 520 472) (pt 800 472) (bus) ) (connector - (text "DIFF[7]" (rect 298 456 332 473)(font "Intel Clear" )) - (pt 360 472) - (pt 288 472) -) -(connector - (text "A[7..0]" (rect 298 472 328 489)(font "Intel Clear" )) - (pt 360 488) - (pt 288 488) + (text "D[7..0]" (rect 106 392 136 409)(font "Intel Clear" )) + (pt 96 408) + (pt 152 408) (bus) ) (connector - (text "B[7..0]" (rect 298 488 328 505)(font "Intel Clear" )) - (pt 360 504) - (pt 288 504) + (pt -360 224) + (pt -320 224) + (bus) +) +(connector + (pt -320 224) + (pt -320 160) + (bus) +) +(connector + (text "A[7..0]" (rect -262 144 -232 161)(font "Intel Clear" )) + (pt -320 160) + (pt -200 160) + (bus) +) +(connector + (pt -360 240) + (pt -360 304) + (bus) +) +(connector + (text "B[7..0]" (rect -270 288 -240 305)(font "Intel Clear" )) + (pt -360 304) + (pt -160 304) + (bus) +) +(connector + (pt -544 224) + (pt -584 224) + (bus) +) +(connector + (pt -544 240) + (pt -584 240) + (bus) +) +(connector + (text "0,S[7..1]" (rect 530 -40 567 -23)(font "Intel Clear" )) + (pt 520 -16) + (pt 688 -16) + (bus) +) +(connector + (text "0,D[7..1]" (rect 538 0 576 17)(font "Intel Clear" )) + (pt 528 16) + (pt 688 16) + (bus) +) +(connector + (pt 944 -16) + (pt 992 -16) + (bus) +) +(connector + (pt 944 16) + (pt 976 16) + (bus) +) +(connector + (pt 976 16) + (pt 976 152) + (bus) +) +(connector + (pt 976 152) + (pt 1024 152) (bus) ) (junction (pt -200 160)) diff --git a/mul8.bsf b/mul8.bsf index 8e5e353..42bdc3e 100644 --- a/mul8.bsf +++ b/mul8.bsf @@ -21,7 +21,7 @@ https://fpgasoftware.intel.com/eula. */ (header "symbol" (version "1.2")) (symbol - (rect 16 16 184 112) + (rect 16 16 216 112) (text "mul8" (rect 5 0 35 19)(font "Intel Clear" (font_size 8))) (text "inst" (rect 8 75 24 92)(font "Intel Clear" )) (port @@ -34,25 +34,25 @@ https://fpgasoftware.intel.com/eula. (port (pt 0 48) (input) - (text "A[7..0]" (rect 0 0 38 19)(font "Intel Clear" (font_size 8))) - (text "A[7..0]" (rect 21 43 59 62)(font "Intel Clear" (font_size 8))) + (text "NUM1[7..0]" (rect 0 0 68 19)(font "Intel Clear" (font_size 8))) + (text "NUM1[7..0]" (rect 21 43 89 62)(font "Intel Clear" (font_size 8))) (line (pt 0 48)(pt 16 48)(line_width 3)) ) (port (pt 0 64) (input) - (text "B[7..0]" (rect 0 0 38 19)(font "Intel Clear" (font_size 8))) - (text "B[7..0]" (rect 21 59 59 78)(font "Intel Clear" (font_size 8))) + (text "NUM2[7..0]" (rect 0 0 68 19)(font "Intel Clear" (font_size 8))) + (text "NUM2[7..0]" (rect 21 59 89 78)(font "Intel Clear" (font_size 8))) (line (pt 0 64)(pt 16 64)(line_width 3)) ) (port - (pt 168 32) + (pt 200 32) (output) (text "PROD[15..0]" (rect 0 0 74 19)(font "Intel Clear" (font_size 8))) - (text "PROD[15..0]" (rect 73 27 147 46)(font "Intel Clear" (font_size 8))) - (line (pt 168 32)(pt 152 32)(line_width 3)) + (text "PROD[15..0]" (rect 105 27 179 46)(font "Intel Clear" (font_size 8))) + (line (pt 200 32)(pt 184 32)(line_width 3)) ) (drawing - (rectangle (rect 16 16 152 80)) + (rectangle (rect 16 16 184 80)) ) )