Digital Integrated Circuit Design

One of the most important building blocks of modern digital systems is the semiconductor memory. A semiconductor memory is used to store digital data. In this way it is somewhat similar to a digital register, but unlike a register, it is normally not possible to access all storage locations in parallel at the same time. Rather, only one or a few memory locations can be addressed during a single access. In a semiconductor memory, in addition to the data lines, there will be additional address inputs, which, after being decoded, will determine which address location or locations are to be accessed. Also, there will be control lines, which determine the function being performed.
Random-access semiconductor memories can have their individual memory locations randomly accessed either for reading or writing. The random-access memory (RAM) is contrasted with a sequential memory in which the memory locations can be accessed only sequentially (one after the other) in a particular order. For example, a magnetic tape used to store digital data is considered a sequential memory. Sequential memories are beyond the scope of this text.
Whether a storage cell of a random-access memory is being read from or written into is determined by a control line, often designated R/ W, which will be a "1" when a memory location is being read. Some semiconductor memories cannot have their contents changed during normal operation. These are called read-only memories (ROMs). Their contents are determined either at the time of...