{"id":1116,"date":"2025-12-29T10:14:53","date_gmt":"2025-12-29T01:14:53","guid":{"rendered":"https:\/\/rtlearner.com\/?p=1116"},"modified":"2025-12-29T10:14:54","modified_gmt":"2025-12-29T01:14:54","slug":"rtl-verilog-arithmetic","status":"publish","type":"post","link":"https:\/\/rtlearner.com\/en\/rtl-verilog-arithmetic\/","title":{"rendered":"[RTL] RTL \uc0b0\uc220 \uc5f0\uc0b0: \ube44\ud2b8 \ud655\uc7a5, \ud3ec\ud654 \uc5f0\uc0b0, \uadf8\ub9ac\uace0 \ubc18\uc62c\ub9bc"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">RTL \uc124\uacc4\ub97c \ud558\ub2e4 \ubcf4\uba74 <code>wire [7:0] a, b, c<\/code>\ub97c \uc120\uc5b8\ud574 \ub193\uace0 \ubb34\uc2ec\ucf54 <code>assign c = a + b;<\/code>\ub77c\uace0 \uc801\ub294 \uacbd\uc6b0\uac00 \ub9ce\uc2b5\ub2c8\ub2e4. \ubb38\ubc95 \uc5d0\ub7ec\ub294 \uc5c6\uc9c0\ub9cc, \uc774 \ucf54\ub4dc\ub294 \ud2b9\uc815 \uc0c1\ud669\uc5d0\uc11c \ub370\uc774\ud130\uac00 \uae68\uc9c0\ub294 &#8216;Silent Bug&#8217;\uc758 \uc8fc\ubc94\uc774 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub514\uc9c0\ud138 \ud68c\ub85c\uc5d0\uc11c \uc22b\uc790\ub97c \ub2e4\ub8ec\ub2e4\ub294 \uac83\uc740 \ub2e8\uc21c\ud788 \uc218\ud559 \uacc4\uc0b0\uc744 \ub118\uc5b4, \ube44\ud2b8 \ud3ed(Bit Width)\uacfc \ub370\uc774\ud130 \ud0c0\uc785(Signed\/Unsigned)\uc744 \ubb3c\ub9ac\uc801\uc73c\ub85c \uad00\ub9ac\ud574\uc57c \ud568\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubc88 \uae00\uc5d0\uc11c\ub294 RTL \uc5d4\uc9c0\ub2c8\uc5b4\uac00 \ubc18\ub4dc\uc2dc \uc815\ubcf5\ud574\uc57c \ud560 \uc0b0\uc220 \uc5f0\uc0b0\uc758 3\ub300\uc7a5, <strong>\ube44\ud2b8 \ud655\uc7a5 \uaddc\uce59, \ubd80\ud638 \uc788\ub294 \uc5f0\uc0b0\uc758 \ud568\uc815<\/strong>, \uadf8\ub9ac\uace0 DSP \uc124\uacc4\uc758 \uaf43\uc778 <strong>\ud3ec\ud654 \uc5f0\uc0b0(Saturation)\uacfc \ubc18\uc62c\ub9bc(Rounding)<\/strong> \uae30\ubc95\uc744 \uc815\ub9ac\ud574 \ub4dc\ub9bd\ub2c8\ub2e4.<\/p>\n\n\n<style>.kb-table-of-content-nav.kb-table-of-content-id1116_c8dcb6-d2 .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-id1116_c8dcb6-d2 .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-id1116_c8dcb6-d2 .kb-table-of-contents-title{font-weight:regular;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id1116_c8dcb6-d2 .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-id1116_c8dcb6-d2 .kb-table-of-contents-title{font-size:var(--global-kb-font-size-md, 1.25rem);}.kb-table-of-content-nav.kb-table-of-content-id1116_c8dcb6-d2 .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-column1116_a14cb8-92 > .kt-inside-inner-col{box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}.kadence-column1116_a14cb8-92 > .kt-inside-inner-col,.kadence-column1116_a14cb8-92 > .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-column1116_a14cb8-92 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1116_a14cb8-92 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1116_a14cb8-92 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1116_a14cb8-92 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1116_a14cb8-92{position:relative;}@media all and (max-width: 1024px){.kadence-column1116_a14cb8-92 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1116_a14cb8-92 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1116_a14cb8-92\"><div class=\"kt-inside-inner-col\">\n<p class=\"wp-block-paragraph\"><strong>\uad00\ub828 \uae00<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705<a href=\"https:\/\/rtlearner.com\/rtl-ready-valid-handshake\/\">[RTL] RTL Valid-Ready Handshake\uc640 Skid Buffer<\/a><\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">1. \ube44\ud2b8 \ud3ed\uc740 \uc800\uc808\ub85c \ub298\uc5b4\ub098\uc9c0 \uc54a\ub294\ub2e4 (Bit Width Expansion)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ud558\ub4dc\uc6e8\uc5b4\ub294 \uc815\ud574\uc9c4 \uadf8\ub987(Register)\uc758 \ud06c\uae30\ub9cc\ud07c\ub9cc \uac12\uc744 \ub2f4\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc5f0\uc0b0 \uacb0\uacfc\uac00 \uadf8\ub987\ubcf4\ub2e4 \ud06c\uba74 \ub118\uccd0\ud750\ub974\ub294 Overflow\uac00 \ubc1c\uc0dd\ud558\uc5ec \ub370\uc774\ud130\uac00 \uc65c\uace1\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ub354\ud558\uae30\uc640 \ube7c\uae30 (Addition \/ Subtraction)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">N\ube44\ud2b8 \uc218 \ub450 \uac1c\ub97c \ub354\ud558\uba74 \uacb0\uacfc\ub294 <strong>\ucd5c\ub300 N+1\ube44\ud2b8<\/strong>\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\uaddc\uce59:<\/strong> <code>Sum_Width = Max(A_Width, B_Width) + 1<\/code><\/li>\n\n\n\n<li><strong>\uc608\uc2dc:<\/strong> 8\ube44\ud2b8(255) + 8\ube44\ud2b8(255) = 510 (9\ube44\ud2b8 \ud544\uc694)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\uacf1\ud558\uae30 (Multiplication)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">N\ube44\ud2b8\uc640 M\ube44\ud2b8\ub97c \uacf1\ud558\uba74 \uacb0\uacfc\ub294 <strong>N+M\ube44\ud2b8<\/strong>\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\uaddc\uce59:<\/strong> <code>Prod_Width = A_Width + B_Width<\/code><\/li>\n\n\n\n<li><strong>\uc608\uc2dc:<\/strong> 8-bit(255) * 8-bit(255) = 65,025 (16-bit \ud544\uc694)<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Tip:<\/strong> RTL \uc124\uacc4\ud560 \ub54c \ubbf8\ub9ac \uacb0\uacfc \uc640\uc774\uc5b4(<code>wire<\/code>)\uc758 \ud3ed\uc744 \uacc4\uc0b0\ud574\uc11c \ub109\ub109\ud558\uac8c \uc120\uc5b8\ud558\ub294 \uc2b5\uad00\uc744 \ub4e4\uc5ec\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">2. &#8216;Signed&#8217;\uc640 &#8216;Unsigned&#8217;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Verilog\uc5d0\uc11c \uac00\uc7a5 \uce58\uba85\uc801\uc778 \ubc84\uadf8\ub294 \ubd80\ud638 \uc788\ub294 \uc218(Signed)\uc640 \ubd80\ud638 \uc5c6\ub294 \uc218(Unsigned)\ub97c \uc11e\uc5b4\uc11c \uc5f0\uc0b0\ud560 \ub54c \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2&#8217;s Complement (2\uc758 \ubcf4\uc218)\uc640 \ud568\uc815<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Verilog \ud45c\uc900\uc5d0 \ub530\ub974\uba74, \uc5f0\uc0b0\uc2dd\uc5d0 <strong>\ub2e8 \ud558\ub098\ub77c\ub3c4 <code>unsigned<\/code> \ubcc0\uc218\uac00 \uc11e\uc5ec \uc788\uc73c\uba74, \uc804\uccb4 \uc2dd\uc744 <code>unsigned<\/code>\ub85c \ucc98\ub9ac<\/strong>\ud574 \ubc84\ub9bd\ub2c8\ub2e4. \uc774\ub97c Implicit Casting(\uc554\ubb35\uc801 \ud615\ubcc0\ud658)\uc774\ub77c \ud569\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>reg signed   &#91;3:0&#93; a = -2;  \/\/ 1110 (\uc74c\uc218)\nreg unsigned &#91;3:0&#93; b =  1;  \/\/ 0001 (\uc591\uc218)\nwire signed  &#91;4:0&#93; result;\n\nassign result = a + b; \n\/\/ \uae30\ub300\uac12: -1\n\/\/ \uc2e4\uc81c\uac12: a\ub97c unsigned 14\ub85c \ud574\uc11d -> 14 + 1 = 15 (\uce58\uba85\uc801 \uc624\ub958!)<\/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\">reg<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">signed<\/span><span style=\"color: #D8DEE9FF\">   &#91;<\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; a <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #D8DEE9FF\">;  <\/span><span style=\"color: #616E88\">\/\/ 1110 (\uc74c\uc218)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">reg<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">unsigned<\/span><span style=\"color: #D8DEE9FF\"> &#91;<\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; b <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\">;  <\/span><span style=\"color: #616E88\">\/\/ 0001 (\uc591\uc218)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">wire<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">signed<\/span><span style=\"color: #D8DEE9FF\">  &#91;<\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; result;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">assign<\/span><span style=\"color: #D8DEE9FF\"> result <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> a <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> b; <\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\">\/\/ \uae30\ub300\uac12: -1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\">\/\/ \uc2e4\uc81c\uac12: a\ub97c unsigned 14\ub85c \ud574\uc11d -&gt; 14 + 1 = 15 (\uce58\uba85\uc801 \uc624\ub958!)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\ud574\uacb0\ucc45:<\/strong> \ubaa8\ub4e0 \ubcc0\uc218\ub97c \uba85\uc2dc\uc801\uc73c\ub85c <code>signed<\/code>\ub85c \uc120\uc5b8\ud558\uac70\ub098, <code>$signed()<\/code> \uc2dc\uc2a4\ud15c \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \uac15\uc81c\ub85c \ud0c0\uc785\uc744 \ub9de\ucdb0\uc918\uc57c \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. \ud3ec\ud654 \uc5f0\uc0b0 (Saturation Logic) \uad6c\ud604\ud558\uae30<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc624\ub514\uc624\ub098 \uc601\uc0c1 \uc2e0\ud638 \ucc98\ub9ac\uc5d0\uc11c \uc624\ubc84\ud50c\ub85c\uc6b0\ub294 \ub178\uc774\uc988(Noise)\uac00 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Wrap-around (\uc77c\ubc18 \ub3d9\uc791):<\/strong> \ucd5c\ub300\uac12\uc744 \ub118\uc73c\uba74 0\uc73c\ub85c \ub3cc\uc544\uac10 (\uc608: 255 + 1 = 0).<\/li>\n\n\n\n<li><strong>Saturation (\ud3ec\ud654 \uc5f0\uc0b0):<\/strong> \ucd5c\ub300\uac12\uc744 \ub118\uc73c\uba74 <strong>\ucd5c\ub300\uac12\uc5d0 \uace0\uc815(Clipping)<\/strong> (\uc608: 255 + 1 = 255).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">RTL\uc5d0\uc11c\ub294 \uc5f0\uc0b0 \uacb0\uacfc\uc758 \ucd5c\uc0c1\uc704 \ube44\ud2b8(Overflow bit)\ub97c \uac10\uc9c0\ud558\uc5ec MUX\ub85c \uac12\uc744 \uace0\uc815\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. \uc2e4\ubb34 \ud14c\ud06c\ub2c9: \ubc18\uc62c\ub9bc (Rounding) \ud6a8\uc728\uc801\uc73c\ub85c \uad6c\ud604\ud558\uae30<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ub098\ub217\uc148\uc744 \ud558\uac70\ub098 \ube44\ud2b8\ub97c \uc904\uc77c \ub54c(Truncation), \ub2e8\uc21c\ud788 \ud558\uc704 \ube44\ud2b8\ub97c \ubc84\ub9ac\uba74 \uac12\uc740 \ud56d\uc0c1 \uc791\uc544\uc9c0\ub294 \ubc29\ud5a5(Floor)\uc73c\ub85c \uc624\ucc28\uac00 \uc0dd\uae41\ub2c8\ub2e4. \uc774\ub97c \ubcf4\uc815\ud558\uae30 \uc704\ud574 \ubc18\uc62c\ub9bc(Round Half Up)\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud2b9\ud788 &#8216;2\ub85c \ub098\ub204\uae30&#8217; (\ud3c9\uade0 \uad6c\ud558\uae30 \ub4f1)\ub97c \ud560 \ub54c, \uad73\uc774 \ubcf5\uc7a1\ud55c \ub367\uc148\uae30 \uc5c6\uc774 <strong>\ucd5c\ud558\uc704 \ube44\ud2b8(LSB)\ub97c \ud65c\uc6a9<\/strong>\ud558\ub294 \ub9e4\uc6b0 \ud6a8\uc728\uc801\uc778 \uc2e4\ubb34 \ud328\ud134\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\uc6d0\ub9ac: \ub098\uba38\uc9c0\uac00 0.5\uba74 \uc62c\ub824\ub77c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc9c4\uc218\uc5d0\uc11c LSB(\ucd5c\ud558\uc704 \ube44\ud2b8)\ub294 <code>1<\/code> \ub610\ub294 <code>0<\/code>\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc624\ub978\ucabd\uc73c\ub85c 1\ube44\ud2b8 \uc2dc\ud504\ud2b8(<code>>>1<\/code>) \ud558\ub294 \uac83\uc740 2\ub85c \ub098\ub208 \ubaab(Integer Div)\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\uc774\ub54c \uc0ac\ub77c\uc9c0\ub294 LSB\uac00 <code>1<\/code>\uc774\ub77c\uba74, \uc6d0\ub798 \uac12\uc740 <code>X.5<\/code>\uc600\ub2e4\ub294 \ub73b\uc785\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ub530\ub77c\uc11c <strong>\ubaab\uc5d0 LSB\ub97c \ub354\ud574\uc8fc\uba74<\/strong> \uc790\uc5f0\uc2a4\ub7fd\uac8c \ubc18\uc62c\ub9bc\uc774 \ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\uc2e4\uc804 \ucf54\ub4dc: \ud3c9\uade0\uac12 \uad6c\ud558\uae30 (Rounding \uc801\uc6a9)<\/h3>\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>module calc_average_round (\n    input  wire &#91;7:0&#93; data_a,\n    input  wire &#91;7:0&#93; data_b,\n    output reg  &#91;7:0&#93; avg_out\n);\n    \/\/ 1. \ud569\uacc4 \uad6c\ud558\uae30 (\uc624\ubc84\ud50c\ub85c\uc6b0 \ubc29\uc9c0 1\ube44\ud2b8 \ud655\uc7a5)\n    wire &#91;8:0&#93; sum;\n    assign sum = data_a + data_b;\n\n    \/\/ 2. 2\ub85c \ub098\ub204\uba74\uc11c \ubc18\uc62c\ub9bc (Divide by 2 with Rounding)\n    \/\/ \uc6d0\ub9ac: (Sum \/ 2) + (Sum % 2)\n    \/\/ sum&#91;8:1&#93; : \uc0c1\uc704 \ube44\ud2b8\ub4e4 (2\ub85c \ub098\ub208 \ubaab)\n    \/\/ sum&#91;0&#93;   : \ucd5c\ud558\uc704 \ube44\ud2b8 (\ub098\uba38\uc9c0, \uc989 0.5 \uc5ec\ubd80)\n    \n    always @(*) begin\n        \/\/ \ubaab\uc5d0 \ub098\uba38\uc9c0\ub97c \ub354\ud55c\ub2e4.\n        avg_out = sum&#91;8:1&#93; + sum&#91;0&#93;;\n    end\n\nendmodule<\/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\">module<\/span><span style=\"color: #D8DEE9FF\"> calc_average_round (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">input<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">wire<\/span><span style=\"color: #D8DEE9FF\"> &#91;<\/span><span style=\"color: #B48EAD\">7<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; data_a,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">input<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">wire<\/span><span style=\"color: #D8DEE9FF\"> &#91;<\/span><span style=\"color: #B48EAD\">7<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; data_b,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">output<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">reg<\/span><span style=\"color: #D8DEE9FF\">  &#91;<\/span><span style=\"color: #B48EAD\">7<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; avg_out<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ 1. \ud569\uacc4 \uad6c\ud558\uae30 (\uc624\ubc84\ud50c\ub85c\uc6b0 \ubc29\uc9c0 1\ube44\ud2b8 \ud655\uc7a5)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">wire<\/span><span style=\"color: #D8DEE9FF\"> &#91;<\/span><span style=\"color: #B48EAD\">8<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; sum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">assign<\/span><span style=\"color: #D8DEE9FF\"> sum <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> data_a <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> data_b;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ 2. 2\ub85c \ub098\ub204\uba74\uc11c \ubc18\uc62c\ub9bc (Divide by 2 with Rounding)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ \uc6d0\ub9ac: (Sum \/ 2) + (Sum % 2)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ sum&#91;8:1&#93; : \uc0c1\uc704 \ube44\ud2b8\ub4e4 (2\ub85c \ub098\ub208 \ubaab)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ sum&#91;0&#93;   : \ucd5c\ud558\uc704 \ube44\ud2b8 (\ub098\uba38\uc9c0, \uc989 0.5 \uc5ec\ubd80)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">always<\/span><span style=\"color: #D8DEE9FF\"> @(<\/span><span style=\"color: #81A1C1\">*<\/span><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\">\/\/ \ubaab\uc5d0 \ub098\uba38\uc9c0\ub97c \ub354\ud55c\ub2e4.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        avg_out <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> sum&#91;<\/span><span style=\"color: #B48EAD\">8<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\">&#93; <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> sum&#91;<\/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>\n<span class=\"line\"><span style=\"color: #81A1C1\">endmodule<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\ub3d9\uc791 \uac80\uc99d<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\ud569\uc774 10\uc77c \ub54c (<code>1010<\/code>):<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>sum[8:1]<\/code> = <code>101<\/code> (5)<\/li>\n\n\n\n<li><code>sum[0]<\/code> = <code>0<\/code><\/li>\n\n\n\n<li>\uacb0\uacfc: <code>5 + 0 = 5<\/code> (10 \/ 2 = 5) -> <strong>\uc815\ud655\ud568<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\ud569\uc774 11\uc77c \ub54c (<code>1011<\/code>):<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>sum[8:1]<\/code> = <code>101<\/code> (5)<\/li>\n\n\n\n<li><code>sum[0]<\/code> = <code>1<\/code><\/li>\n\n\n\n<li>\uacb0\uacfc: <code>5 + 1 = 6<\/code> (11 \/ 2 = 5.5 \ubc18\uc62c\ub9bc -> 6) -> <strong>\uc815\ud655\ud568<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ubc29\uc2dd\uc740 \ubcc4\ub3c4\uc758 \ube44\uad50\uae30(Comparator) \uc5c6\uc774 <strong>Adder \ud558\ub098\ub9cc\uc73c\ub85c \ubc18\uc62c\ub9bc\uc744 \uad6c\ud604<\/strong>\ud560 \uc218 \uc788\uc5b4 \uba74\uc801\uacfc \ud0c0\uc774\ubc0d \uba74\uc5d0\uc11c \ub9e4\uc6b0 \ud6a8\uc728\uc801\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. \uacb0\ub860: \ub514\ud14c\uc77c\uc774 \ud004\ub9ac\ud2f0\ub97c \ub9cc\ub4e0\ub2e4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">RTL \uc124\uacc4\uc5d0\uc11c \uc0b0\uc220 \uc5f0\uc0b0\uc740 \uac00\uc7a5 \uae30\ucd08\uc801\uc774\uc9c0\ub9cc, \uac00\uc7a5 \ub9ce\uc740 \uc2e4\uc218\uac00 \ub098\uc624\ub294 \ubd80\ubd84\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Bit Width:<\/strong> \uc5f0\uc0b0 \uacb0\uacfc\uac00 \ucee4\uc9c8 \uac83\uc744 \ub300\ube44\ud574 \uadf8\ub987\uc744 \ud0a4\uc6b0\uc138\uc694.<\/li>\n\n\n\n<li><strong>Type:<\/strong> <code>signed<\/code>\uc640 <code>unsigned<\/code>\ub97c \uc808\ub300 \uc11e\uc5b4 \uc4f0\uc9c0 \ub9c8\uc138\uc694.<\/li>\n\n\n\n<li><strong>Refinement:<\/strong> \ud544\ud130\ub098 \uc601\uc0c1 \ucc98\ub9ac\uc5d0\ub294 <strong>Saturation<\/strong>\uc744, \ud3c9\uade0 \uacc4\uc0b0\uc5d0\ub294 <strong>LSB \ub354\ud558\uae30(Rounding)<\/strong> \uae30\ubc95\uc744 \ud65c\uc6a9\ud558\uc138\uc694.<\/li>\n<\/ol>\n\n\n<style>.kadence-column1116_ea019c-a5 > .kt-inside-inner-col{box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}.kadence-column1116_ea019c-a5 > .kt-inside-inner-col,.kadence-column1116_ea019c-a5 > .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-column1116_ea019c-a5 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1116_ea019c-a5 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1116_ea019c-a5 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1116_ea019c-a5 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1116_ea019c-a5{position:relative;}@media all and (max-width: 1024px){.kadence-column1116_ea019c-a5 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1116_ea019c-a5 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1116_ea019c-a5\"><div class=\"kt-inside-inner-col\">\n<p class=\"wp-block-paragraph\"><strong>\uad00\ub828 \uae00<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705<a href=\"https:\/\/rtlearner.com\/rtl-ready-valid-handshake\/\">[RTL] RTL Valid-Ready Handshake\uc640 Skid Buffer<\/a><\/p>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\ucc38\uace0: <a href=\"https:\/\/share.google\/SiRlIs59P9TBUS2KK\" target=\"_blank\" rel=\"noopener\">IEEE Standard<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>RTL \uc124\uacc4\ub97c \ud558\ub2e4 \ubcf4\uba74 wire [7:0] a, b, c\ub97c \uc120\uc5b8\ud574&#8230;<\/p>\n","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":[39],"tags":[40,107],"class_list":["post-1116","post","type-post","status-publish","format-standard","hentry","category-verilog","tag-verilog","tag-rtl"],"_links":{"self":[{"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/posts\/1116","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=1116"}],"version-history":[{"count":1,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/posts\/1116\/revisions"}],"predecessor-version":[{"id":1117,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/posts\/1116\/revisions\/1117"}],"wp:attachment":[{"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/media?parent=1116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/categories?post=1116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/tags?post=1116"}],"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: 6a588749d36f73a90a601ae0. Config Timestamp: 2026-07-16 07:24:54 UTC, Cached Timestamp: 2026-07-18 01:58:22 UTC, Optimization Time: 4.64ms -->