<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Moving Data on Digital Logic Notebook</title><link>https://applied-ee.github.io/digital-logic-notebook/docs/building-blocks/moving-data/</link><description>Recent content in Moving Data on Digital Logic Notebook</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://applied-ee.github.io/digital-logic-notebook/docs/building-blocks/moving-data/index.xml" rel="self" type="application/rss+xml"/><item><title>Shift Registers</title><link>https://applied-ee.github.io/digital-logic-notebook/docs/building-blocks/moving-data/shift-registers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/digital-logic-notebook/docs/building-blocks/moving-data/shift-registers/</guid><description>&lt;h1 id="shift-registers"&gt;Shift Registers&lt;a class="anchor" href="#shift-registers"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;A shift register is a row of &lt;a href="https://applied-ee.github.io/digital-logic-notebook/docs/building-blocks/storage/d-flip-flop/"&gt;flip-flops&lt;/a&gt; wired so that each one&amp;rsquo;s output feeds the next one&amp;rsquo;s input. On every clock edge the whole row shifts its contents one position along. Where a plain &lt;a href="https://applied-ee.github.io/digital-logic-notebook/docs/building-blocks/storage/registers/"&gt;register&lt;/a&gt; holds a word still, a shift register makes it &lt;em&gt;move&lt;/em&gt; — which is the basis for nearly every way hardware moves data on a small number of wires.&lt;/p&gt;
&lt;h2 id="serial-and-parallel-in-four-combinations"&gt;Serial and Parallel, in Four Combinations&lt;a class="anchor" href="#serial-and-parallel-in-four-combinations"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The value of a shift register is converting between serial and parallel form, and parts are named for how data enters and leaves:&lt;/p&gt;</description></item><item><title>Bus Transceivers</title><link>https://applied-ee.github.io/digital-logic-notebook/docs/building-blocks/moving-data/bus-transceivers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/digital-logic-notebook/docs/building-blocks/moving-data/bus-transceivers/</guid><description>&lt;h1 id="bus-transceivers"&gt;Bus Transceivers&lt;a class="anchor" href="#bus-transceivers"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;A bus transceiver is a bidirectional &lt;a href="https://applied-ee.github.io/digital-logic-notebook/docs/building-blocks/moving-data/buffers/"&gt;buffer&lt;/a&gt; with direction control — the part that lets a device drive a shared bus, receive from it, and get out of the way when it is not its turn. It exists because a bus is a set of wires many devices share, and sharing wires safely is harder than it looks.&lt;/p&gt;
&lt;h2 id="the-problem-of-a-shared-bus"&gt;The Problem of a Shared Bus&lt;a class="anchor" href="#the-problem-of-a-shared-bus"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;On a bus, several devices connect to the same lines, but only &lt;strong&gt;one&lt;/strong&gt; may drive them at any instant. If two devices drive the same wire to opposite levels, they fight — a low-impedance path from supply to ground that corrupts the data and can damage the drivers. This is &lt;strong&gt;bus contention&lt;/strong&gt;, and avoiding it is the whole discipline of bus design: every device must present a &lt;strong&gt;three-state&lt;/strong&gt; output that can go high-impedance (electrically disconnected) whenever it is not the active driver.&lt;/p&gt;</description></item><item><title>Buffers</title><link>https://applied-ee.github.io/digital-logic-notebook/docs/building-blocks/moving-data/buffers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/digital-logic-notebook/docs/building-blocks/moving-data/buffers/</guid><description>&lt;h1 id="buffers"&gt;Buffers&lt;a class="anchor" href="#buffers"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;A buffer is a gate that computes nothing — its output simply equals its input — yet it is one of the most useful parts in the toolbox. What a buffer provides is not logic but &lt;em&gt;electrical&lt;/em&gt; help: drive, isolation, and, in its three-state form, the ability to disconnect.&lt;/p&gt;
&lt;h2 id="the-gate-that-does-nothing-usefully"&gt;The Gate That Does Nothing, Usefully&lt;a class="anchor" href="#the-gate-that-does-nothing-usefully"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A non-inverting buffer is, at heart, two &lt;a href="https://applied-ee.github.io/digital-logic-notebook/docs/building-blocks/gates/not/"&gt;inverters&lt;/a&gt; in series — the double inversion cancels, leaving the logic value unchanged but the signal freshly restored and able to drive a much heavier load than the original could. That buys three things:&lt;/p&gt;</description></item></channel></rss>