


{"id":38420,"date":"2026-11-06T15:15:31","date_gmt":"2026-11-06T07:15:31","guid":{"rendered":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/"},"modified":"2026-11-06T15:15:31","modified_gmt":"2026-11-06T07:15:31","slug":"ddr-fly-by-topology","status":"publish","type":"post","link":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/","title":{"rendered":"DDR Fly-By Topology Guide: Routing and Write Leveling"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#Follow_the_Clock_Past_Both_Memory_Devices\" >Follow the Clock Past Both Memory Devices<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#Fly-By_vs_Balanced_T_vs_Point-to-Point\" >Fly-By vs Balanced T vs Point-to-Point<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#Map_Each_Signal_Group_Before_Routing\" >Map Each Signal Group Before Routing<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#Build_a_Timing_Budget_in_Picoseconds\" >Build a Timing Budget in Picoseconds<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#Match_Shared_Signals_at_Each_Receiver\" >Match Shared Signals at Each Receiver<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#Keep_Data_Lane_Checks_Separate_From_Fly-By_Checks\" >Keep Data Lane Checks Separate From Fly-By Checks<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#Place_Termination_for_the_Route_You_Actually_Built\" >Place Termination for the Route You Actually Built<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#Check_the_Return_Path_Through_Layer_Changes\" >Check the Return Path Through Layer Changes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#What_Write_Leveling_Changes\" >What Write Leveling Changes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#What_Write_Leveling_Cannot_Fix\" >What Write Leveling Cannot Fix<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#Use_Failure_Patterns_to_Narrow_the_First_Debug_Step\" >Use Failure Patterns to Narrow the First Debug Step<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#Release_With_Routing_and_Bring-Up_Evidence\" >Release With Routing and Bring-Up Evidence<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#FAQ\" >FAQ<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#References\" >References<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#Prepare_a_Stackup_and_Routing_Review\" >Prepare a Stackup and Routing Review<\/a><\/li><\/ul><\/nav><\/div>\n<div class=\"yzp-no-index\"><\/div><p>In a DDR fly-by topology, shared signals such as clock, address and command travel along a route that passes the memory devices in order. The clock therefore reaches each device at a different time. Where supported, write leveling compensates for the clock-to-write-strobe timing difference at each device; it cannot repair a poorly terminated or incorrectly routed signal.<\/p>\n<p>Consider a hypothetical single-rank board with two discrete DDR3 devices. A controller drives the shared clock and command network, and each device has its own data byte lanes in this example. The goal is to review the route and collect evidence before debugging firmware or changing the board.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bestpcbs.com\/blog\/wp-content\/uploads\/2026\/11\/ddr-processor-board.jpg\" width=\"1120\" height=\"630\" style=\"max-width:100%;height:auto\" alt=\"Embedded processor board with two rectangular memory packages\"><figcaption>AI-generated illustration of a processor and adjacent memory packages, not a reference layout.<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Follow_the_Clock_Past_Both_Memory_Devices\"><\/span>Follow the Clock Past Both Memory Devices<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Think of the shared route as one road with two stops. The first receiver sees the edge earlier because its route from the controller is shorter in time. The second sees it later. The receivers do not regenerate the clock for the next device; the PCB interconnect carries it past both loads.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Fly-By_vs_Balanced_T_vs_Point-to-Point\"><\/span>Fly-By vs Balanced T vs Point-to-Point<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>These topologies distribute a signal in different ways, and the controller documentation determines which is allowed for a particular group. Matching all loads to the same delay is not automatically the design goal on a fly-by net.<\/p>\n<figure class=\"wp-block-table\">\n<table>\n<tbody>\n<tr>\n<td><strong>Topology<\/strong><\/td>\n<td><strong>Routing shape<\/strong><\/td>\n<td><strong>Key check<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Fly-by<\/td>\n<td>Receivers along a shared route<\/td>\n<td>Local timing at each load and far-end treatment<\/td>\n<\/tr>\n<tr>\n<td>Balanced T<\/td>\n<td>Branches arranged for similar delays<\/td>\n<td>Branch matching and reflections at the junction<\/td>\n<\/tr>\n<tr>\n<td>Point-to-point<\/td>\n<td>One route between two endpoints<\/td>\n<td>Endpoint timing and reference continuity<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Map_Each_Signal_Group_Before_Routing\"><\/span>Map Each Signal Group Before Routing<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Make a routing table from the controller and memory documentation. For this example, CK means the clock pair, CA refers to command and address, DQ carries data, and DQS is the strobe used to time the data. Check control signals separately instead of assuming that every non-data pin belongs on one shared route.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Build_a_Timing_Budget_in_Picoseconds\"><\/span>Build a Timing Budget in Picoseconds<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Use delays at the receiver pins rather than simply comparing whole-net lengths. The following values are invented to demonstrate the calculation, not electrical limits. A board-specific budget must include the applicable controller and DRAM rules, package delays where required, and actual routing geometry.<\/p>\n<figure class=\"wp-block-table\">\n<table>\n<tbody>\n<tr>\n<td><strong>Illustrative parameter<\/strong><\/td>\n<td><strong>Device A<\/strong><\/td>\n<td><strong>Device B<\/strong><\/td>\n<\/tr>\n<tr>\n<td>CK path delay<\/td>\n<td>180 ps<\/td>\n<td>330 ps<\/td>\n<\/tr>\n<tr>\n<td>Write DQS path delay<\/td>\n<td>200 ps<\/td>\n<td>220 ps<\/td>\n<\/tr>\n<tr>\n<td>DQS minus CK path delay<\/td>\n<td>+20 ps<\/td>\n<td>\u2212110 ps<\/td>\n<\/tr>\n<tr>\n<td>Relative difference between locations<\/td>\n<td>Baseline<\/td>\n<td>130 ps earlier relative to local CK<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>The example assumes simultaneous launch for the arithmetic only. It does not calculate the real phase at the receiver, a training register value, or compliance margin.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Match_Shared_Signals_at_Each_Receiver\"><\/span>Match Shared Signals at Each Receiver<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Check the controller-to-A segment and the controller-to-B segment separately using the constraints for the signal group. A report that ends at the last termination can hide mismatches at A. Export a source-to-load delay report with named endpoints and verify which trace and via segments are included.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Keep_Data_Lane_Checks_Separate_From_Fly-By_Checks\"><\/span>Keep Data Lane Checks Separate From Fly-By Checks<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In this single-rank example each data lane is reviewed against its own strobe. Do not route DQ along the address chain or assume that a length match between two different byte lanes proves that either lane is valid. Use the lane mapping and timing constraints for the actual controller.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Place_Termination_for_the_Route_You_Actually_Built\"><\/span>Place Termination for the Route You Actually Built<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Follow the device-specific termination scheme and place the far-end elements where the approved topology calls for them. A resistor footprint is not enough: review the stub from the main route, the return path and the termination rail where applicable. Clock and single-ended command signals may require different termination arrangements.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bestpcbs.com\/blog\/wp-content\/uploads\/2026\/11\/ddr-memory-components.jpg\" width=\"1120\" height=\"630\" style=\"max-width:100%;height:auto\" alt=\"Memory packages and small passive components on an embedded board\"><figcaption>AI-generated illustration of memory packages and nearby passives; placement and values are not design instructions.<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Check_the_Return_Path_Through_Layer_Changes\"><\/span>Check the Return Path Through Layer Changes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Check every reference transition as well as trace length. A via or plane gap can change the return-current path and create a discontinuity that the length report does not show. Review layers and references with the approved stackup before tuning; then evaluate the resulting interconnect with the tools and models specified for the interface.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_Write_Leveling_Changes\"><\/span>What Write Leveling Changes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Write leveling adjusts the timing of the write strobe relative to the clock observed by the receiving memory. In the <a href=\"https:\/\/docs.amd.com\/r\/en-US\/pg150-ultrascale-memory-ip\/Debugging-Write-Leveling-Calibration-Failures\">AMD PG150 example<\/a>, the controller drives DQS and the memory returns feedback on DQ during calibration. The output is a controller timing adjustment, not a change to the PCB routing.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_Write_Leveling_Cannot_Fix\"><\/span>What Write Leveling Cannot Fix<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Training is not a cure for invalid pin mapping, a missing reference path, a noncompliant termination, or excessive distortion. If the required correction is outside what the specific controller can train, a board can also fail despite having the intended topology. Check supported settings and ranges before interpreting a failure as a layout defect.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Use_Failure_Patterns_to_Narrow_the_First_Debug_Step\"><\/span>Use Failure Patterns to Narrow the First Debug Step<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Start with the failing lane or rank, not a new board revision. A failure isolated to one byte lane suggests checking that lane&#8217;s mapping, strobe and assembly first; a shared failure across devices also warrants reviewing clock, reset, power and configuration. These are starting points, not proven causes. Save the training logs and compare with the released design.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Release_With_Routing_and_Bring-Up_Evidence\"><\/span>Release With Routing and Bring-Up Evidence<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Keep the routing constraints, per-load delay report, approved stackup, topology and termination notes together. Then record the hardware and firmware revisions used for bring-up and run the approved memory validation at the intended operating conditions. A successful boot is useful evidence, but it does not prove timing margin across the product&#8217;s operating range.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"FAQ\"><\/span>FAQ<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3>Can both devices have the same full trace length?<\/h3>\n<p>That is not the normal objective for a clock that passes the devices sequentially. Focus on the required local relationship at each receiver and on the controller&#8217;s allowable path delays. Adding length just to equalize unrelated endpoints can introduce geometry and delay that the routing guide never requested.<\/p>\n<h3>How do I measure only the first section of a fly-by net?<\/h3>\n<p>Define the controller and first receiver as the endpoints in a tool that supports source-to-load or pin-pair reporting. Then compare the reported path against the actual route. If the tool reports only total net length, extract the relevant segments explicitly rather than tuning against the length to the terminator.<\/p>\n<h3>Does a far-end resistor go on every signal?<\/h3>\n<p>No. Use the termination scheme required by the controller, memory and topology. The clock pair, shared single-ended signals, and data lanes can use different arrangements. Read the schematic and layout sections together because placement, connection and electrical value can all affect how a termination works.<\/p>\n<h3>Does write leveling replace read training?<\/h3>\n<p>No. They address different signal directions and timing relationships. The exact calibration sequence depends on the controller and memory. If the system passes one stage but fails another, record the actual failing stage before deciding which signals to inspect or which configuration to change.<\/p>\n<h3>Does a single DRAM device always need fly-by routing?<\/h3>\n<p>No multi-device chain is present when there is only one load on that particular net. However, use the approved topology and termination for the selected controller, device and rank arrangement. The number of packages by itself does not define the number of electrical loads on every signal.<\/p>\n<h3>Can I copy DDR3 constraints to a DDR4 board?<\/h3>\n<p>Do not copy them as a set. A similar topology name does not establish equivalent pin assignments, electrical requirements or allowable timing. Start from the target controller&#8217;s documentation for the exact memory interface, then check the memory data sheet and the proposed stackup before importing constraints.<\/p>\n<h3>Can a fabricated impedance coupon prove the memory interface works?<\/h3>\n<p>No. A coupon can provide evidence about the specified transmission-line construction under its test conditions. It does not measure the assembled receiver timing, lane mapping, connector behavior, or training range. Use it alongside the design review and assembled-board validation, not instead of them.<\/p>\n<h3>What does it mean when a board passes once but fails on a cold boot?<\/h3>\n<p>It shows an intermittent or condition-dependent symptom, not the root cause. Save the actual test conditions and failing training stage. Compare repeatable cold and warm runs with approved instrumentation and configuration, then investigate candidate issues such as timing margin, rail startup, or assembly rather than discarding the failing log.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"References\"><\/span>References<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"https:\/\/docs.amd.com\/r\/en-US\/ug586_7Series_MIS\/DDR3-Component-PCB-Routing\">AMD UG586: DDR3 component routing<\/a>; <a href=\"https:\/\/docs.amd.com\/r\/en-US\/pg150-ultrascale-memory-ip\/Debugging-Write-Leveling-Calibration-Failures\">AMD PG150: write leveling calibration<\/a>. For related stackup questions see the <a href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/microstrip-pcb\/\">Best Technology microstrip PCB guide<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Prepare_a_Stackup_and_Routing_Review\"><\/span>Prepare a Stackup and Routing Review<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Send the target interface, routing layers, controlled impedance requirements, and layout revision to <a href=\"mailto:sales@bestpcbs.com\">sales@bestpcbs.com<\/a> for a project-specific review request.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Follow a two-device DDR layout to see how fly-by routing works, where to check timing, and what write leveling can and cannot fix during bring-up.<\/p>\n","protected":false},"author":32827,"featured_media":38415,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[174],"tags":[9088,9089,8099,9090],"class_list":["post-38420","post","type-post","status-publish","format-standard","hentry","category-bestpcb","tag-ddr-fly-by-topology","tag-ddr-routing","tag-signal-integrity","tag-write-leveling"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"Follow a two-device DDR layout to see how fly-by routing works, where to check timing, and what write leveling can and cannot fix during bring-up.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"mingling, gong\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"PCB &amp; MCPCB - EBest PCB - More Technical Details &amp; News on PCB, MCPCB &amp; Ceramic PCB from EBest PCB\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"DDR Fly-By Topology Guide: Routing and Write Leveling\" \/>\n\t\t<meta property=\"og:description\" content=\"Follow a two-device DDR layout to see how fly-by routing works, where to check timing, and what write leveling can and cannot fix during bring-up.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.bestpcbs.com\/blog\/wp-content\/uploads\/2025\/08\/logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.bestpcbs.com\/blog\/wp-content\/uploads\/2025\/08\/logo.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-11-06T07:15:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-11-06T07:15:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Bestpcbs1\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@bestpcbs\" \/>\n\t\t<meta name=\"twitter:title\" content=\"DDR Fly-By Topology Guide: Routing and Write Leveling\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Follow a two-device DDR layout to see how fly-by routing works, where to check timing, and what write leveling can and cannot fix during bring-up.\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@bestpcbs\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.bestpcbs.com\/blog\/wp-content\/uploads\/2016\/02\/logo.gif\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#blogposting\",\"name\":\"DDR Fly-By Topology Guide: Routing and Write Leveling\",\"headline\":\"DDR Fly-By Topology Guide: Routing and Write Leveling\",\"author\":{\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/author\\\/gong588\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/ddr-processor-board.jpg\",\"width\":1120,\"height\":747},\"datePublished\":\"2026-11-06T15:15:31+08:00\",\"dateModified\":\"2026-11-06T15:15:31+08:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#webpage\"},\"articleSection\":\"bestpcb, DDR fly-by topology, DDR routing, Signal Integrity, write leveling\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/category\\\/bestpcb\\\/#listItem\",\"name\":\"bestpcb\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/category\\\/bestpcb\\\/#listItem\",\"position\":2,\"name\":\"bestpcb\",\"item\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/category\\\/bestpcb\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#listItem\",\"name\":\"DDR Fly-By Topology Guide: Routing and Write Leveling\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#listItem\",\"position\":3,\"name\":\"DDR Fly-By Topology Guide: Routing and Write Leveling\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/category\\\/bestpcb\\\/#listItem\",\"name\":\"bestpcb\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/#organization\",\"name\":\"PCB & MCPCB - Best Technology\",\"description\":\"More Technical Details & News on PCB, MCPCB & Ceramic PCB from EBest PCB\",\"url\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/\",\"telephone\":\"+8675529091601\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/logo.png\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#organizationLogo\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Bestpcbs1\",\"https:\\\/\\\/twitter.com\\\/bestpcbs\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCJsTR02i6mtLFnBBNC_i4bQ\\\/featured\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/best-pcb-technology\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/author\\\/gong588\\\/#author\",\"url\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/author\\\/gong588\\\/\",\"name\":\"mingling, gong\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/37717913504b7ea1df97ec73d58a7bcc?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"mingling, gong\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#webpage\",\"url\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/\",\"name\":\"DDR Fly-By Topology Guide: Routing and Write Leveling\",\"description\":\"Follow a two-device DDR layout to see how fly-by routing works, where to check timing, and what write leveling can and cannot fix during bring-up.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/author\\\/gong588\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/author\\\/gong588\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/ddr-processor-board.jpg\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#mainImage\",\"width\":1120,\"height\":747},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/2026\\\/11\\\/ddr-fly-by-topology\\\/#mainImage\"},\"datePublished\":\"2026-11-06T15:15:31+08:00\",\"dateModified\":\"2026-11-06T15:15:31+08:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/\",\"name\":\"PCB & MCPCB - Best Technology\",\"description\":\"More Technical Details & News on PCB, MCPCB & Ceramic PCB from EBest PCB\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.bestpcbs.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"DDR Fly-By Topology Guide: Routing and Write Leveling","description":"Follow a two-device DDR layout to see how fly-by routing works, where to check timing, and what write leveling can and cannot fix during bring-up.","canonical_url":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#blogposting","name":"DDR Fly-By Topology Guide: Routing and Write Leveling","headline":"DDR Fly-By Topology Guide: Routing and Write Leveling","author":{"@id":"https:\/\/www.bestpcbs.com\/blog\/author\/gong588\/#author"},"publisher":{"@id":"https:\/\/www.bestpcbs.com\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.bestpcbs.com\/blog\/wp-content\/uploads\/2026\/11\/ddr-processor-board.jpg","width":1120,"height":747},"datePublished":"2026-11-06T15:15:31+08:00","dateModified":"2026-11-06T15:15:31+08:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#webpage"},"isPartOf":{"@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#webpage"},"articleSection":"bestpcb, DDR fly-by topology, DDR routing, Signal Integrity, write leveling"},{"@type":"BreadcrumbList","@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.bestpcbs.com\/blog\/#listItem","position":1,"name":"Home","item":"https:\/\/www.bestpcbs.com\/blog\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.bestpcbs.com\/blog\/category\/bestpcb\/#listItem","name":"bestpcb"}},{"@type":"ListItem","@id":"https:\/\/www.bestpcbs.com\/blog\/category\/bestpcb\/#listItem","position":2,"name":"bestpcb","item":"https:\/\/www.bestpcbs.com\/blog\/category\/bestpcb\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#listItem","name":"DDR Fly-By Topology Guide: Routing and Write Leveling"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.bestpcbs.com\/blog\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#listItem","position":3,"name":"DDR Fly-By Topology Guide: Routing and Write Leveling","previousItem":{"@type":"ListItem","@id":"https:\/\/www.bestpcbs.com\/blog\/category\/bestpcb\/#listItem","name":"bestpcb"}}]},{"@type":"Organization","@id":"https:\/\/www.bestpcbs.com\/blog\/#organization","name":"PCB & MCPCB - Best Technology","description":"More Technical Details & News on PCB, MCPCB & Ceramic PCB from EBest PCB","url":"https:\/\/www.bestpcbs.com\/blog\/","telephone":"+8675529091601","logo":{"@type":"ImageObject","url":"https:\/\/www.bestpcbs.com\/blog\/wp-content\/uploads\/2025\/08\/logo.png","@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#organizationLogo"},"image":{"@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/Bestpcbs1","https:\/\/twitter.com\/bestpcbs","https:\/\/www.youtube.com\/channel\/UCJsTR02i6mtLFnBBNC_i4bQ\/featured","https:\/\/www.linkedin.com\/company\/best-pcb-technology"]},{"@type":"Person","@id":"https:\/\/www.bestpcbs.com\/blog\/author\/gong588\/#author","url":"https:\/\/www.bestpcbs.com\/blog\/author\/gong588\/","name":"mingling, gong","image":{"@type":"ImageObject","@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/37717913504b7ea1df97ec73d58a7bcc?s=96&d=mm&r=g","width":96,"height":96,"caption":"mingling, gong"}},{"@type":"WebPage","@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#webpage","url":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/","name":"DDR Fly-By Topology Guide: Routing and Write Leveling","description":"Follow a two-device DDR layout to see how fly-by routing works, where to check timing, and what write leveling can and cannot fix during bring-up.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.bestpcbs.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#breadcrumblist"},"author":{"@id":"https:\/\/www.bestpcbs.com\/blog\/author\/gong588\/#author"},"creator":{"@id":"https:\/\/www.bestpcbs.com\/blog\/author\/gong588\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.bestpcbs.com\/blog\/wp-content\/uploads\/2026\/11\/ddr-processor-board.jpg","@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#mainImage","width":1120,"height":747},"primaryImageOfPage":{"@id":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/#mainImage"},"datePublished":"2026-11-06T15:15:31+08:00","dateModified":"2026-11-06T15:15:31+08:00"},{"@type":"WebSite","@id":"https:\/\/www.bestpcbs.com\/blog\/#website","url":"https:\/\/www.bestpcbs.com\/blog\/","name":"PCB & MCPCB - Best Technology","description":"More Technical Details & News on PCB, MCPCB & Ceramic PCB from EBest PCB","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.bestpcbs.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"PCB &amp; MCPCB - EBest PCB - More Technical Details &amp; News on PCB, MCPCB &amp; Ceramic PCB from EBest PCB","og:type":"article","og:title":"DDR Fly-By Topology Guide: Routing and Write Leveling","og:description":"Follow a two-device DDR layout to see how fly-by routing works, where to check timing, and what write leveling can and cannot fix during bring-up.","og:url":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/","og:image":"https:\/\/www.bestpcbs.com\/blog\/wp-content\/uploads\/2025\/08\/logo.png","og:image:secure_url":"https:\/\/www.bestpcbs.com\/blog\/wp-content\/uploads\/2025\/08\/logo.png","article:published_time":"2026-11-06T07:15:31+00:00","article:modified_time":"2026-11-06T07:15:31+00:00","article:publisher":"https:\/\/www.facebook.com\/Bestpcbs1","twitter:card":"summary_large_image","twitter:site":"@bestpcbs","twitter:title":"DDR Fly-By Topology Guide: Routing and Write Leveling","twitter:description":"Follow a two-device DDR layout to see how fly-by routing works, where to check timing, and what write leveling can and cannot fix during bring-up.","twitter:creator":"@bestpcbs","twitter:image":"https:\/\/www.bestpcbs.com\/blog\/wp-content\/uploads\/2016\/02\/logo.gif"},"aioseo_meta_data":{"post_id":"38420","title":"DDR Fly-By Topology Guide: Routing and Write Leveling","description":"Follow a two-device DDR layout to see how fly-by routing works, where to check timing, and what write leveling can and cannot fix during bring-up.","keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":0,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2026-11-06 07:15:32","updated":"2026-11-06 07:52:43","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.bestpcbs.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.bestpcbs.com\/blog\/category\/bestpcb\/\" title=\"bestpcb\">bestpcb<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tDDR Fly-By Topology Guide: Routing and Write Leveling\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.bestpcbs.com\/blog\/"},{"label":"bestpcb","link":"https:\/\/www.bestpcbs.com\/blog\/category\/bestpcb\/"},{"label":"DDR Fly-By Topology Guide: Routing and Write Leveling","link":"https:\/\/www.bestpcbs.com\/blog\/2026\/11\/ddr-fly-by-topology\/"}],"_links":{"self":[{"href":"https:\/\/www.bestpcbs.com\/blog\/wp-json\/wp\/v2\/posts\/38420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bestpcbs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bestpcbs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bestpcbs.com\/blog\/wp-json\/wp\/v2\/users\/32827"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bestpcbs.com\/blog\/wp-json\/wp\/v2\/comments?post=38420"}],"version-history":[{"count":0,"href":"https:\/\/www.bestpcbs.com\/blog\/wp-json\/wp\/v2\/posts\/38420\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bestpcbs.com\/blog\/wp-json\/wp\/v2\/media\/38415"}],"wp:attachment":[{"href":"https:\/\/www.bestpcbs.com\/blog\/wp-json\/wp\/v2\/media?parent=38420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bestpcbs.com\/blog\/wp-json\/wp\/v2\/categories?post=38420"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bestpcbs.com\/blog\/wp-json\/wp\/v2\/tags?post=38420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}