Section 7.2  Random-Access Memory    303
The memory unit will then take the bits from the word that has been selected by the 
address and apply them to the output data lines. The contents of the selected word do 
not change after the read operation, i.e., the word operation is nondestructive. 
Commercial memory components available in integrated‐circuit chips sometimes 
provide the two control inputs for reading and writing in a somewhat different configu-
ration. Instead of having separate read and write inputs to control the two operations, 
most integrated circuits provide two other control inputs: One input selects the unit and 
the other determines the operation. The memory operations that result from these 
control inputs are specified in  Table   7.1   . 
The memory enable (sometimes called the chip select) is used to enable the particu-
lar memory chip in a multichip implementation of a large memory. When the memory 
enable is inactive, the memory chip is not selected and no operation is performed. When 
the memory enable input is active, the read/write input determines the operation to be 
performed. 
 
Memory Description in HDL 
Memory is modeled in the Verilog hardware description language (HDL) by an array 
of registers. It is declared with a  reg  keyword, using a two‐dimensional array. The first 
number in the array specifies the number of bits in a word (the  word length ) and the 
second gives the number of words in memory (memory  depth ). For example, a memory 
of 1,024 words with 16 bits per word is declared as 
reg [15: 0] memword [0: 1023];  
This statement describes a two‐dimensional array of 1,024 registers, each containing 16 
bits. The second array range in the declaration of  memword  specifies the total number 
of words in memory and is equivalent to the address of the memory. For example, 
memword[512]  refers to the 16‐bit memory word at address 512. 
The operation of a memory unit is illustrated in HDL Example 7.1. The memory has 
64 words of four bits each. There are two control inputs:  Enable  and  ReadWrite . The 
DataIn  and  DataOut  lines have four bits each. The input  Address  must have six bits 
(since    2
6
=64   ). The memory is declared as a two‐dimensional array of registers, with 
Mem  used as an identifier that can be referenced with an index to access any of the 
64words. A memory operation requires that the  Enable  input be active. The  ReadWrite  
input determines the type of operation. If  ReadWrite  is 1, the memory performs a read 
operation symbolized by the statement 
Table 7.1 
Control Inputs to Memory Chip 
Memory Enable  
Read/Write  
Memory Operation  
None 
Write to selected word 
Read from selected word 
And paste pdf into powerpoint - C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF in C#.net, ASP.NET MVC, WinForms, WPF
Online C# Tutorial for Creating PDF from Microsoft PowerPoint Presentation
create powerpoint from pdf; converting pdf to powerpoint online
And paste pdf into powerpoint - VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to PDF in vb.net, ASP.NET MVC, WinForms, WPF
VB.NET Tutorial for Export PDF file from Microsoft Office PowerPoint
export pdf into powerpoint; converting pdf to ppt
304    Chapter 7  Memory and Programmable Logic
DataOut d Mem [Address];  
Execution of this statement causes a transfer of four bits from the selected memory word 
specified by  Address  onto the  DataOut  lines. If  ReadWrite  is 0, the memory performs a 
write operation symbolized by the statement 
Mem [Address] d DataIn;  
Execution of this statement causes a transfer from the four‐bit  DataIn  lines into the 
memory word selected by  Address . When  Enable  is equal to 0, the memory is disabled 
and the outputs are assumed to be in a high‐impedance state, indicated by the symbol  z . 
Thus, the memory has three‐state outputs. 
HDL Example 7.1  
// Read and write operations of memory
// Memory size is 64 words of four bits each.
module  memory (Enable, ReadWrite, Address, DataIn, DataOut);
input   Enable, ReadWrite;
input   [3: 0] DataIn;
input   [5: 0] Address;
output  [3: 0] DataOut;
reg  [3: 0] 
DataOut;
reg  [3: 0] 
Mem [0: 63]; 
// 64 x 4 memory
always  @ (Enable  or  ReadWrite)
if  (Enable)
if  (ReadWrite) DataOut = Mem [Address]; 
// Read
else  Mem [Address] = DataIn; 
// Write
else  DataOut = 4'bz; 
// High impedance state
endmodule 
Timing Waveforms 
The operation of the memory unit is controlled by an external device such as a central 
processing unit (CPU). The CPU is usually synchronized by its own clock. The memory, 
however, does not employ an internal clock. Instead, its read and write operations are 
specified by control inputs. The  access time  of memory is the time required to select a 
word and read it. The  cycle time  of memory is the time required to complete a write 
operation. The CPU must provide the memory control signals in such a way as to syn-
chronize its internal clocked operations with the read and write operations of memory. 
This means that the access time and cycle time of the memory must be within a time 
equal to a fixed number of CPU clock cycles. 
Suppose as an example that a CPU operates with a clock frequency of 50 MHz, giv-
ing a period of 20 ns for one clock cycle. Suppose also that the CPU communicates with 
a memory whose access time and cycle time do not exceed 50 ns. This means that the 
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Ability to copy selected PDF pages and paste into another PDF file. Copy three pages from test1.pdf and paste into test2.pdf.
convert pdf into ppt; pdf to ppt converter online
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
Ability to copy PDF pages and paste into another PDF file. Support ' Copy three pages from test1.pdf and paste into test2.pdf. Dim
how to convert pdf slides to powerpoint; convert pdf file to powerpoint
Section 7.2  Random-Access Memory    305
write cycle terminates the storage of the selected word within a 50‐ns interval and that 
the read cycle provides the output data of the selected word within 50 ns or less. (The 
two numbers are not always the same.) Since the period of the CPU cycle is 20 ns, it will 
be necessary to devote at least two‐and‐a‐half, and possibly three, clock cycles for each 
memory request. 
The memory timing shown in  Fig.   7.4    is for a CPU with a 50‐MHz clock and a memory 
with 50 ns maximum cycle time. The write cycle in part (a) shows three 20‐ns cycles:  T 1, 
20 nsec
T1
T1
T2
T3
Address valid
Data valid
(a) Write cycle
Clock
Memory
address
Memory
enable
Read/
Write
Data
input
50 nsec
T1
T1
T2
T3
Address valid
Data valid
(b) Read cycle
Clock
Memory
address
Memory
enable
Read/
Write
Data
output
Initiate writing
Initiate read
Latched
FIGURE 7.4 
Memory cycle timing waveforms       
C# PDF insert text Library: insert text into PDF content in C#.net
Parameters: Name, Description, Valid Value. value, The char wil be added into PDF page, 0
convert pdf to powerpoint online; pdf to powerpoint converter
VB.NET PDF insert image library: insert images into PDF in vb.net
project. Import graphic picture, digital photo, signature and logo into PDF document. Add file. Insert images into PDF form field in VB.NET. An
image from pdf to ppt; pdf to powerpoint converter online
306    Chapter 7  Memory and Programmable Logic
T 2, and  T 3. For a write operation, the CPU must provide the address and input data to 
the memory. This is done at the beginning of  T 1. (The two lines that cross each other in 
the address and data waveforms designate a possible change in value of the multiple 
lines.) The memory enable and the read/write signals must be activated after the signals 
in the address lines are stable in order to avoid destroying data in other memory words. 
The memory enable signal switches to the high level and the read/write signal switches 
to the low level to indicate a write operation. The two control signals must stay active 
for at least 50 ns. The address and data signals must remain stable for a short time after 
the control signals are deactivated. At the completion of the third clock cycle, the mem-
ory write operation is completed and the CPU can access the memory again with the 
next  T 1 cycle. 
The read cycle shown in  Fig.   7.4   (b) has an address for the memory provided by the 
CPU. The memory‐enable and read/write signals must be in their high level for a read 
operation. The memory places the data of the word selected by the address into the out-
put data lines within a 50‐ns interval (or less) from the time that the memory enable is 
activated. The CPU can transfer the data into one of its internal registers during the 
negative transition of  T 3. The next  T 1 cycle is available for another memory request. 
Types of Memories 
The mode of access of a memory system is determined by the type of components used. 
In a random‐access memory, the word locations may be thought of as being separated 
in space, each word occupying one particular location. In a sequential‐access memory, 
the information stored in some medium is not immediately accessible, but is available 
only at certain intervals of time. A magnetic disk or tape unit is of this type. Each 
memory location passes the read and write heads in turn, but information is read out 
only when the requested word has been reached. In a random‐access memory, the access 
time is always the same regardless of the particular location of the word. In a  sequential‐
access memory, the time it takes to access a word depends on the position of the word 
with respect to the position of the read head; therefore, the access time is variable. 
Integrated circuit RAM units are available in two operating modes:  static  and 
dynamic . Static RAM (SRAM) consists essentially of internal latches that store the 
binary information. The stored information remains valid as long as power is applied to 
the unit. Dynamic RAM (DRAM) stores the binary information in the form of electric 
charges on capacitors provided inside the chip by MOS transistors. The stored charge 
on the capacitors tends to discharge with time, and the capacitors must be periodically 
recharged by  refreshing  the dynamic memory. Refreshing is done by cycling through the 
words every few milliseconds to restore the decaying charge. DRAM offers reduced 
power consumption and larger storage capacity in a single memory chip. SRAM is 
easier to use and has shorter read and write cycles. 
Memory units that lose stored information when power is turned off are said to be 
volatile . CMOS integrated circuit RAMs, both static and dynamic, are of this category, since 
the binary cells need external power to maintain the stored information. In contrast, a 
nonvolatile memory, such as magnetic disk, retains its stored information after the removal 
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Split PDF file into two or multiple files in ASP.NET webpage online. Support to break a large PDF file into smaller files in .NET WinForms.
how to change pdf to powerpoint; pdf to powerpoint slide
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
DLLs for Adding Page into PDF Document in VB.NET Class. Add necessary references: RasterEdge.Imaging.Basic.dll. RasterEdge.Imaging.Basic.Codec.dll.
copying image from pdf to powerpoint; pdf to powerpoint
Section 7.3  Memory Decoding    307
of power. This type of memory is able to retain information because the data stored on 
magnetic components are represented by the direction of magnetization, which is retained 
after power is turned off. ROM is another nonvolatile memory. Anonvolatile memory 
enables digital computers to store programs that will be needed again after the computer 
is turned on. Programs and data that cannot be altered are stored in ROM, while other 
large programs are maintained on magnetic disks. The latter programs are transferred into 
the computer RAM as needed. Before the power is turned off, the binary information from 
the computer RAM is transferred to the disk so that the information will be retained.   
7.3    MEMORY DECODING 
In addition to requiring storage components in a memory unit, there is a need for decod-
ing circuits to select the memory word specified by the input address. In this section, we 
present the internal construction of a RAM and demonstrate the operation of the 
decoder. To be able to include the entire memory in one diagram, the memory unit 
presented here has a small capacity of 16 bits, arranged in four words of 4 bits each. An 
example of a two‐dimensional coincident decoding arrangement is presented to show a 
more efficient decoding scheme that is used in large memories. We then give an example 
of address multiplexing commonly used in DRAM integrated circuits. 
Internal Construction 
The internal construction of a RAM of  m  words and  n  bits per word consists of    *n    
binary storage cells and associated decoding circuits for selecting individual words. The 
binary storage cell is the basic building block of a memory unit. The equivalent logic of 
a binary cell that stores one bit of information is shown in  Fig.   7.5   . The storage part of 
the cell is modeled by an  SR  latch with associated gates to form a  D  latch. Actually, the 
BC
Select
Output
Input
Read/Write
Read/Write
S
R
Select
Input
Output
(a) Logic diagram
(b) Block diagram
FIGURE 7.5 
Memory cell       
C# PDF insert image Library: insert images into PDF in C#.net, ASP
Import graphic picture, digital photo, signature and logo into PDF document. Merge several images into PDF. Insert images into PDF form field.
pdf to powerpoint conversion; embed pdf into powerpoint
C# PDF File Split Library: Split, seperate PDF into multiple files
Divide PDF File into Two Using C#. This is an C# example of splitting a PDF to two new PDF files. Split PDF Document into Multiple PDF Files in C#.
how to convert pdf into powerpoint; changing pdf to powerpoint
308    Chapter 7  Memory and Programmable Logic
cell is an electronic circuit with four to six transistors. Nevertheless, it is possible and 
convenient to model it in terms of logic symbols. A binary storage cell must be very small 
in order to be able to pack as many cells as possible in the small area available in the 
integrated circuit chip. The binary cell stores one bit in its internal latch. The select input 
enables the cell for reading or writing, and the read/write input determines the operation 
of the cell when it is selected. A 1 in the read/write input provides the read operation by 
forming a path from the latch to the output terminal. A 0 in the read/write input provides 
the write operation by forming a path from the input terminal to the latch. 
The logical construction of a small RAM is shown in  Fig.   7.6   . This RAM consists of 
four words of four bits each and has a total of 16 binary cells. The small blocks labeled 
BC represent the binary cell with its three inputs and one output, as specified in 
Fig.  7.5   (b). Amemory with four words needs two address lines. The two address inputs 
go through a    2 2 *4    decoder to select one of the four words. The decoder is enabled with 
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
Output data
Input data 
Address
inputs
Memory
enable
Read/Write
Word   0
Word 1
Word 2
Word 3
2× 4
decoder
EN
FIGURE 7.6 
Diagram of a    4 * 4    RAM       
Section 7.3  Memory Decoding    309
the memory‐enable input. When the memory enable is 0, all outputs of the decoder are 
0 and none of the memory words are selected. With the memory select at 1, one of the 
four words is selected, dictated by the value in the two address lines. Once a word has 
been selected, the read/write input determines the operation. During the read opera-
tion, the four bits of the selected word go through OR gates to the output terminals. 
(Note that the OR gates are drawn according to the array logic established in  Fig.   7.1   .) 
During the write operation, the data available in the input lines are transferred into the 
four binary cells of the selected word. The binary cells that are not selected are disabled, 
and their previous binary values remain unchanged. When the memory select input that 
goes into the decoder is equal to 0, none of the words are selected and the contents of 
all cells remain unchanged regardless of the value of the read/write input. 
Commercial RAMs may have a capacity of thousands of words, and each word may 
range from 1 to 64 bits. The logical construction of a large‐capacity memory would be a 
direct extension of the configuration shown here. A memory with    2
k
words of  n  bits per 
word requires  k  address lines that go into a    k* 2
k
decoder. Each one of the decoder 
outputs selects one word of  n  bits for reading or writing. 
Coincident Decoding 
A decoder with  k  inputs and    2
k
outputs requires    2
k
AND gates with  k  inputs per gate. 
The total number of gates and the number of inputs per gate can be reduced by 
employing two decoders in a two‐dimensional selection scheme. The basic idea in 
two‐dimensional decoding is to arrange the memory cells in an array that is close as 
possible to square. In this configuration, two  k /2‐input decoders are used instead of 
one  k ‐input decoder. One decoder performs the row selection and the other the col-
umn selection in a two‐dimensional matrix configuration. 
The two‐dimensional selection pattern is demonstrated in  Fig.   7.7    for a 1K‐word 
memory. Instead of using a single    10* * 1,024 decoder,    we use two    5* * 32 decoders.    
With the single decoder, we would need 1,024 AND gates with 10 inputs in each. In the 
two‐decoder case, we need 64 AND gates with 5 inputs in each. The five most significant 
bits of the address go to input  X  and the five least significant bits go to input  Y.  Each 
word within the memory array is selected by the coincidence of one  X  line and one  Y  
line. Thus, each word in memory is selected by the coincidence between 1 of 32 rows and 
1 of 32 columns, for a total of 1,024 words. Note that each intersection represents a word 
that may have any number of bits. 
As an example, consider the word whose address is 404. The 10‐bit binary equivalent 
of 404 is 01100 10100. This makes    X= 01100    (binary 12) and    = 10100    (binary 20). 
The  n ‐bit word that is selected lies in the  X  decoder output number 12 and the  Y  decoder 
output number 20. All the bits of the word are selected for reading or writing.  
Address Multiplexing 
The SRAM memory cell modeled in  Fig.   7.5    typically contains six transistors. In order to 
build memories with higher density, it is necessary to reduce the number of transistors in 
a cell. The DRAM cell contains a single MOS transistor and a capacitor. The charge stored 
310    Chapter 7  Memory and Programmable Logic
on the capacitor discharges with time, and the memory cells must be periodically recharged 
by refreshing the memory. Because of their simple cell structure, DRAMs typically have 
four times the density of SRAMs. This allows four times as much memory capacity to be 
placed on a given size of chip. The cost per bit of DRAM storage is three to four times 
less than that of SRAM storage. A further cost savings is realized because of the lower 
power requirement of DRAM cells. These advantages make DRAM the preferred tech-
nology for large memories in personal digital computers. DRAM chips are available in 
capacities from 64K to 256M bits. Most DRAMs have a 1‐bit word size, so several chips 
have to be combined to produce a larger word size. 
Because of their large capacity, the address decoding of DRAMs is arranged in a 
two‐dimensional array, and larger memories often have multiple arrays. To reduce the 
number of pins in the IC package, designers utilize address multiplexing whereby one 
set of address input pins accommodates the address components. In a two‐dimensional 
array, the address is applied in two parts at different times, with the row address first and 
the column address second. Since the same set of pins is used for both parts of the 
address, the size of the package is decreased significantly. 
We will use a 64K‐word memory to illustrate the address‐multiplexing idea. 
A diagram of the decoding configuration is shown in  Fig.   7.8   . The memory consists of 
5× 32 decoder
5× 32
decoder
X
Y
0 1 2
20
31
. . . . . .
. . .
binary address
01100 10100
X
Y
0
1
2
12
31
.
.
.
.
.
.
FIGURE 7.7 
Two‐dimensional decoding structure for a 1K‐word memory       
Section 7.3  Memory Decoding    311
a two‐dimensional array of cells arranged into 256 rows by 256 columns, for a total of 
2
8
* 2
8
=2
16
=64K    words. There is a single data input line, a single data output line, 
and a read/write control, as well as an eight‐bit address input and two address  strobes,  
the latter included for enabling the row and column address into their respective regis-
ters. The row address strobe (RAS) enables the eight‐bit row register, and the column 
address strobe (CAS) enables the eight‐bit column register. The bar on top of the name 
of the strobe symbol indicates that the registers are enabled on the zero level of the 
signal. 
The 16‐bit address is applied to the DRAM in two steps using RAS and CAS. Initially, 
both strobes are in the 1 state. The 8‐bit row address is applied to the address inputs and 
RAS is changed to 0. This loads the row address into the row address register. RAS also 
enables the row decoder so that it can decode the row address and select one row of the 
array. After a time equivalent to the settling time of the row selection, RAS goes back 
to the 1 level. The 8‐bit column address is then applied to the address inputs, and CAS 
is driven to the 0 state. This transfers the column address into the column register and 
Data
in
Data
out
8-bit column
register
8-bit
row
register
8× 256
decoder
8× 256
decoder
Read/Write
256× 256
memory
cell array
CAS
RAS
8-bit
address
FIGURE 7.8 
Address multiplexing for a 64K DRAM       
312    Chapter 7  Memory and Programmable Logic
enables the column decoder. Now the two parts of the address are in their respective 
registers, the decoders have decoded them to select the one cell corresponding to the 
row and column address, and a read or write operation can be performed on that cell. 
CAS must go back to the 1 level before initiating another memory operation.   
7.4    ERROR DETECTION AND CORRECTION 
The dynamic physical interaction of the electrical signals affecting the data path of a 
memory unit may cause occasional errors in storing and retrieving the binary informa-
tion. The reliability of a memory unit may be improved by employing error‐detecting 
and error‐correcting codes. The most common error detection scheme is the parity bit. 
(See Section 3.9.) A parity bit is generated and stored along with the data word in 
memory. The parity of the word is checked after reading it from memory. The data word 
is accepted if the parity of the bits read out is correct. If the parity checked results in an 
inversion, an error is detected, but it cannot be corrected. 
An error‐correcting code generates multiple parity check bits that are stored with 
the data word in memory. Each check bit is a parity over a group of bits in the data 
word. When the word is read back from memory, the associated parity bits are also 
read from memory and compared with a new set of check bits generated from the data 
that have been read. If the check bits are correct, no error has occurred. If the check 
bits do not match the stored parity, they generate a unique pattern, called a  syndrome 
that can be used to identify the bit that is in error. A single error occurs when a bit 
changes in value from 1 to 0 or from 0 to 1 during the write or read operation. If the 
specific bit in error is identified, then the error can be corrected by complementing 
the erroneous bit. 
Hamming Code 
One of the most common error‐correcting codes used in RAMs was devised by R. W. 
Hamming. In the Hamming code,  k  parity bits are added to an  n ‐bit data word, forming 
a new word of    nk    bits. The bit positions are numbered in sequence from 1 to    nk.    
Those positions numbered as a power of 2 are reserved for the parity bits. The remain-
ing bits are the data bits. The code can be used with words of any length. Before giving 
the general characteristics of the code, we will illustrate its operation with a data word 
of eight bits. 
Consider, for example, the 8‐bit data word 11000100. We include 4 parity bits with 
the 8‐bit word and arrange the 12 bits as follows:   
Bit position: 
10 
11 
12 
P
1
P
2
P
4
P
8
Documents you may be interested
Documents you may be interested