{"id":1110,"date":"2025-12-24T09:48:31","date_gmt":"2025-12-24T00:48:31","guid":{"rendered":"https:\/\/rtlearner.com\/?p=1110"},"modified":"2025-12-24T11:57:07","modified_gmt":"2025-12-24T02:57:07","slug":"rtl-ready-valid-handshake","status":"publish","type":"post","link":"https:\/\/rtlearner.com\/en\/rtl-ready-valid-handshake\/","title":{"rendered":"[RTL] RTL Valid-Ready Handshake\uc640 Skid Buffer"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">RTL \uc124\uacc4\ub97c \ud558\ub2e4 \ubcf4\uba74 \ud544\uc5f0\uc801\uc73c\ub85c &#8216;\ub51c\ub808\ub9c8&#8217;\uc5d0 \ube60\uc9c0\ub294 \uc21c\uac04\uc774 \uc635\ub2c8\ub2e4.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">&#8220;\ud0c0\uc774\ubc0d(Timing)\uc744 \ub9de\ucd94\uae30 \uc704\ud574 pipeline register\ub97c \ub123\uc5c8\ub354\ub2c8, \ub370\uc774\ud130 \ud750\ub984 \uc81c\uc5b4(Flow Control)\uac00 \uaf2c\uc774\uace0 \uc131\ub2a5(Throughput)\uc774 \ub5a8\uc5b4\uc9c4\ub2e4.&#8221;<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e8\uc21c\ud788 \ub370\uc774\ud130\ub9cc \ud758\ub7ec\uac00\ub294 \uad6c\uc870\ub77c\uba74 \ub808\uc9c0\uc2a4\ud130\ub9cc \ucd94\uac00\ud558\uba74 \uadf8\ub9cc\uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc, \ud6c4\ub2e8 \ubaa8\ub4c8\uc774 \ubc14\uc060 \ub54c \uc804\ub2e8 \ubaa8\ub4c8\uc5d0\uac8c \uba48\ucd94\ub77c\uace0(Back-pressure) \ub9d0\ud574\uc57c \ud558\ub294 \uc0c1\ud669\uc774\ub77c\uba74 \uc774\uc57c\uae30\uac00 \ub2ec\ub77c\uc9d1\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubc88 \uae00\uc5d0\uc11c\ub294 AXI4-Stream \ub4f1 \ud45c\uc900 \uc778\ud130\ud398\uc774\uc2a4\uc758 \uadfc\uac04\uc774 \ub418\ub294 <strong>Valid-Ready Handshake<\/strong> \ud504\ub85c\ud1a0\ucf5c\uc744 \uc774\ud574\ud558\uace0, \ud0c0\uc774\ubc0d \uc704\ubc18\uc744 \ud574\uacb0\ud558\ub294 \ud544\uc0b4\uae30\uc778 <strong>Skid Buffer<\/strong>\uc758 RTL \uc124\uacc4 \uc6d0\ub9ac\ub97c \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n<style>.kb-table-of-content-nav.kb-table-of-content-id1110_b95321-55 .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-id1110_b95321-55 .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-id1110_b95321-55 .kb-table-of-contents-title{font-weight:regular;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id1110_b95321-55 .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-id1110_b95321-55 .kb-table-of-contents-title{font-size:var(--global-kb-font-size-md, 1.25rem);}.kb-table-of-content-nav.kb-table-of-content-id1110_b95321-55 .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-column1110_af6239-d5 > .kt-inside-inner-col{box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}.kadence-column1110_af6239-d5 > .kt-inside-inner-col,.kadence-column1110_af6239-d5 > .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-column1110_af6239-d5 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1110_af6239-d5 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1110_af6239-d5 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1110_af6239-d5 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1110_af6239-d5{position:relative;}@media all and (max-width: 1024px){.kadence-column1110_af6239-d5 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1110_af6239-d5 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1110_af6239-d5\"><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-fan-in-fan-out\/\">[RTL] Fan-in\uacfc Fan-out: timing issue\uc758 \uc228\uaca8\uc9c4 \uc8fc\ubc94\uacfc \ud574\uacb0\ucc45<\/a><\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">1. \ub370\uc774\ud130 \ud750\ub984 \uc81c\uc5b4\uc758 \uae30\ubcf8: Valid-Ready Handshake<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uac00\uc7a5 \uba3c\uc800 \ub450 \ubaa8\ub4c8 \uac04\uc5d0 \ub370\uc774\ud130\ub97c \uc548\uc804\ud558\uac8c \uc8fc\uace0\ubc1b\ub294 \uc57d\uc18d(Protocol)\uc744 \uc815\uc758\ud574\uc57c \ud569\ub2c8\ub2e4. \uc5c5\uacc4 \ud45c\uc900\uc778 AMBA <strong>AXI4-Stream<\/strong> \uc778\ud130\ud398\uc774\uc2a4\uac00 \ubc14\ub85c \uc774 \ubc29\uc2dd\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Source (Sender):<\/strong> \ub370\uc774\ud130\ub97c \ubcf4\ub0b4\ub294 \ucabd. <code>Valid<\/code> \uc2e0\ud638\uc640 <code>Data<\/code>\ub97c \ubcf4\ub0c5\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>Destination (Receiver):<\/strong> \ub370\uc774\ud130\ub97c \ubc1b\ub294 \ucabd. \ubc1b\uc744 \uc900\ube44\uac00 \ub418\uc5c8\ub2e4\ub294 <code>Ready<\/code> \uc2e0\ud638\ub97c \ubcf4\ub0c5\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud575\uc2ec \uaddc\uce59 (The Handshake)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\ub370\uc774\ud130 \uc804\uc1a1(Transfer)\uc740 \uc624\uc9c1 <code>Valid<\/code>\uc640 <code>Ready<\/code>\uac00 \ub3d9\uc2dc\uc5d0 &#8216;1&#8217;\uc77c \ub54c(High)\ub9cc \uc77c\uc5b4\ub0a9\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Valid=1, Ready=0:<\/strong> Sender\ub294 \ub370\uc774\ud130\ub97c \ubcf4\ub0c8\uc9c0\ub9cc, Receiver\uac00 \ubc14\ube60\uc11c \ubabb \ubc1b\uc2b5\ub2c8\ub2e4. Sender\ub294 <code>Ready<\/code>\uac00 1\uc774 \ub420 \ub54c\uae4c\uc9c0 \ud604\uc7ac \ub370\uc774\ud130\ub97c \uc720\uc9c0\ud574\uc57c \ud569\ub2c8\ub2e4(Wait).<\/li>\n\n\n\n<li><strong>Valid=0, Ready=1:<\/strong> Receiver\ub294 \ubc1b\uc744 \uc900\ube44\uac00 \ub410\uc9c0\ub9cc, \ubcf4\ub0bc \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub300\uae30\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>Valid=1, Ready=1:<\/strong> <strong>Handshake<\/strong>, \ub370\uc774\ud130\uac00 \uc804\uc1a1\ub429\ub2c8\ub2e4. \ub2e4\uc74c clock\uc5d0 \uc0c8\ub85c\uc6b4 \ub370\uc774\ud130\ub97c \ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. \ubb38\uc81c \ubc1c\uc0dd: Ready \uc2e0\ud638\uc758 \ud0c0\uc774\ubc0d \uc545\ubabd<\/h2>\n\n\n<style>.kb-image1110_a8c8d0-48.kb-image-is-ratio-size, .kb-image1110_a8c8d0-48 .kb-image-is-ratio-size{max-width:680px;width:100%;}.wp-block-kadence-column > .kt-inside-inner-col > .kb-image1110_a8c8d0-48.kb-image-is-ratio-size, .wp-block-kadence-column > .kt-inside-inner-col > .kb-image1110_a8c8d0-48 .kb-image-is-ratio-size{align-self:unset;}.kb-image1110_a8c8d0-48 figure{max-width:680px;}.kb-image1110_a8c8d0-48 .image-is-svg, .kb-image1110_a8c8d0-48 .image-is-svg img{width:100%;}.kb-image1110_a8c8d0-48 .kb-image-has-overlay:after{opacity:0.3;}@media all and (max-width: 767px){.kb-image1110_a8c8d0-48.kb-image-is-ratio-size, .kb-image1110_a8c8d0-48 .kb-image-is-ratio-size{max-width:280px;width:100%;}.kb-image1110_a8c8d0-48 figure{max-width:280px;}}<\/style>\n<div class=\"wp-block-kadence-image kb-image1110_a8c8d0-48\"><figure class=\"aligncenter size-large\"><img data-dominant-color=\"ebebeb\" data-has-transparency=\"true\" style=\"--dominant-color: #ebebeb;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"246\" src=\"https:\/\/rtlearner.com\/wp-content\/uploads\/2025\/12\/image-5-1024x246.png\" alt=\"Ready signal\" class=\"kb-img wp-image-1111 has-transparency\" srcset=\"https:\/\/rtlearner.com\/wp-content\/uploads\/2025\/12\/image-5-1024x246.png 1024w, https:\/\/rtlearner.com\/wp-content\/uploads\/2025\/12\/image-5-300x72.png 300w, https:\/\/rtlearner.com\/wp-content\/uploads\/2025\/12\/image-5-768x184.png 768w, https:\/\/rtlearner.com\/wp-content\/uploads\/2025\/12\/image-5.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Ready signal<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uac04\ub2e8\ud55c \ud504\ub85c\ud1a0\ucf5c\uc744 \ubaa8\ub4c8 A -&gt; \ubaa8\ub4c8 B -&gt; \ubaa8\ub4c8 C\ub85c \uae38\uac8c \uc5f0\uacb0\ud55c\ub2e4\uace0 \uc0c1\uc0c1\ud574 \ubd05\uc2dc\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Data<\/code>\uc640 <code>Valid<\/code>\ub294 \uc21c\ubc29\ud5a5(Forward)\uc73c\ub85c \ud750\ub974\uc9c0\ub9cc, <strong><code>Ready<\/code> \uc2e0\ud638\ub294 \uc5ed\ubc29\ud5a5(Backward)\uc73c\ub85c \ud750\ub978\ub2e4<\/strong>\ub294 \uac83\uc774 \ubb38\uc81c\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubaa8\ub4c8 C\uac00 \ubc14\ube60\uc9c0\uba74(<code>Ready_C=0<\/code>), \ubaa8\ub4c8 B\ub3c4 \uba48\ucdb0\uc57c \ud558\uace0(<code>Ready_B=0<\/code>), \uadf8\ub798\uc57c \ubaa8\ub4c8 A\ub3c4 \uba48\ucda5\ub2c8\ub2e4(<code>Ready_A=0<\/code>).<\/li>\n\n\n\n<li>\uc989, <code>Ready<\/code> \uc2e0\ud638\ub294 <strong>\ubaa8\ub4e0 \ubaa8\ub4c8\uc744 \uac70\uccd0 \ub9e8 \uc55e\ub2e8\uae4c\uc9c0 \uc870\ud569 \ud68c\ub85c(Combinational Path)\ub85c \uc9c1\uacb0<\/strong>\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uacbd\ub85c\uac00 \uae38\uc5b4\uc9c0\uba74 <strong>Setup Time Violation<\/strong>\uc774 \ubc1c\uc0dd\ud558\uc5ec \ub3d9\uc791 \uc8fc\ud30c\uc218\ub97c \uc62c\ub9b4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uadf8\ub807\ub2e4\uace0 <code>Ready<\/code> \uc2e0\ud638\uc5d0 \ub2e8\uc21c\ud788 \ub808\uc9c0\uc2a4\ud130(Flip-flop)\ub97c \ub123\uc73c\uba74, timing\uc774 \ud55c clock \ubc00\ub824\uc11c \uc774\ubbf8 \uba48\ucdb0\uc57c \ud560 \ub54c \ub370\uc774\ud130\ub97c \ud558\ub098 \ub354 \ubcf4\ub0b4\ubc84\ub9ac\ub294 <strong>Data Loss<\/strong> \uc0ac\uace0\uac00 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. \ud574\uacb0\ucc45: Skid Buffer\ub780 \ubb34\uc5c7\uc778\uac00?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Skid Buffer\ub294 <strong>&#8216;pipeline register&#8217;<\/strong> \uc5ed\ud560\uc744 \ud558\uba74\uc11c\ub3c4 &#8216;Valid-Ready handshake&#8217;\ub97c \uc644\ubcbd\ud558\uac8c \uc9c0\uc6d0\ud558\ub294 \uc791\uc740 \ubc84\ud37c \ud68c\ub85c\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ub3d9\uc791 \uc6d0\ub9ac: &#8220;\uc77c\ub2e8 \ubc1b\uace0 \uc0dd\uac01\ud558\uc790&#8221;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Skid Buffer\ub294 \ud0c0\uc774\ubc0d \ubb38\uc81c\ub97c \ub04a\uae30 \uc704\ud574 \uc785\ub825\ub2e8\uacfc \ucd9c\ub825\ub2e8 \uc0ac\uc774\uc5d0 \ub808\uc9c0\uc2a4\ud130\ub97c \ub461\ub2c8\ub2e4. \uadf8\ub7f0\ub370 \ud6c4\ub2e8(Destination)\uc774 \uac11\uc790\uae30 <code>Ready=0<\/code>\uc744 \ubcf4\ub0b4\uba74 \uc5b4\ub5bb\uac8c \ud560\uae4c\uc694?<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Skid Buffer\ub294 \ub0b4\ubd80\uc801\uc73c\ub85c \ubcf4\uc870 \uc800\uc7a5\uc18c(Shadow Register)\ub97c \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ud6c4\ub2e8\uc774 \uba48\ucd94\ub77c\uace0 \ud558\uba74(<code>Ready_out=0<\/code>), \uc804\ub2e8(Source)\uc5d0\uac8c \ubc14\ub85c \uba48\ucd94\ub77c\uace0 \ud558\ub294 \ub300\uc2e0, \uc77c\ub2e8 \ub370\uc774\ud130 \ud55c \uac1c\ub97c \ub0b4\ubd80 \uc800\uc7a5\uc18c\uc5d0 \uc800\uc7a5(Skid)\ud574 \ub461\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\uadf8\ub9ac\uace0 \ub2e4\uc74c \ud074\ub7ed\uc5d0 \uc804\ub2e8\uc5d0\uac8c <code>Ready_in=0<\/code>\uc744 \ubcf4\ub0b4 \uba48\ucd94\uac8c \ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\uc989, &#8216;\uc790\ub3d9\ucc28\uac00 \uae09\uc815\uac70\ud560 \ub54c \ubbf8\ub044\ub7ec\uc9c0\ub294(Skid) \uac70\ub9ac&#8217;\ub9cc\ud07c\uc758 \uc5ec\uc720 \uacf5\uac04\uc744 \ub46c\uc11c \ucda9\ub3cc\uc744 \ubc29\uc9c0\ud558\ub294 \uc6d0\ub9ac\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Skid Buffer\uc758 \uc885\ub958\uc640 Trade-off<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u2460 Half-Bandwidth Skid Buffer (Simple Register)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\uac00\uc7a5 \ub2e8\uc21c\ud55c \ud615\ud0dc\uc785\ub2c8\ub2e4. \ub370\uc774\ud130\uac00 \uc624\uba74 \ub808\uc9c0\uc2a4\ud130\uc5d0 \uc800\uc7a5\ud558\uace0 \ubcf4\ub0c5\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\ud2b9\uc9d5:<\/strong> \ub370\uc774\ud130\ub97c \ub0b4\ubcf4\ub0b8 \ud6c4, \ub808\uc9c0\uc2a4\ud130\uac00 \ube44\uc6cc\uc838\uc57c\ub9cc \ub2e4\uc74c \ub370\uc774\ud130\ub97c \ubc1b\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>\ub2e8\uc810:<\/strong> <code>Valid<\/code>\uc640 <code>Ready<\/code>\uac00 \ud551\ud401\uc744 \uce58\uba74\uc11c <strong>\ucd5c\ub300 \ucc98\ub9ac\ub7c9(Throughput)\uc774 50%\ub85c \ubc18\ud1a0\ub9c9<\/strong> \ub0a9\ub2c8\ub2e4. \ub9e4 \ud074\ub7ed \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud574\uc57c \ud558\ub294 \uace0\uc18d \uc124\uacc4\uc5d0\ub294 \ubd80\uc801\ud569\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2461 Full-Bandwidth Skid Buffer (True Skid Buffer)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\uc6b0\ub9ac\uac00 \uc2e4\ubb34\uc5d0\uc11c \uc368\uc57c \ud560 \uc9c4\uc9dc Skid Buffer\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\uad6c\uc870:<\/strong> \uba54\uc778 \ub808\uc9c0\uc2a4\ud130 + <strong>\ubc31\uc5c5 \ub808\uc9c0\uc2a4\ud130(Skid Register)<\/strong> + MUX<\/li>\n\n\n\n<li><strong>\ub3d9\uc791:<\/strong>\n<ul class=\"wp-block-list\">\n<li>\ud3c9\uc18c\uc5d0\ub294 \uba54\uc778 \ub808\uc9c0\uc2a4\ud130\ub97c \ud1b5\ud574 \ub370\uc774\ud130\ub97c \ub9e4 \ud074\ub7ed(<code>100% Throughput<\/code>) \uc804\ub2ec\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ud6c4\ub2e8\uc774 \uba48\ucd94\uba74(<code>Ready=0<\/code>), \ub4e4\uc5b4\uc624\ub294 \ub370\uc774\ud130\ub97c \ubc31\uc5c5 \ub808\uc9c0\uc2a4\ud130\uc5d0 \uc7a0\uc2dc \ud53c\uc2e0\uc2dc\ud0b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ud6c4\ub2e8\uc774 \ub2e4\uc2dc \uc5f4\ub9ac\uba74, \ubc31\uc5c5\ud574\ub454 \ub370\uc774\ud130\ub97c \uba3c\uc800 \ubcf4\ub0b4\uace0 \uc815\uc0c1 \ubaa8\ub4dc\ub85c \ub3cc\uc544\uac11\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\uc7a5\uc810:<\/strong> <code>Ready<\/code> \uc2e0\ud638\uc758 \ud0c0\uc774\ubc0d \uacbd\ub85c\ub97c \ub04a\uc73c\uba74\uc11c\ub3c4(Pipeline), <strong>\uc131\ub2a5 \uc800\ud558\uac00 \uc804\ud600 \uc5c6\uc2b5\ub2c8\ub2e4.<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">5. Verilog \uad6c\ud604\uc758 \ud575\uc2ec (Full-Bandwidth)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc9c1\uc811 \uad6c\ud604\ud558\ub824\uba74 \uc0c1\ud0dc \uba38\uc2e0(FSM)\uc774 \ubcf5\uc7a1\ud574\uc9d1\ub2c8\ub2e4. \ubcf4\ud1b5\uc740 \uc544\ub798\uc640 \uac19\uc740 \ub17c\ub9ac \uad6c\uc870\ub97c \uac00\uc9d1\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>\/\/ Skid Buffer \uac1c\ub150\uc801 \uc758\uc0ac \ucf54\ub4dc (Conceptual Code)\nmodule skid_buffer (\n    input clk, rst_n,\n    \/\/ Upstream (Input)\n    input  i_valid,\n    output o_ready,\n    input  &#91;31:0&#93; i_data,\n    \/\/ Downstream (Output)\n    output o_valid,\n    input  i_ready,\n    output &#91;31:0&#93; o_data\n);\n    \/\/ \ub0b4\ubd80 \uc0c1\ud0dc: 0=Empty, 1=Busy(Normal), 2=Full(Skid Active)\n    reg &#91;1:0&#93; state; \n    reg &#91;31:0&#93; main_reg, skid_reg;\n\n    \/\/ Output Logic\n    assign o_valid = (state != 0); \/\/ \ub370\uc774\ud130\uac00 \uc788\uc73c\uba74 Valid\n    assign o_ready = (state != 2); \/\/ \uaf49 \ucc28\uc9c0 \uc54a\uc558\uc73c\uba74 \ubc1b\uc744 \uc218 \uc788\uc74c (\ud575\uc2ec!)\n\n    always @(posedge clk or negedge rst_n) begin\n        if (!rst_n) begin\n            state &lt;= 0;\n        end else begin\n            case (state)\n                0: if (i_valid) begin \/\/ Empty -> Load\n                       main_reg &lt;= i_data;\n                       state &lt;= 1; \n                   end\n                1: begin \/\/ Normal Mode\n                       if (i_ready &amp;&amp; i_valid) main_reg &lt;= i_data; \/\/ Pass-through\n                       else if (!i_ready &amp;&amp; i_valid) begin \/\/ Back-pressure! -> Skid\n                           skid_reg &lt;= i_data; \/\/ Save to Skid\n                           state &lt;= 2;\n                       end\n                       else if (i_ready &amp;&amp; !i_valid) state &lt;= 0; \/\/ Drain\n                   end\n                2: if (i_ready) begin \/\/ Full -> Output Skid\n                       main_reg &lt;= skid_reg; \/\/ Move Skid to Main\n                       state &lt;= 1;\n                   end\n            endcase\n        end\n    end\n    assign o_data = main_reg;\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: #616E88\">\/\/ Skid Buffer \uac1c\ub150\uc801 \uc758\uc0ac \ucf54\ub4dc (Conceptual Code)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">module<\/span><span style=\"color: #D8DEE9FF\"> skid_buffer (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">input<\/span><span style=\"color: #D8DEE9FF\"> clk, rst_n,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ Upstream (Input)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">input<\/span><span style=\"color: #D8DEE9FF\">  i_valid,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">output<\/span><span style=\"color: #D8DEE9FF\"> o_ready,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">input<\/span><span style=\"color: #D8DEE9FF\">  &#91;<\/span><span style=\"color: #B48EAD\">31<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; i_data,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ Downstream (Output)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">output<\/span><span style=\"color: #D8DEE9FF\"> o_valid,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">input<\/span><span style=\"color: #D8DEE9FF\">  i_ready,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">output<\/span><span style=\"color: #D8DEE9FF\"> &#91;<\/span><span style=\"color: #B48EAD\">31<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; o_data<\/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\">\/\/ \ub0b4\ubd80 \uc0c1\ud0dc: 0=Empty, 1=Busy(Normal), 2=Full(Skid Active)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">reg<\/span><span style=\"color: #D8DEE9FF\"> &#91;<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; state; <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">reg<\/span><span style=\"color: #D8DEE9FF\"> &#91;<\/span><span style=\"color: #B48EAD\">31<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">&#93; main_reg, skid_reg;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ Output Logic<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">assign<\/span><span style=\"color: #D8DEE9FF\"> o_valid <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> (state <\/span><span style=\"color: #81A1C1\">!=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">); <\/span><span style=\"color: #616E88\">\/\/ \ub370\uc774\ud130\uac00 \uc788\uc73c\uba74 Valid<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">assign<\/span><span style=\"color: #D8DEE9FF\"> o_ready <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> (state <\/span><span style=\"color: #81A1C1\">!=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #D8DEE9FF\">); <\/span><span style=\"color: #616E88\">\/\/ \uaf49 \ucc28\uc9c0 \uc54a\uc558\uc73c\uba74 \ubc1b\uc744 \uc218 \uc788\uc74c (\ud575\uc2ec!)<\/span><\/span>\n<span class=\"line\"><\/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\">posedge<\/span><span style=\"color: #D8DEE9FF\"> clk <\/span><span style=\"color: #81A1C1\">or<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">negedge<\/span><span style=\"color: #D8DEE9FF\"> rst_n) <\/span><span style=\"color: #81A1C1\">begin<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #81A1C1\">!<\/span><span style=\"color: #D8DEE9FF\">rst_n) <\/span><span style=\"color: #81A1C1\">begin<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            state <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">end<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">begin<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">case<\/span><span style=\"color: #D8DEE9FF\"> (state)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">: <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> (i_valid) <\/span><span style=\"color: #81A1C1\">begin<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #616E88\">\/\/ Empty -&gt; Load<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                       main_reg <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> i_data;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                       state <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\">; <\/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: #D8DEE9FF\">                <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\">: <\/span><span style=\"color: #81A1C1\">begin<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #616E88\">\/\/ Normal Mode<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                       <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> (i_ready <\/span><span style=\"color: #81A1C1\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> i_valid) main_reg <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> i_data; <\/span><span style=\"color: #616E88\">\/\/ Pass-through<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                       <\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #81A1C1\">!<\/span><span style=\"color: #D8DEE9FF\">i_ready <\/span><span style=\"color: #81A1C1\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> i_valid) <\/span><span style=\"color: #81A1C1\">begin<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #616E88\">\/\/ Back-pressure! -&gt; Skid<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                           skid_reg <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> i_data; <\/span><span style=\"color: #616E88\">\/\/ Save to Skid<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                           state <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #D8DEE9FF\">;<\/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: #D8DEE9FF\">                       <\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> (i_ready <\/span><span style=\"color: #81A1C1\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">!<\/span><span style=\"color: #D8DEE9FF\">i_valid) state <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">; <\/span><span style=\"color: #616E88\">\/\/ Drain<\/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: #D8DEE9FF\">                <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #D8DEE9FF\">: <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> (i_ready) <\/span><span style=\"color: #81A1C1\">begin<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #616E88\">\/\/ Full -&gt; Output Skid<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                       main_reg <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> skid_reg; <\/span><span style=\"color: #616E88\">\/\/ Move Skid to Main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                       state <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\">;<\/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: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">endcase<\/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: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">assign<\/span><span style=\"color: #D8DEE9FF\"> o_data <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> main_reg;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">endmodule<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">6. \uacb0\ub860: \uc5b8\uc81c \uc368\uc57c \ud558\ub294\uac00?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Skid Buffer\ub294 \ub9cc\ubcd1\ud1b5\uce58\uc57d\uc774 \uc544\ub2d9\ub2c8\ub2e4. MUX\uc640 \ucd94\uac00 \ub808\uc9c0\uc2a4\ud130\ub85c \uc778\ud574 \uba74\uc801(Area)\uc744 \ub354 \ucc28\uc9c0\ud569\ub2c8\ub2e4. \ub2e4\uc74c\uacfc \uac19\uc740 \uc0c1\ud669\uc5d0 \uc804\ub7b5\uc801\uc73c\ub85c \uc0ac\uc6a9\ud574\uc57c\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Long Path Breaking:<\/strong> \ubaa8\ub4c8 \uac04 \uac70\ub9ac\uac00 \uba40\uc5b4 \ubc30\uc120 \uc9c0\uc5f0(Routing Delay)\uc774 \ud070 \uacbd\uc6b0.<\/li>\n\n\n\n<li><strong>Timing Closure:<\/strong> <code>Ready<\/code> \uc2e0\ud638 \uacbd\ub85c\uc5d0\uc11c Setup Violation\uc774 \ubc1c\uc0dd\ud560 \ub54c.<\/li>\n\n\n\n<li><strong>Modular Design:<\/strong> IP\ub97c \uc124\uacc4\ud560 \ub54c \uc678\ubd80\uc640\uc758 \ud0c0\uc774\ubc0d \uc758\uc874\uc131\uc744 \ub04a\uace0 \uc2f6\uc744 \ub54c (Output \ub2e8\uc5d0 Skid Buffer \ubc30\uce58).<\/li>\n<\/ol>\n\n\n<style>.kadence-column1110_8b9b21-49 > .kt-inside-inner-col{box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}.kadence-column1110_8b9b21-49 > .kt-inside-inner-col,.kadence-column1110_8b9b21-49 > .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-column1110_8b9b21-49 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1110_8b9b21-49 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1110_8b9b21-49 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1110_8b9b21-49 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1110_8b9b21-49{position:relative;}@media all and (max-width: 1024px){.kadence-column1110_8b9b21-49 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1110_8b9b21-49 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1110_8b9b21-49\"><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-fan-in-fan-out\/\">[RTL] Fan-in\uacfc Fan-out: timing issue\uc758 \uc228\uaca8\uc9c4 \uc8fc\ubc94\uacfc \ud574\uacb0\ucc45<\/a><\/p>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\ucc38\uace0: <a href=\"https:\/\/zipcpu.com\/blog\/2017\/08\/14\/strategies-for-pipelining.html\" target=\"_blank\" rel=\"noopener\">ZipCPU<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When designing RTL, there inevitably comes a point where you find yourself in a dilemma: \"Timing...\"<\/p>","protected":false},"author":1,"featured_media":1111,"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":[2],"tags":[24,107,112],"class_list":["post-1110","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rtl-engineer","tag-amba","tag-rtl","tag-timing"],"_links":{"self":[{"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/posts\/1110","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=1110"}],"version-history":[{"count":2,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/posts\/1110\/revisions"}],"predecessor-version":[{"id":1228,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/posts\/1110\/revisions\/1228"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/media\/1111"}],"wp:attachment":[{"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/media?parent=1110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/categories?post=1110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rtlearner.com\/en\/wp-json\/wp\/v2\/tags?post=1110"}],"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-09-02 10:18:55 UTC, Optimization Time: 10.82ms -->