A relatively small number of modules, decoders, multiplexers, encoders, etc., are used repeatedly in digital designs. These building blocks are the idioms of modern digital design. Often, we design a module by composing a number of these building blocks to realize the desired function, rather than writing its truth table and directly synthesizing a logical implementation.
In the 1970s and 1980s most digital systems were built from small integrated circuits that each contained one of these building block functions. The popular 7400 series of TTL logic [106], for example, contained many multiplexers and decoders. During that period, the art of digital design largely consisted of selecting the right building blocks from the TTL databook and assembling them into modules. Today, with most logic implemented as ASICs or FPGAs, we are not constrained by what building blocks are available in the TTL databook. However, the basic building blocks are still quite useful elements from which to build a system.
MULTI-BIT NOTATION
Throughout this book we use bus notation in figures to denote multi-bit signals with a single line. For example, in Figure 8.1, we represent the eight-bit signal b7:0 with a single line. The diagonal slash across the signal indicates that this line represents a multi-bit signal. The number “8” below the slash indicates that the width of the bus is eight bits.
Single bits and subfields are selected from a multi-bit signal using diagonal connectors, as shown for bits b7 and b5, and the three-bit subfield b5:3. Each diagonal connector is labeled with the bits being selected. The bit selections may overlap – as is the case with b5 and b5:3. The subfield b5:3 is itself a multi-bit signal and is labeled accordingly – with a slash and the number “3.”
DECODERS
In general, a decoder converts symbols from one code to another. We have already seen an example of a binary to seven-segment decoder in Section 7.3. When used by itself, however, the term decoder means a binary to one-hot decoder. That converts a symbol from a binary code (each bit pattern represents a symbol) to a one-hot code (at most one bit can be high at a time and each bit represents a symbol). In Section 8.4 we will discuss encoders that reverse this process. That is, they are one-hot to binary decoders.
Review the options below to login to check your access.
Log in with your Cambridge Aspire website account to check access.
If you believe you should have access to this content, please contact your institutional librarian or consult our FAQ page for further information about accessing our content.