{"id":1400,"date":"2026-02-21T16:48:27","date_gmt":"2026-02-21T07:48:27","guid":{"rendered":"https:\/\/rtlearner.com\/?p=1400"},"modified":"2026-02-26T10:46:12","modified_gmt":"2026-02-26T01:46:12","slug":"fpga-hardware-optimization-fixed-point-dsp-slice","status":"publish","type":"post","link":"https:\/\/rtlearner.com\/en\/fpga-hardware-optimization-fixed-point-dsp-slice\/","title":{"rendered":"Hardware Optimization - Float to Integer"},"content":{"rendered":"\n<p>\uc800\uc804\ub825 AI \ubc18\ub3c4\uccb4 \uc2a4\ud0c0\ud2b8\uc5c5\uc5d0\uc11c NPU(Neural Processing Unit) \uc544\ud0a4\ud14d\ucc98\ub97c \uc124\uacc4\ud558\uba70 \uac00\uc7a5 \ubf08\uc800\ub9ac\uac8c \ub290\ub07c\ub294 \uc810\uc740, &#8220;\uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\uc758 \uc138\uacc4\uc640 \ud558\ub4dc\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\uc758 \uc138\uacc4\ub294 \uc644\uc804\ud788 \ub2e4\ub974\ub2e4&#8221;\ub294 \uac83\uc785\ub2c8\ub2e4. \ud30c\uc774\uc36c(Python) \uae30\ubc18\uc758 AI \ud504\ub808\uc784\uc6cc\ud06c\ub294 \ubb34\ud55c\ub300\uc5d0 \uac00\uae4c\uc6b4 \uc815\ubc00\ub3c4\ub97c \uac00\uc9c4 \uc2e4\uc218(Floating-point, float32) \uc5f0\uc0b0\uc744 \uc544\ubb34\ub807\uc9c0 \uc54a\uac8c \uc218\ud589\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ubc1c\uc5f4 \ubb38\uc81c\ub97c \ucd0c\uac01\uc744 \ub2e4\ud22c\uba70 \ud574\uacb0\ud574\uc57c \ud558\ub294 \uc800\uc804\ub825 \uc5e3\uc9c0(Edge) FPGA \ud658\uacbd\uc5d0\uc11c \uc2e4\uc218 \uc5f0\uc0b0\uae30\ub97c \uadf8\ub300\ub85c \uad6c\ud604\ud558\ub294 \uac83\uc740 \uba74\uc801\uacfc \uc804\ub825 \uce21\uba74\uc5d0\uc11c &#8216;\uc790\uc0b4 \ud589\uc704&#8217;\ub098 \ub2e4\ub984\uc5c6\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uacb0\uad6d \ud558\ub4dc\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\uc758 \ud575\uc2ec \uc5ed\ub7c9\uc740 \uc774 \ubb34\uac70\uc6b4 \uc2e4\uc218 \uc5f0\uc0b0\uc744 \ube60\ub974\uace0 \uac00\ubcbc\uc6b4 \uc815\uc218 \uc5f0\uc0b0(Integer \/ Fixed-Point Arithmetic)\uc73c\ub85c \uc5bc\ub9c8\ub098 \uc6b0\uc544\ud558\uac8c \ubcc0\ud658\ud574 \ub0b4\ub290\ub0d0\uc5d0 \ub2ec\ub838\uc2b5\ub2c8\ub2e4. \uc774\ubc88 \uae00\uc5d0\uc11c\ub294 MAC(Multiply-Accumulate) \uc5f0\uc0b0\uae30\ub97c \uc124\uacc4\ud558\uba74\uc11c \uc801\uc6a9\ud588\ub358 &#8216;\uc9c4\uc9dc \ud558\ub4dc\uc6e8\uc5b4 \ucd5c\uc801\ud654&#8217; \uc2a4\ud0ac 3\uac00\uc9c0\ub97c \uc815\ub9ac\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n<style>.kb-table-of-content-nav.kb-table-of-content-id1400_585857-7d .kb-table-of-content-wrap{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}.kb-table-of-content-nav.kb-table-of-content-id1400_585857-7d .kb-table-of-contents-title-wrap{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id1400_585857-7d .kb-table-of-contents-title{font-weight:regular;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id1400_585857-7d .kb-table-of-content-wrap .kb-table-of-content-list{font-weight:regular;font-style:normal;margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-right:0px;margin-bottom:0px;margin-left:0px;}@media all and (max-width: 767px){.kb-table-of-content-nav.kb-table-of-content-id1400_585857-7d .kb-table-of-contents-title{font-size:var(--global-kb-font-size-md, 1.25rem);}.kb-table-of-content-nav.kb-table-of-content-id1400_585857-7d .kb-table-of-content-wrap .kb-table-of-content-list{font-size:var(--global-kb-font-size-sm, 0.9rem);}}<\/style>\n\n<style>.kadence-column1400_87a3ea-6b > .kt-inside-inner-col{box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}.kadence-column1400_87a3ea-6b > .kt-inside-inner-col,.kadence-column1400_87a3ea-6b > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1400_87a3ea-6b > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1400_87a3ea-6b > .kt-inside-inner-col{flex-direction:column;}.kadence-column1400_87a3ea-6b > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1400_87a3ea-6b > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1400_87a3ea-6b{position:relative;}@media all and (max-width: 1024px){.kadence-column1400_87a3ea-6b > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1400_87a3ea-6b > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1400_87a3ea-6b\"><div class=\"kt-inside-inner-col\">\n<p><strong>\uad00\ub828 \uae00<\/strong><\/p>\n\n\n\n<p>\u2705<a href=\"https:\/\/rtlearner.com\/fpga-bram-initialization-readmemh-cell-properties\/\" data-type=\"post\" data-id=\"1390\">FPGA \uc2e4\uc804 \uc124\uacc4 \u2013 BRAM \ucd08\uae30\ud654 \uac00\uc774\ub4dc<\/a><\/p>\n\n\n\n<p>\u2705<a href=\"https:\/\/rtlearner.com\/vivado-troubleshooting-logic-pruning-tool-crash\/\" data-type=\"post\" data-id=\"1396\">Vivado \ud2b8\ub7ec\ube14\uc288\ud305 \u2013 Pruning \ubc29\uc9c0\uc640 Tool Crash \ud574\uacb0\ubc95<\/a><\/p>\n\n\n\n<p>\u2705<a href=\"https:\/\/rtlearner.com\/fpga-power-analysis-saif-file-vivado\/\" data-type=\"post\" data-id=\"1405\">FPGA \uc2e4\uc804 \uc124\uacc4 \u2013 SAIF \ud30c\uc77c\ub85c \uc804\ub825 \uc18c\ubaa8\ub7c9 \ucc3e\uae30<\/a><\/p>\n<\/div><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">1. \uace0\uc815 \uc18c\uc218\uc810(Fixed-Point)\uacfc \uc2dc\ud504\ud2b8(Shift)<\/h4>\n\n\n\n<p>AI \ubaa8\ub378\uc758 \uc591\uc790\ud654(Quantization) \ud30c\ub77c\ubbf8\ud130\ub294 \ubcf4\ud1b5 0.00379&#8230;\uc640 \uac19\uc740 \ubcf5\uc7a1\ud55c \uc2e4\uc218\uc785\ub2c8\ub2e4. \ud558\ub4dc\uc6e8\uc5b4\uc5d0\uc11c \uc774 \uac12\uc744 \uacf1\ud558\ub824\uba74 \uc5b4\ub5bb\uac8c \ud574\uc57c \ud560\uae4c\uc694? \uc18c\uc218\uc810\uc744 \uc5c6\uc560\uae30 \uc704\ud574 \ud070 \uc218\ub97c \uacf1\ud574\uc11c \uc815\uc218\ub85c \ub9cc\ub4e0 \ub4a4, \ub098\uc911\uc5d0 \ub2e4\uc2dc \uadf8 \uc218\ub9cc\ud07c \ub098\ub204\uc5b4 \uc2a4\ucf00\uc77c\uc744 \ub9de\ucd94\ub294 <strong>Q-Format(\uace0\uc815 \uc18c\uc218\uc810)<\/strong> \ubc29\uc2dd\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ud558\uc9c0\ub9cc \ud558\ub4dc\uc6e8\uc5b4\uc5d0\uc11c \ub098\ub217\uc148\uae30(Divider)\ub294 \uacf1\uc148\uae30\ubcf4\ub2e4 \ud6e8\uc52c \ud06c\uace0 \ub290\ub9bd\ub2c8\ub2e4. \uadf8\ub798\uc11c \uc6b0\ub9ac\ub294 \ud56d\uc0c1 <strong>2<sup>N<\/sup> (\uc8fc\ub85c 16\uc774\ub098 32)<\/strong> \ub2e8\uc704\ub85c \uc2a4\ucf00\uc77c\ub9c1\uc744 \ud569\ub2c8\ub2e4. \ub098\ub217\uc148 \uc5f0\uc0b0\uc744 \ube44\uc6a9\uc774 &#8216;0&#8217;\uc5d0 \uc218\ub834\ud558\ub294 \ube44\ud2b8 \uc2dc\ud504\ud2b8(&gt;&gt; 16)\ub85c \ub300\uccb4\ud558\uae30 \uc704\ud574\uc11c\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-math\"><math display=\"block\"><semantics><mrow><mi>R<\/mi><mi>e<\/mi><mi>s<\/mi><mi>u<\/mi><mi>l<\/mi><mi>t<\/mi><mo>=<\/mo><mfrac><mrow><mi>I<\/mi><mi>n<\/mi><mi>p<\/mi><mi>u<\/mi><mi>t<\/mi><mo>\u00d7<\/mo><mn>12700<\/mn><\/mrow><msup><mn>2<\/mn><mn>16<\/mn><\/msup><\/mfrac><mspace width=\"1em\"><\/mspace><mo stretchy=\"false\">\u21d2<\/mo><mspace width=\"1em\"><\/mspace><mi>R<\/mi><mi>e<\/mi><mi>s<\/mi><mi>u<\/mi><mi>l<\/mi><mi>t<\/mi><mo>=<\/mo><mo form=\"prefix\" stretchy=\"false\">(<\/mo><mi>I<\/mi><mi>n<\/mi><mi>p<\/mi><mi>u<\/mi><mi>t<\/mi><mo>\u00d7<\/mo><mn>12700<\/mn><mo form=\"postfix\" stretchy=\"false\">)<\/mo><mo>\u226b<\/mo><mn>16<\/mn><\/mrow><annotation encoding=\"application\/x-tex\">Result = \\frac{Input \\times 12700}{2^{16}} \\quad \\Rightarrow \\quad Result = (Input \\times 12700) \\gg 16<\/annotation><\/semantics><\/math><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">2. \ud558\ub4dc\uc6e8\uc5b4 \ud574\ucee4\uc758 \ubc18\uc62c\ub9bc(Rounding) \uae30\ubc95<\/h4>\n\n\n\n<p>\ub2e8\uc21c\ud55c \uc6b0\uce21 \uc2dc\ud504\ud2b8(&gt;&gt;)\ub294 \uc18c\uc218\uc810 \uc774\ud558\ub97c \uac00\ucc28 \uc5c6\uc774 \ubc84\ub9ac\ub294 \ub0b4\ub9bc(Truncation\/Floor) \uc5f0\uc0b0\uc785\ub2c8\ub2e4. \uc774 \uc624\ucc28\uac00 \ub204\uc801\ub418\uba74 AI \ubaa8\ub378\uc758 \uc815\ud655\ub3c4(Accuracy)\uac00 \uc2ec\uac01\ud558\uac8c \ub5a8\uc5b4\uc9d1\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc6b0\ub9ac\ub294 \ubc18\uc62c\ub9bc(Round Half Up)\uc744 \uad6c\ud604\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uc18c\ud504\ud2b8\uc6e8\uc5b4\uc801\uc778 \uc0ac\uace0\ubc29\uc2dd\uc73c\ub85c \ucf54\ub4dc\ub97c \uc9dc\uba74 \ubcf4\ud1b5 \uc774\ub807\uac8c \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/\/ \ud558\ub4dc\uc6e8\uc5b4 \uc790\uc6d0\uc744 \ub0ad\ube44\ud558\ub294 \ucf54\ub4dc (Bad)\nshifted = (scaled + 64'sd32768) >>> 16;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">\/\/ \ud558\ub4dc\uc6e8\uc5b4 \uc790\uc6d0\uc744 \ub0ad\ube44\ud558\ub294 \ucf54\ub4dc (Bad)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">shifted <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> (scaled <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">64<\/span><span style=\"color: #D8DEE9FF\">&#39;sd32768) <\/span><span style=\"color: #81A1C1\">&gt;&gt;&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">16<\/span><span style=\"color: #D8DEE9FF\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>2<sup>16<\/sup>\uc758 \uc808\ubc18\uc778 32768\uc744 \ubbf8\ub9ac \ub354\ud574\uc11c \uc62c\ub9bc \ud6a8\uacfc\ub97c \ub0b4\ub294 \uc815\uc11d\uc801\uc778 \ubc29\ubc95\uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ud558\ub4dc\uc6e8\uc5b4 \uad00\uc810\uc5d0\uc11c \uc774 \ucf54\ub4dc\ub294 \ub054\ucc0d\ud569\ub2c8\ub2e4. \uc774 \ub367\uc148 \ud558\ub098\ub97c \uc704\ud574 \uac70\ub300\ud55c 64\ube44\ud2b8 \uac00\uc0b0\uae30(Adder)\uac00 \ucd94\uac00\ub85c \ud569\uc131\ub418\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \uba74\uc801\uc774 \ucee4\uc9c0\uace0 \ud0c0\uc774\ubc0d(Critical Path)\uc774 \ub098\ube60\uc9d1\ub2c8\ub2e4.<\/p>\n\n\n\n<p><strong>\uc9c4\uc815\ud55c \ud558\ub4dc\uc6e8\uc5b4 \ucd5c\uc801\ud654 \ucf54\ub4dc:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/\/ \uba74\uc801\uacfc \ud0c0\uc774\ubc0d\uc744 \ubaa8\ub450 \uc7a1\uc740 \ucd5c\uc801\ud654 \ucf54\ub4dc (Good)\nshifted = (scaled >>> 16) + scaled&#91;15&#93;;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">\/\/ \uba74\uc801\uacfc \ud0c0\uc774\ubc0d\uc744 \ubaa8\ub450 \uc7a1\uc740 \ucd5c\uc801\ud654 \ucf54\ub4dc (Good)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">shifted <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> (scaled <\/span><span style=\"color: #81A1C1\">&gt;&gt;&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">16<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> scaled&#91;<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #D8DEE9FF\">&#93;;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\uc6b0\ub9ac\uac00 2<sup>16<\/sup>\uc73c\ub85c \ub098\ub20c \ub54c, \ubc84\ub824\uc9c0\ub294 \uc18c\uc218 \ubd80\ubd84\uc758 \uac00\uc7a5 \ud070 \ube44\ud2b8(0.5\uc5d0 \ud574\ub2f9\ud558\ub294 \uc790\ub9ac)\ub294 \ubc14\ub85c 15\ubc88\uc9f8 \ube44\ud2b8(scaled[15])\uc785\ub2c8\ub2e4. \uc774 \ube44\ud2b8\uac00 1\uc774\ub77c\ub294 \uac83\uc740 \uc18c\uc218\uc810 \uc774\ud558\uac00 0.5 \uc774\uc0c1\uc774\ub77c\ub294 \ub73b\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ub530\ub77c\uc11c 32768\uc744 \ub354\ud558\ub294 \ubb34\uac70\uc6b4 \ub367\uc148\uae30\ub97c \uc4f8 \ud544\uc694 \uc5c6\uc774, \uc2dc\ud504\ud2b8\ub97c \uba3c\uc800 \ud55c \uc815\uc218 \uacb0\uacfc\uac12\uc758 \ucd5c\ud558\uc704 \ube44\ud2b8\uc5d0 scaled[15]\ub97c Carry-in\ucc98\ub7fc \uc3d9 \ub354\ud574\uc8fc\uba74 \ub05d\uc785\ub2c8\ub2e4. \uc218\ud559\uc801\uc73c\ub85c 100% \ub3d9\uc77c\ud55c \ubc18\uc62c\ub9bc \uacb0\uacfc\ub97c \ub0b4\uba74\uc11c\ub3c4, \ud569\uc131 \ud234\uc740 \uc774\ub97c \ucd94\uac00 \ub367\uc148\uae30 \uc5c6\uc774 \uae30\uc874 DSP \ub0b4\ubd80\uc758 \uae30\ub2a5\ub9cc\uc73c\ub85c \uae54\ub054\ud558\uac8c \ucc98\ub9ac\ud569\ub2c8\ub2e4. \uc774\uac83\uc774 \ubc14\ub85c \ud558\ub4dc\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\uc758 \ucf54\ub529 \uc2a4\ud0ac\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3. DSP48E2 \uc2ac\ub77c\uc774\uc2a4 100% \ub9e4\ud551<\/h4>\n\n\n\n<p>\ub85c\uc9c1\uc744 \uc9dc\ub2e4 \ubcf4\uba74 \uc624\ubc84\ud50c\ub85c\uc6b0(Overflow)\uac00 \ub450\ub824\uc6cc \uc2b5\uad00\uc801\uc73c\ub85c \ubcc0\uc218\ub97c logic signed [63:0] \ucc98\ub7fc 64\ube44\ud2b8\ub85c \ud07c\uc9c1\ud558\uac8c \uc7a1\ub294 \uacbd\uc6b0\uac00 \ub9ce\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ud558\uc9c0\ub9cc \uc790\uc77c\ub9c1\uc2a4(Xilinx) FPGA\uc5d0 \ub0b4\uc7a5\ub41c \uace0\uc131\ub2a5 \uc218\ud559 \uc5f0\uc0b0 \ube14\ub85d\uc778 <strong>DSP48E2 \uc2ac\ub77c\uc774\uc2a4\uc758 \uae30\ubcf8 \ucd9c\ub825 \ud3ed\uc740 48\ube44\ud2b8<\/strong>\uc785\ub2c8\ub2e4. \ub9cc\uc57d \ubcc0\uc218\ub97c 64\ube44\ud2b8\ub85c \uc120\uc5b8\ud574 \ubc84\ub9ac\uba74, Vivado\ub294 \uc774 \uc5f0\uc0b0\uc744 \ucc98\ub9ac\ud558\uae30 \uc704\ud574 \uac12\ube44\uc2fc DSP \uc2ac\ub77c\uc774\uc2a4\ub97c 2\uac1c \uc774\uc0c1 \uc774\uc5b4 \ubd99\uc774\uac70\ub098, \uc218\ub9ce\uc740 LUT\ub97c \ub0ad\ube44\ud574\uc11c \uc5b5\uc9c0\ub85c 64\ube44\ud2b8 \uacc4\uc0b0\uae30\ub97c \ub9cc\ub4e4\uc5b4\ub0c5\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>localparam logic signed &#91;14:0&#93; OUT_SCALE = 15'sd12700; \n\nfunction automatic logic &#91;26:0&#93; compute_out(input logic &#91;32:0&#93; acc_in);\n    \/\/ 64-bit \ub300\uc2e0 48-bit\ub97c \uc0ac\uc6a9\ud558\uc5ec DSP48E2\uc5d0 \uc644\ubcbd\ud788 \ub9e4\ud551 (Best)\n    logic signed &#91;47:0&#93; scaled, shifted;\n    begin\n        \/\/ 33-bit * 15-bit = 48-bit (\uc548\uc804\ud558\uac8c \ud54f!)\n        scaled  = $signed(acc_in) * OUT_SCALE;\n        shifted = (scaled >>> 16) + scaled&#91;15&#93;;\n        \n        compute_out = shifted&#91;26:0&#93;;\n    end\nendfunction<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">localparam<\/span><span style=\"color: #D8DEE9FF\"> logic <\/span><span style=\"color: #81A1C1\">signed<\/span><span style=\"color: #D8DEE9FF\"> &#91;<\/span><span style=\"color: #B48EAD\">14<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; OUT_SCALE <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #D8DEE9FF\">&#39;sd12700; <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> automatic logic &#91;<\/span><span style=\"color: #B48EAD\">26<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; compute_out(<\/span><span style=\"color: #81A1C1\">input<\/span><span style=\"color: #D8DEE9FF\"> logic &#91;<\/span><span style=\"color: #B48EAD\">32<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; acc_in);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ 64-bit \ub300\uc2e0 48-bit\ub97c \uc0ac\uc6a9\ud558\uc5ec DSP48E2\uc5d0 \uc644\ubcbd\ud788 \ub9e4\ud551 (Best)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    logic <\/span><span style=\"color: #81A1C1\">signed<\/span><span style=\"color: #D8DEE9FF\"> &#91;<\/span><span style=\"color: #B48EAD\">47<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; scaled, shifted;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">begin<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">        <\/span><span style=\"color: #616E88\">\/\/ 33-bit * 15-bit = 48-bit (\uc548\uc804\ud558\uac8c \ud54f!)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        scaled  <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> $<\/span><span style=\"color: #81A1C1\">signed<\/span><span style=\"color: #D8DEE9FF\">(acc_in) <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\"> OUT_SCALE;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        shifted <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> (scaled <\/span><span style=\"color: #81A1C1\">&gt;&gt;&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">16<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> scaled&#91;<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #D8DEE9FF\">&#93;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        compute_out <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> shifted&#91;<\/span><span style=\"color: #B48EAD\">26<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">endfunction<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\uc2e4\uc81c \uc785\ub825\ub418\ub294 \ub370\uc774\ud130(acc_in)\uc640 \uacf1\ud574\uc9c0\ub294 \uc2a4\ucf00\uc77c \uc0c1\uc218(OUT_SCALE)\uc758 \ube44\ud2b8 \ud3ed\uc744 \uc218\ud559\uc801\uc73c\ub85c \uc5c4\ubc00\ud558\uac8c \uacc4\uc0b0\ud574 \ubcf4\uc138\uc694. \ucd5c\ub300\uac12\uc774 48\ube44\ud2b8 \uc548\uc5d0 \ub4e4\uc5b4\uac04\ub2e4\uba74, \uc704\uc640 \uac19\uc774 [47:0]\uc73c\ub85c \ud3ed\uc744 \ub9de\ucdb0\uc8fc\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \uc815\ud655\ud788 1\uac1c\uc758 DSP \uc2ac\ub77c\uc774\uc2a4\ub85c \uacf1\uc148\uacfc \ub367\uc148(\ubc18\uc62c\ub9bc)\uc774 \uc644\ubcbd\ud558\uac8c \ud569\uc131\ub418\uc5b4, \uc804\ub825 \uc18c\ubaa8\ub97c \uadf9\ub2e8\uc801\uc73c\ub85c \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubc1c\uc5f4 \uc81c\uc5b4\uac00 \uc0dd\uba85\uc778 \uc800\uc804\ub825 AI \ubc18\ub3c4\uccb4\uc5d0\uc11c\ub294 \uc120\ud0dd\uc774 \uc544\ub2cc \ud544\uc218\uc785\ub2c8\ub2e4.<\/p>\n\n\n<style>.kadence-column1400_2a4346-c7 > .kt-inside-inner-col{box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}.kadence-column1400_2a4346-c7 > .kt-inside-inner-col,.kadence-column1400_2a4346-c7 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1400_2a4346-c7 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1400_2a4346-c7 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1400_2a4346-c7 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1400_2a4346-c7 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1400_2a4346-c7{position:relative;}@media all and (max-width: 1024px){.kadence-column1400_2a4346-c7 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1400_2a4346-c7 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1400_2a4346-c7\"><div class=\"kt-inside-inner-col\">\n<p><strong>\uad00\ub828 \uae00<\/strong><\/p>\n\n\n\n<p>\u2705<a href=\"https:\/\/rtlearner.com\/fpga-bram-initialization-readmemh-cell-properties\/\" data-type=\"post\" data-id=\"1390\">FPGA \uc2e4\uc804 \uc124\uacc4 \u2013 BRAM \ucd08\uae30\ud654 \uac00\uc774\ub4dc<\/a><\/p>\n\n\n\n<p>\u2705<a href=\"https:\/\/rtlearner.com\/vivado-troubleshooting-logic-pruning-tool-crash\/\" data-type=\"post\" data-id=\"1396\">Vivado \ud2b8\ub7ec\ube14\uc288\ud305 \u2013 Pruning \ubc29\uc9c0\uc640 Tool Crash \ud574\uacb0\ubc95<\/a><\/p>\n\n\n\n<p>\u2705<a href=\"https:\/\/rtlearner.com\/fpga-power-analysis-saif-file-vivado\/\" data-type=\"post\" data-id=\"1405\">FPGA \uc2e4\uc804 \uc124\uacc4 \u2013 SAIF \ud30c\uc77c\ub85c \uc804\ub825 \uc18c\ubaa8\ub7c9 \ucc3e\uae30<\/a><\/p>\n<\/div><\/div>\n\n\n\n<p>\ucc38\uace0: <a href=\"https:\/\/docs.amd.com\/v\/u\/en-US\/ug579-ultrascale-dsp\" target=\"_blank\" rel=\"noopener\">AMD<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Designing NPU (Neural Processing Unit) architectures at a low-power AI semiconductor startup constantly reminds me of a harsh truth:<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[8],"tags":[10,36],"class_list":["post-1400","post","type-post","status-publish","format-standard","hentry","category-fpga","tag-fpga","tag-vivado"],"_links":{"self":[{"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/posts\/1400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/comments?post=1400"}],"version-history":[{"count":3,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/posts\/1400\/revisions"}],"predecessor-version":[{"id":1410,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/posts\/1400\/revisions\/1410"}],"wp:attachment":[{"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/media?parent=1400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/categories?post=1400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/tags?post=1400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}<!-- This website is optimized by Airlift. Learn more: https://airlift.net. Template:. Learn more: https://airlift.net. Template: 69b92da9d36f73cd2808d6e8. Config Timestamp: 2026-03-17 10:32:09 UTC, Cached Timestamp: 2026-04-18 12:56:54 UTC -->