RTL Components
Bus
- Group of n≥1 signals

- At RT-level, busses are used to connect system components

- Advantages compared to point-to-point
- Low hardware overhead: all components use the same bus
- scalability: easy to add new components without needing to redesign
- Easy broadcasting: One component writes, all others read
- Drawbacks compared to point-to-point
- Sequential communication
- Has a protocol for transmitting signals serially
- Single point of failure
- Technology must allow multiple outputs on a single line (“tri-state”)
- We have very few of these busses on modern computers
- Now most things communicate in parallel
N-Bit (Word) Gate
- Grouping of n≥1 independent gates

Multiplexer
- Connects one of n inputs to a single output at a time
- Also known as a data selector
- n data inputs
- 1 data output
- k select input (n≤2k)
- Logic function
- z=∑j=0n−1mj(ak−1,…,a0)xj
- mj(ak−1,…,a0) is the jth minterm of k variables
- ak−1,…,a0 addresses the input data
- Extensions
- Selecting a word
- zi=∑j=0n−1mj⋅xj,l ∀0…m−1
- Multiple Selections
- m⌈log2n⌉ selector inputs
- Written (IN):(OUT) MUX
- How if/else is implemented
- One of the more expensive components in hardware
Demultipexer
- Connects 1 inputs to one of n outputs
- The inverse of a multiplexor
- Logic function: zj=mj(ak−1…a0)⋅x
Encoder
- A logic block that outputs a unique binary number for each input
- 2n inputs, n outputs
- Have an additional output (input active) used to recognize cases where all inputs are 0
- Priority Encoder
- Many inputs can be 1 simultaneously
- The output is the binary code for the biggest index i where xi=1
- All inputs have priority, where the higher the index, the higher the priority
Decoder
- A logic block that assigns a single output for each possible combination of inputs
- n inputs, 2n outputs
- Application: selecting the word to read in Memory