2.1. Integrated Circuits
MSI: Medium-scale integration, a dozens or hundreds of gates per chip.
LSI: Large-scale integration, up to several thousand gates per chip.
VLSI: Very large-scale integration, many thousands or millions of gates per chip. ( Modern microprocessors. )
2.2. Encoders and Decoders
An optional enable input, if 0, causes all outputs to be 0.
If more than one input is one, the output is undefined. ( It is predictable if the gate-level design of the encoder is known, but the definition of an encoder requires that only one input be 1. )
2.3. Multiplexers and Demultiplexers
Note that a demultiplexer is exactly the same circuit as a decoder with an enable input. The enable input on a decoder can be viewed as the data input of a demultiplexer which is routed to one of the outputs.
2.4. RegistersA register is a sequence of flip-flops used to store a word of binary information. A word is any number of bits of data, and is defined by the architecture of the CPU. For example, a 64-bit CPU such as an AMD Sempron uses a 64-bit word. An 8-bit CPU such as a Z80 uses an 8-bit word.
CK _-_-_-_-_-_-_-_-_-_-_-_-_ LD ______________-------____Implement parallel load register with D flip-flops and extra gates.
2.5. Shift RegistersA shift register is capable of moving the contents of each flip-flop to a neighboring flip flop. Shift operations are usually called left shift and right shift.
Bits vacated by a shift (e.g. the rightmost bit in a left shift) are filled by one of several methods:
- Set to 0 (logical shift)
- Left unchanged. Used for right-shift only, this is an arithmetic shift. It has the effect of dividing a two's complement integer by 2, regardless of sign.
- Brought in from outside the register. This is used in serial communication. Data coming over the communication wire is brought into the outermost bit of the register at each clock pulse. After n shifts, an n-bit word has been loaded in serial fashion. Some common simple serial communication systems are X2C and SPI.
- Stored in the CPU's status register as an indicator.
- Shipped out over a serial communication line as input to the receiving shift register.
2.6. Binary CountersA binary counter is a register with the ability to increment itself. The internal logic for making this happen is relatively simple, but is left to a course in digital logic. Binary counters are commonly used as timers. By knowing the clock frequency and reading the value of a counter that has been continuously enabled, one can determine how much real time has passed. Given the clock speeds are very high on modern processors (MHz or GHz), small counters (16 or even 32 bits) will overflow (go from all 1's to all 0's) after a short time. This even can often be configured to generate an interrupt, so that software can count the overflows and thus extend the range of the timer.
2.7. Memory Unit
RAM is also known as volatile memory, since its contents disappear (evaporate) when power is cut.
- k address lines for 2k memory cells. (Usually one byte each.)
- n input data lines (n usually = 8)
- n output data lines (n usually = 8)
- Read/Write select
2.8. Circuit Implementation
- Can be programmed in-house, whereas ASICs usually need to be fabricated in a specialized factory, which is expensive and may cause delays.
- FPGAs protect intellectual property. Your circuit design never has to be given to another company in order to implement the circuit. FPGAs are very difficult to reverse-engineer. (It's hard to determine the complete functionality of the FPGA when it implements a complex circuit.)
- When bugs are discovered in the circuit design, they can be fixed by reprogramming, rather than replacement of the hardware.