### Lecture 7: Logic Design -- Sequential Circuits, Register Files, and SRAMs

#### Representations of sequential circuits, cont'd (text, sec. B.6)

##### Finite state transition network
• a network consists of a set of nodes connected by arcs
• each node represents a state of the circuit (so a circuit with n bits of registers may have 2**n states)
• each arc represents a possible transition between states; it is labeled by the condition (if any) under which the transition is made
##### Transition table
In a transition table, the input columns represent the state of the circuit and the inputs to the circuit; the output columns represent the next state of the circuit.
##### Designing a sequential circuit
• (sometimes) draw a transition network for the circuit
• build a transition table
• use the transition table as the truth table for the "next state" combinatorial circuit
• convert this table to a circuit
• if necessary, build an output function truth table and convert it to a circuit
• example: binary up-counter; binary up-down counter
• example: "traffic light" circuit from text

#### Design of register files and (static) RAMs

##### Register files (text, pages B-25 to B-27)
• a register file is an array of registers
• the register to be read/written is selected by the "register number" input
• decoders are used to control writes
• multiplexers are used to select data to be read
• a file may have multiple read ports (text, figures B.18 - B.20)
##### Static RAMs (text, pages B-27 to B-31)
• a static RAM is like a large register file, typically made in bit-wide byte-wide configurations
• the bit/byte is selected by the "address" inputs
• use of tri-states in place of multiplexers (text, figure B.22); 2-dimensional layout (text, figure B.24)