Section 7.4  Error Detection and Correction    313
The 4 parity bits,    P
1
,P
2
,P
4
,    and    P
8
,    are in positions 1, 2, 4, and 8, respectively. The 8 bits 
of the data word are in the remaining positions. Each parity bit is calculated as follows: 
P
1
= XOR of bits (3, 5, 7, 9, 11) ) = 1{1{0{0{0 0 = 0
P
2
= XOR of bits (3, 5, 7, 10, 11) ) =1{0{0{1{0= = 0
P
4
= XOR of bits (5, 6, 7, 12) =  1{0{0{0 0 =1
P
8
= XOR of bits s (9, 10, 11, 12) ) = 0{1{0{0 0 = 1
Remember that the exclusive‐OR operation performs the odd function: It is equal to 1 
for an odd number of 1’s in the variables and to 0 for an even number of 1’s. Thus, each 
parity bit is set so that the total number of 1’s in the checked positions, including the 
parity bit, is always even. 
The 8‐bit data word is stored in memory together with the 4 parity bits as a 12‐bit 
composite word. Substituting the 4  P  bits in their proper positions, we obtain the 12‐bit 
composite word stored in memory:   
Bit position: 
10 
11 
12 
When the 12 bits are read from memory, they are checked again for errors. The parity is 
checked over the same combination of bits, including the parity bit. The 4 check bits are 
evaluated as follows: 
C
1
= XOR of bits (1, 3, 5, 7, 9, 11)
C
2
= XOR of bits (2, 3, 6, 7, 10, 11)
C
4
= XOR of bits (4, 5, 6, 7, 12)
C
8
= XOR of bits(8, 9, 10, 11, 12)   
A 0 check bit designates even parity over the checked bits and a 1 designates odd parity. 
Since the bits were stored with even parity, the result,    CC
8
C
4
C
2
C
1
= 0000,    indicates 
that no error has occurred. However, if    C  0,    then the 4‐bit binary number formed by 
the check bits gives the position of the erroneous bit. For example, consider the following 
three cases:   
Bit position: 
 2  3  4  5 
 7  8  9  10  11  12   
 0  1  1  1 
 0  1  0  1  0  0  No error 
 0  1  1  1 
 0  1  0  1  0  0  Error in bit 1 
 0  1  1  0 
 0  1  0  1  0  0  Error in bit 5 
In the first case, there is no error in the 12‐bit word. In the second case, there is an 
error in bit position number 1 because it changed from 0 to 1. The third case shows 
Pdf conversion to 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
pdf conversion to powerpoint; create powerpoint from pdf
Pdf conversion to 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
change pdf to powerpoint; converting pdf to powerpoint
314    Chapter 7  Memory and Programmable Logic
an error in bit position 5, with a change from 1 to 0. Evaluating the XOR of the corre-
sponding bits, we determine the 4 check bits to be as follows:   
C
8
C
4
C
2
C
1
For no error: 
With error in bit 1: 
With error in bit 5: 
Thus, for no error, we have    C= 0000;    with an error in bit 1, we obtain    =0001;    and with 
an error in bit 5, we get    = 0101.    When the binary number  C  is not equal to 0000, it gives 
the position of the bit in error. The error can be corrected by complementing the corre-
sponding bit. Note that an error can occur in the data word or in one of the parity bits. 
The Hamming code can be used for data words of any length. In general, the Ham-
ming code consists of  k  check bits and  n  data bits, for a total of    k    bits. The syndrome 
value  C  consists of  k  bits and has a range of    2
k
values between 0 and    2
k
- 1.    One of 
these values, usually zero, is used to indicate that no error was detected, leaving    2
k
- 1    
values to indicate which of the    nk    bits was in error. Each of these    2
k
- 1    values can 
be used to uniquely describe a bit in error. Therefore, the range of  k  must be equal to 
or greater than    nk,    giving the relationship 
2
k
- 1Ú k   
Solving for  n  in terms of  k,  we obtain 
2
k
- 1- Ú n   
This relationship gives a formula for establishing the number of data bits that can be 
used in conjunction with  k  check bits. For example, when    k= 3,    the number of data bits 
that can be used is    n… … (2
3
- 1 - 3) ) =4.    For    =4,    we have    2
4
- 1- 4 = 11,    giving 
…11.    The data word may be less than 11 bits, but must have at least 5 bits; otherwise, 
only 3 check bits will be needed. This justifies the use of 4 check bits for the 8 data bits 
in the previous example. Ranges of  n  for various values of  k  are listed in  Table   7.2   . 
The grouping of bits for parity generation and checking can be determined from a 
list of the binary numbers from 0 through    2
k
- 1.    The least significant bit is a 1 in the 
binary numbers 1, 3, 5, 7, and so on. The second significant bit is a 1 in the binary numbers 
Table 7.2 
Range of Data Bits for k Check Bits 
Number of Check Bits,  k   
Range of Data Bits,  n   
2–4 
5–11 
12–26 
27–57 
58–120 
Online Convert PowerPoint to PDF file. Best free online export
area. Then just wait until the conversion from Powerpoint to PDF is complete and download the file. The perfect conversion tool.
convert pdf pages into powerpoint slides; chart from pdf to powerpoint
C# powerpoint - PowerPoint Conversion & Rendering in C#.NET
And detailed C# demo codes for these conversions are offered below. C# Demo Codes for PowerPoint Conversions. PowerPoint to PDF Conversion.
drag and drop pdf into powerpoint; convert pdf to ppt online without email
Section 7.5  Read‐Only Memory    315
2, 3, 6, 7, and so on. Comparing these numbers with the bit positions used in generating 
and checking parity bits in the Hamming code, we note the relationship between the bit 
groupings in the code and the position of the 1‐bits in the binary count sequence. Note 
that each group of bits starts with a number that is a power of 2: 1, 2, 4, 8, 16, etc. These 
numbers are also the position numbers for the parity bits.  
Single‐Error Correction, Double‐Error Detection 
The Hamming code can detect and correct only a single error. By adding another parity 
bit to the coded word, the Hamming code can be used to correct a single error and detect 
double errors. If we include this additional parity bit, then the previous 12‐bit coded 
word becomes    001110010100P
13
,    where    P
13
is evaluated from the exclusive‐OR of the 
other 12 bits. This produces the 13‐bit word 0011100101001 (even parity). When the 
13‐bit word is read from memory, the check bits are evaluated, as is the parity  P  over 
the entire 13 bits. If    = 0,    the parity is correct (even parity), but if    = 1,    then the 
parity over the 13 bits is incorrect (odd parity). The following four cases can arise: 
If    = 0    and    P= 0,    no error occurred.  
If      0    and    = 1,    a single error occurred that can be corrected.  
If      0    and    = 0,    a double error occurred that is detected, but that cannot be 
corrected.  
If    = 0    and    P= 1,    an error occurred in the    P
13
bit.   
This scheme may detect more than two errors, but is not guaranteed to detect all such 
errors. 
Integrated circuits use a modified Hamming code to generate and check parity bits 
for single‐error correction and double‐error detection. The modified Hamming code 
uses a more efficient parity configuration that balances the number of bits used to cal-
culate the XOR operation. A typical integrated circuit that uses an 8‐bit data word and 
a 5‐bit check word is IC type 74637. Other integrated circuits are available for data words 
of 16 and 32 bits. These circuits can be used in conjunction with a memory unit to correct 
a single error or detect double errors during write and read operations.   
7.5    READ‐ONLY MEMORY 
A read‐only memory (ROM) is essentially a memory device in which permanent binary 
information is stored. The binary information must be specified by the designer and is 
then embedded in the unit to form the required interconnection pattern. Once the pat-
tern is established, it stays within the unit even when power is turned off and on again. 
A block diagram of a ROM consisting of  k  inputs and  n  outputs is shown in  Fig.   7.9   . 
The inputs provide the address for memory, and the outputs give the data bits of the 
stored word that is selected by the address. The number of words in a ROM is deter-
mined from the fact that  k  address input lines are needed to specify    2
k
words. Note that 
ROM does not have data inputs, because it does not have a write operation. Integrated 
.NET PDF Document Viewing, Annotation, Conversion & Processing
XDoc.PDF SDK for .NET. RasterEdge XDoc.PDF for .NET is a professional .NET PDF solution that provides complete and advanced PDF document processing features.
how to add pdf to powerpoint slide; convert pdf to powerpoint slides
C# powerpoint - Convert PowerPoint to TIFF in C#.NET
Supported. Load, Save Document. Preview Document. Conversion. Convert PowerPoint to PDF. Convert PowerPoint to HTML5. Convert PowerPoint to
pdf to ppt; change pdf to powerpoint online
316    Chapter 7  Memory and Programmable Logic
circuit ROM chips have one or more enable inputs and sometimes come with three‐state 
outputs to facilitate the construction of large arrays of ROM. 
Consider, for example, a    32 2 * 8    ROM. The unit consists of 32 words of 8 bits each. 
There are five input lines that form the binary numbers from 0 through 31 for the 
address.  Figure   7.10    shows the internal logic construction of this ROM. The five inputs 
are decoded into 32 distinct outputs by means of a    5 5 * 32    decoder. Each output of the 
decoder represents a memory address. The 32 outputs of the decoder are connected to 
each of the eight OR gates. The diagram shows the array logic convention used in com-
plex circuits. (See Fig. 6.1.) Each OR gate must be considered as having 32 inputs. Each 
output of the decoder is connected to one of the inputs of each OR gate. Since each OR 
gate has 32 input connections and there are 8 OR gates, the ROM contains    32 2 *8 = 256    
internal connections. In general, a    2
k
n    ROM will have an internal    k* 2
k
decoder 
and  n  OR gates. Each OR gate has    2
k
inputs, which are connected to each of the outputs 
of the decoder. 
2
k
×n
ROM
kinputs (address)
noutputs (data)
FIGURE 7.9 
ROM block diagram       
5× 32
decoder
A
7
I
0
I
1
I
2
I
3
I
4
A
6
A
5
A
4
A
3
A
2
A
1
A
0
0
1
2
3
28
29
30
31
.
.
.
FIGURE 7.10 
Internal logic of a    32 2 : : 8    ROM       
How to C#: Overview of Using XDoc.PowerPoint
XDoc.PowerPoint for .NET, like PPTXDocument and PPTXPage. PowerPoint Conversion. XDoc.PowerPoint SDK for .NET empowers C# developers
export pdf into powerpoint; convert pdf file to powerpoint online
C# powerpoint - Convert PowerPoint to PDF in C#.NET
PowerPoint to PDF Conversion Overview. RasterEdge XDoc.PowerPoint empowers your C#.NET application with advanced PowerPoint to PDF conversion functionality.
how to convert pdf into powerpoint slides; convert pdf to editable powerpoint online
Section 7.5  Read‐Only Memory    317
The 256 intersections in  Fig.   7.10    are programmable. A programmable connection 
between two lines is logically equivalent to a switch that can be altered to be either 
closed (meaning that the two lines are connected) or open (meaning that the two 
lines are disconnected). The programmable intersection between two lines is some-
times called a  crosspoint . Various physical devices are used to implement crosspoint 
switches. One of the simplest technologies employs a fuse that normally connects the 
two points, but is opened or “blown” by the application of a high‐voltage pulse into 
the fuse. 
The internal binary storage of a ROM is specified by a truth table that shows the 
word content in each address. For example, the content of a    32 2 * 8    ROM may be 
specified with a truth table similar to the one shown in  Table   7.3   . The truth table shows 
the five inputs under which are listed all 32 addresses. Each address stores a word of 
8 bits, which is listed in the outputs columns. The table shows only the first four and 
the last four words in the ROM. The complete table must include the list of all 
32words. 
The hardware procedure that programs the ROM blows fuse links in accordance with 
a given truth table. For example, programming the ROM according to the truth table 
given by  Table   7.3    results in the configuration shown in  Fig.   7.11   . Every 0 listed in the 
truth table specifies the absence of a connection, and every 1 listed specifies a path that 
is obtained by a connection. For example, the table specifies the eight‐bit word 10110010 
for permanent storage at address 3. The four 0’s in the word are programmed by blowing 
the fuse links between output 3 of the decoder and the inputs of the OR gates associated 
with outputs    A
6
,A
3
,A
2
,    and    A
0
.    The four 1’s in the word are marked with a    *    to denote 
a temporary connection, in place of a dot used for a permanent connection in logic 
diagrams. When the input of the ROM is 00011, all the outputs of the decoder are 0 
except for output 3, which is at logic 1. The signal equivalent to logic 1 at decoder output 
3 propagates through the connections to the OR gate outputs of    A
7
,A
5
,A
4
,    and    A
1
.    The 
other four outputs remain at 0. The result is that the stored word 10110010 is applied to 
the eight data outputs. 
Table 7.3 
ROM Truth Table (Partial) 
Inputs  
Outputs  
 I  
4
  
 I  
3
  
 I  
2
  
 I  
1
  
 I  
0
  
 A  
7
  
 A  
6
  
 A  
5
  
 A  
4
  
 A  
3
  
 A  
2
  
 A  
1
  
 A  
0
  
f
f
VB.NET PDF Converter Library SDK to convert PDF to other file
Conversion of MS Office to PDF. This guide give a series of demo code directly for converting MicroSoft Office Word, Excel and PowerPoint document to PDF file
pdf picture to powerpoint; convert pdf to ppt
C# PDF Converter Library SDK to convert PDF to other file formats
C#.NET PDF - PDF Conversion & Rendering SDK for C#.NET. A best C# PDF converter control for adobe PDF document conversion in Visual Studio .NET applications.
how to convert pdf to ppt using; convert pdf into powerpoint online
318    Chapter 7  Memory and Programmable Logic
Combinational Circuit Implementation 
In Section 4.9, it was shown that a decoder generates the    2
k
minterms of the  k  input 
variables. By inserting OR gates to sum the minterms of Boolean functions, we were 
able to generate any desired combinational circuit. The ROM is essentially a device that 
includes both the decoder and the OR gates within a single device to form a minterm 
generator. By choosing connections for those minterms which are included in the func-
tion, the ROM outputs can be programmed to represent the Boolean functions of the 
output variables in a combinational circuit. 
The internal operation of a ROM can be interpreted in two ways. The first interpreta-
tion is that of a memory unit that contains a fixed pattern of stored words. The second 
interpretation is that of a unit which implements a combinational circuit. From this point 
of view, each output terminal is considered separately as the output of a Boolean func-
tion expressed as a sum of minterms. For example, the ROM of  Fig.   7.11    may be consid-
ered to be a combinational circuit with eight outputs, each a function of the five input 
variables. Output    A
7
can be expressed in sum of minterms as 
A
7
(I
4
,I
3
I
2
,I
1
I
0
) = ∑(0,2,3, c,29)   
(The three dots represent minterms 4 through 27, which are not specified in the figure.) 
A connection marked with   *    in the figure produces a minterm for the sum. All other 
crosspoints are not connected and are not included in the sum. 
In practice, when a combinational circuit is designed by means of a ROM, it is not 
necessary to design the logic or to show the internal gate connections inside the unit. All 
that the designer has to do is specify the particular ROM by its IC number and provide 
the applicable truth table. The truth table gives all the information for programming the 
ROM. No internal logic diagram is needed to accompany the truth table. 
5× 32
decoder
A
7
I
0
I
1
I
2
I
3
I
4
A
6
A
5
A
4
A
3
A
2
A
1
A
0
0
1
2
3
28
29
30
31
.
.
.
FIGURE 7.11 
Programming the ROM according to  Table   7.3          
C# PDF Convert: How to Convert MS PPT to Adobe PDF Document
C# PDF Convert: How to Convert MS PPT to Adobe PDF Document. Provide Free Demo Code for PDF Conversion from Microsoft PowerPoint in C# Program.
convert pdf file to powerpoint presentation; convert pdf to powerpoint slide
VB.NET PowerPoint: Complete PowerPoint Document Conversion in VB.
resolution, bit depth, scaling, etc. Implement Conversion from PowerPoint to PDF in VB.NET, Converting PowerPoint document to PDF
convert pdf slides to powerpoint; and paste pdf to powerpoint
Section 7.5  Read‐Only Memory    319
EXAMPLE7.1 
Design a combinational circuit using a ROM. The circuit accepts a three‐bit number and 
outputs a binary number equal to the square of the input number. 
The first step is to derive the truth table of the combinational circuit. In most cases, 
this is all that is needed. In other cases, we can use a partial truth table for the ROM by 
utilizing certain properties in the output variables.  Table   7.4    is the truth table for the 
combinational circuit. Three inputs and six outputs are needed to accommodate all 
possible binary numbers. We note that output    B
0
is always equal to input    A
0
,    so there 
is no need to generate    B
0
with a ROM, since it is equal to an input variable. Moreover, 
output    B
1
is always 0, so this output is a known constant. We actually need to generate 
only four outputs with the ROM; the other two are readily obtained. The minimum size 
of ROM needed must have three inputs and four outputs. Three inputs specify eight 
words, so the ROM must be of size    8* * 4.    The ROM implementation is shown in 
Fig.  7.12   . The three inputs specify eight words of four bits each. The truth table in 
Fig.  7.12   (b) specifies the information needed for programming the ROM. The block 
diagram of  Fig.   7.12   (a) shows the required connections of the combinational circuit.
A
0
B
0
B
1
B
2
B
3
B
4
B
5
A
1
A
2
(a) Block diagram
(b) ROM truth table
0
8× 4 ROM
A
2
A
1
A
0
B
5
B
4
B
3
B
2
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
FIGURE 7.12  
ROM implementation of Example 7.1       
     
Table 7.4 
Truth Table for Circuit of Example 7.1 
Inputs  
Outputs  
 A  
2
     A  
1
     A  
0
  
  
5
     B  
4
     B  
3
     B  
2
     B  
1
     B  
0
  
Decimal  
16 
25 
36 
49 
320    Chapter 7  Memory and Programmable Logic
Types of ROMs 
The required paths in a ROM may be programmed in four different ways. The first 
is called  mask programming  and is done by the semiconductor company during the 
last fabrication process of the unit. The procedure for fabricating a ROM requires 
that the customer fill out the truth table he or she wishes the ROM to satisfy. The 
truth table may be submitted in a special form provided by the manufacturer or in 
a specified format on a computer output medium. The manufacturer makes the cor-
responding mask for the paths to produce the 1’s and 0’s according to the customer’s 
truth table. This procedure is costly because the vendor charges the customer a 
special fee for custom masking the particular ROM. For this reason, mask program-
ming is economical only if a large quantity of the same ROM configuration is to be 
ordered. 
For small quantities, it is more economical to use a second type of ROM called  pro-
grammable read‐only memory,  or PROM. When ordered, PROM units contain all the 
fuses intact, giving all 1’s in the bits of the stored words. The fuses in the PROM are 
blown by the application of a high‐voltage pulse to the device through a special pin. 
Ablown fuse defines a binary 0 state and an intact fuse gives a binary 1 state. This pro-
cedure allows the user to program the PROM in the laboratory to achieve the desired 
relationship between input addresses and stored words. Special instruments called 
PROM programmers are available commercially to facilitate the procedure. In any case, 
all procedures for programming ROMs are hardware procedures, even though the word 
programming  is used. 
The hardware procedure for programming ROMs or PROMs is irreversible, and once 
programmed, the fixed pattern is permanent and cannot be altered. Once a bit pattern 
has been established, the unit must be discarded if the bit pattern is to be changed. A 
third type of ROM is the  erasable PROM,  or EPROM, which can be restructured to the 
initial state even though it has been programmed previously. When the EPROM is 
placed under a special ultraviolet light for a given length of time, the shortwave radiation 
discharges the internal floating gates that serve as the programmed connections. After 
erasure, the EPROM returns to its initial state and can be reprogrammed to a new set 
of values. 
The fourth type of ROM is the electrically erasable PROM (EEPROM or    E
2
PROM   ). 
This device is like the EPROM, except that the previously programmed connections can 
be erased with an electrical signal instead of ultraviolet light. The advantage is that the 
device can be erased without removing it from its socket. 
Flash memory devices are similar to EEPROMs, but have additional built‐in circuitry 
to selectively program and erase the device in‐circuit, without the need for a special 
programmer. They have widespread application in modern technology in cell phones, 
digital cameras, set‐top boxes, digital TV, telecommunications, nonvolatile data storage, 
and microcontrollers. Their low consumption of power makes them an attractive storage 
medium for laptop and notebook computers. Flash memories incorporate additional 
circuitry, too, allowing simultaneous erasing of blocks of memory, for example, of size 
16 to 64 K bytes. Like EEPROMs, flash memories are subject to fatigue, typically having 
about    10
5
block erase cycles.  
Section 7.6  Programmable Logic Array    321
Combinational PLDs 
The PROM is a combinational programmable logic device (PLD)—an integrated circuit 
with programmable gates divided into an AND array and an OR array to provide an 
AND–OR sum‐of‐product implementation. There are three major types of combina-
tional PLDs, differing in the placement of the programmable connections in the AND–
OR array.  Figure   7.13    shows the configuration of the three PLDs. The PROM has a fixed 
AND array constructed as a decoder and a programmable OR array. The programmable 
OR gates implement the Boolean functions in sum‐of‐minterms form. The PAL has a 
programmable AND array and a fixed OR array. The AND gates are programmed to 
provide the product terms for the Boolean functions, which are logically summed in each 
OR gate. The most flexible PLD is the PLA, in which both the AND and OR arrays can 
be programmed. The product terms in the AND array may be shared by any OR gate 
to provide the required sum‐of‐products implementation. The names PAL and PLA 
emerged from different vendors during the development of PLDs. The implementation 
of combinational circuits with PROM was demonstrated in this section. The design of 
combinational circuits with PLA and PAL is presented in the next two sections. 
7.6    PROGRAMMABLE LOGIC ARRAY 
The PLA is similar in concept to the PROM, except that the PLA does not provide full 
decoding of the variables and does not generate all the minterms. The decoder is 
replaced by an array of AND gates that can be programmed to generate any product 
Inputs
Outputs
Fixed
AND array
(decoder)
programmable
OR array
(a) Programmable read-only memory (PROM)
Inputs
Outputs
programmable
AND array
Fixed
OR array
(b) Programmable array logic (PAL)
Inputs
Outputs
programmable
OR array
programmable
AND array
(c) Programmable logic array (PLA)
FIGURE 7.13  
Basic configuration of three PLDs       
322    Chapter 7  Memory and Programmable Logic
term of the input variables. The product terms are then connected to OR gates to pro-
vide the sum of products for the required Boolean functions. 
The internal logic of a PLA with three inputs and two outputs is shown in  Fig.   7.14   . 
Such a circuit is too small to be useful commercially, but is presented here to demonstrate 
the typical logic configuration of a PLA. The diagram uses the array logic graphic symbols 
for complex circuits. Each input goes through a buffer–inverter combination, shown in the 
diagram with a composite graphic symbol, that has both the true and complement outputs. 
Each input and its complement are connected to the inputs of each AND gate, as indicated 
by the intersections between the vertical and horizontal lines. The outputs of the AND 
gates are connected to the inputs of each OR gate. The output of the OR gate goes to an 
XOR gate, where the other input can be programmed to receive a signal equal to either 
logic 1 or logic 0. The output is inverted when the XOR input is connected to 1 (since 
x{1 =x   ). The output does not change when the XOR input is connected to 0 (since 
x{0 =x   ). The particular Boolean functions implemented in the PLA of  Fig.   7.14    are 
F
1
AB′ + ACABC
F
2
= (AC BC)′
1
2
3
4
C C
C
B
B
B′ A
A
A
AB
AC
BC
ABC
0
1
F
1
F
2
FIGURE 7.14  
PLA with three inputs, four product terms, and two outputs       
Documents you may be interested
Documents you may be interested