Register Transfer and Microoperations
RTL

Register Transfer Language

A digital system is an interconnected collection of digital hardware modules designed to accomplish specific information-processing tasks. These systems vary in size and complexity, from a few integrated circuits to complex interconnected digital computers. Digital system design invariably uses a modular approach, where modules are constructed from components such as registers, decoders, arithmetic elements, and control logic. These modules are interconnected with common data and control paths to form a digital computer system.

Digital modules are best defined by the registers they contain and the operations performed on the data stored in them. The operations executed on the data stored in registers are called microoperations. A microoperation is an elementary operation performed on the information stored in one or more registers. The result of the operation may replace the previous binary information in a register or may be transferred to another register. Examples of microoperations include shift, count, clear, and load. Some digital components, such as a counter with parallel load, are capable of performing multiple microoperations, including increment and load. A bidirectional shift register, for example, can perform both shift right and shift left microoperations.

Internal Hardware Organization of Digital Computers

The internal hardware organization of a digital computer is best defined by specifying:

  1. The set of registers it contains and their functions.
  2. The sequence of microoperations performed on the binary information stored in the registers.
  3. The control mechanisms that initiate the sequence of microoperations.

While it is possible to describe the sequence of microoperations in a computer using lengthy narrative explanations, it is more convenient to adopt a suitable symbology. This symbology concisely describes the sequence of transfers between registers and the various arithmetic and logic microoperations associated with the transfers. The symbolic notation used to describe these transfers is called a register transfer language.

Register Transfer Language

The term "register transfer" implies the availability of hardware logic circuits that can perform a stated microoperation and transfer the result to the same or another register. The term "language" is borrowed from programming languages, which use symbols to specify computational processes. Similarly, a register transfer language (RTL) is a system for expressing in symbolic form the microoperation sequences among the registers of a digital module. It is a convenient tool for describing the internal organization of digital computers in a concise and precise manner and facilitates the design process of digital systems.


Hello

Symbols in Register Transfer Language

In RTL, computer registers are designated by capital letters (sometimes followed by numerals) to denote their function. For example, the register that holds an address for the memory unit is usually called the Memory Address Register (MAR). Other examples include the Program Counter (PC), the Instruction Register (IR), and general-purpose registers like R1. The individual flip-flops in an nn-bit register are numbered in sequence from 0 through n1n-1, starting from 0 at the rightmost position and increasing towards the left.

Information transfer from one register to another is denoted in symbolic form by a replacement operator. For example:

R2R1R2 \leftarrow R1

This denotes a transfer of the content of register R1 into register R2, replacing the content of R2 with that of R1. By definition, the content of the source register R1 does not change after the transfer.

A statement specifying a register transfer implies that circuits are available from the outputs of the source register to the inputs of the destination register and that the destination register has a parallel load capability. The transfer operation typically occurs under a predetermined control condition, which can be shown using an if-then statement:

If (P = 1) then (R2R1)\text{If (P = 1) then (R2} \leftarrow \text{R1)}

Where PP is a control signal generated in the control section. It is often convenient to separate the control variables from the register transfer operation by specifying a control function, a Boolean variable that equals 1 or 0. The control function can be included in the statement as follows:

P:R2R1P: R2 \leftarrow R1

The colon indicates that the transfer operation should be executed by the hardware only if P=1P = 1.

Timing and Control

Every register transfer statement implies a hardware construction for implementing the transfer. For example, consider the transfer from R1 to R2:

  1. The nn outputs of register R1 are connected to the nn inputs of register R2.
  2. Register R2 has a load input activated by the control variable PP.
  3. It is assumed that PP is synchronized with the same clock as the one applied to the register.

When PP is activated by the rising edge of a clock pulse at time tt, the next positive transition of the clock at time t+1t + 1 finds the load input active, and the data inputs of R2 are then loaded into the register in parallel. PP may return to 0 at time t+1t + 1; otherwise, the transfer will occur with every clock pulse transition while PP remains active.

Note that the clock is not explicitly included as a variable in register transfer statements. It is assumed that all transfers occur during a clock edge transition.

Basic Symbols of Register Transfer Notation

The basic symbols used in register transfer notation are summarized below:

SymbolDescriptionExamples
LettersDenotes a registerMAR, R2
ParenthesesDenotes a part of a registerR2(0-7), R2(L)
Arrow (←)Denotes transfer of informationR2 ← R1
Comma (,)Separates two microoperationsR2 ← R1, R1 ← R2

For example, the statement:

T:R2R1,R1R2T: R2 \leftarrow R1, R1 \leftarrow R2

denotes an operation that exchanges the contents of two registers during one common clock pulse, provided that T=1T = 1. This simultaneous operation is possible with registers that have edge-triggered flip-flops.

Example Microoperation Descriptions

Let's define symbols for various types of microoperations and describe the associated hardware that can implement these microoperations. These symbolic designations will be used to specify register transfers, microoperations, and control functions that describe the internal hardware organization of digital computers.

  • Shift Microoperation:

    • Symbol: RR1R \leftarrow R \ll 1 (shift left), RR1R \leftarrow R \gg 1 (shift right)
    • Description: Shifts the bits in register RR left or right by one position.
  • Count Microoperation:

    • Symbol: RR+1R \leftarrow R + 1
    • Description: Increments the value stored in register RR by one.
  • Clear Microoperation:

    • Symbol: R0R \leftarrow 0
    • Description: Clears the contents of register RR, setting all bits to 0.
  • Load Microoperation:

    • Symbol: RDR \leftarrow D
    • Description: Loads the value DD into register RR.

By adopting a consistent and concise register transfer language, the internal organization and operations of digital computers can be described clearly and precisely, aiding in both design and analysis.