Section 8.7  Sequential Binary Multiplier    393
The interface between the controller and the datapath consists of the status signals 
and the output signals of the controller. The control signals govern the synchronous 
register operations of the datapath. Signal  Load_regs  loads the internal registers of the 
datapath,  Shift_regs  causes the shift register to shift,  Add_regs  forms the sum of the 
multiplicand and register  A and  Decr_P  decrements the counter. The controller also 
forms output  Ready  to signal to the host environment that the machine is ready to mul-
tiply. The contents of the register holding the product vary during execution, so it is 
useful to have a signal indicating that its contents are valid. Note, again, that the state 
of the control is not an interface signal between the control unit and the datapath. Only 
the signals needed to control the datapath are included in the interface. Putting the state 
in the interface would require a decoder in the datapath, and would require a wider and 
more active bus than the control signals alone. Not good.  
 FIGURE 8.14  
(a) Block diagram and (b) datapath of a binary multiplier       
(a)
Controller
Shift_regs
Load_regs
Start
reset
Decr_P
Q[0]
Add_regs
A
B
C
Q
P
Zero
Multiplicand
Multiplier
Product
clock
Datapath
Ready
(b)
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
15
8
8
0
9
7
7
16
RegisterB (Multiplicand)
RegisterA (Sum)
C
RegisterQ (Multiplier)
8
1 0
0
RegisterP (Counter)
0
How to add pdf to powerpoint presentation - 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
how to convert pdf to powerpoint slides; convert pdf to powerpoint presentation
How to add pdf to powerpoint presentation - 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
conversion of pdf into ppt; convert pdf to powerpoint using
394    Chapter 8  Design at the Register Transfer Level
ASMD Chart 
The ASMD chart for the binary multiplier is shown in  Fig.   8.15   . The intermediate form 
in  Fig.   8.15   (a) annotates the ASM chart of the controller with the register operations, 
and the completed chart in  Fig.   8.15   (b) identifies the Moore and Mealy outputs of the 
controller. Initially, the multiplicand is in  B  and the multiplier in  Q . As long as the circuit 
is in the initial state and  Start  = 0, no action occurs and the system remains in state  S_idle  
with  Ready  asserted. The multiplication process is launched when  Start  = 1. Then, (1)con-
trol goes to state  S_add (2) register  A  and carry flip‐flop  C  are cleared to 0, (3)registers 
 FIGURE 8.15  
ASMD chart for binary multiplier       
S_idle
S_add
Zero
reset_b
Start
1
A<= 0
C<= 0
B<=Multiplicand
Q<=Multiplier
P<=n
Q[0]
S_shift
1
1
P<= P-1
{C, A}<= A + B
{C, A, Q}<= {C, A, Q}>> 1
17-bit register shifts to the
right by one bit
Add multiplicand 
to shifted sum
Decrement counter
(a)
(b)
S_idle
Ready
S_add
Decr_P
Zero
reset_b
Start
1
Q[0]
S_shift
Shift_regs
1
1
Add_regs
Load_regs
{C, A, Q}<={C, A, Q}>>1
{C, A}<= A + B
P<= P-1
A<= 0
C<= 0
B<=Multiplicand
Q<=Multiplier
P<=n
VB.NET PowerPoint: Use PowerPoint SDK to Create, Load and Save PPT
an empty PowerPoint file with our reliable .NET PPT document add-on; a fully customized blank PowerPoint file by using the smart PowerPoint presentation control
converting pdf to powerpoint online; how to convert pdf into powerpoint
VB.NET PowerPoint: Sort and Reorder PowerPoint Slides by Using VB.
index = 1 End If correctOrder.Add(index) Next clip art or screenshot to PowerPoint document slide powerful & profession imaging controls, PDF document, image
and paste pdf to powerpoint; pdf to powerpoint
Section 8.7  Sequential Binary Multiplier    395
B  and  Q  are loaded with the multiplicand and the multiplier, respectively, and (4) the 
sequence counter  P  is set to a binary number  n equal to the number of bits in the mul-
tiplier. In state  S_add the multiplier bit in  Q[0]  is checked, and if it is equal to 1, the 
multiplicand in  B  is added to the partial product in  A . The carry from the addition is 
transferred to  C . The partial product in  A  and  C  is left unchanged if  Q[0]  = 0. The coun-
ter  P  is decremented by 1 regardless of the value of  Q[0] so  Decr_P  is formed in state 
S_add  as a Moore output of the controller. In both cases, the next state is  S_shift . Reg-
isters  C,   A and  Q  are combined into one composite register  CAQ denoted by the 
concatenation { C, A, Q }, and its contents are shifted once to the right to obtain a new 
partial product. This shift operation is symbolized in the flowchart with the Verilog 
logical right‐shift operator, 77. It is equivalent to the following statement in register 
transfer notation:  
Shift right CAQ,C
d
0   
In terms of individual register symbols, the shift operation can be described by the fol-
lowing register operations: 
A
d
shr A,A
n-1
d
C
Q
d
shr Q,Q
n-1
d
A
0
C
d
0   
Both registers  A  and  Q  are shifted right. The leftmost bit of  A designated by    A
n-1
receives the carry from  C . The leftmost bit of  Q,     Q
n-1
, receives the bit from the rightmost 
position of  A  in    A
0
, and  C  is reset to 0. In essence, this is a long shift of the composite 
register  CAQ  with 0 inserted into the serial input, which is at  C . 
The value in counter  P  is checked after the formation of each partial product. If the 
contents of  P  are different from zero, status bit  Zero  is set equal to 0 and the process is 
repeated to form a new partial product. The process stops when the counter reaches 0 
and the controller’s status input  Zero  is equal to 1. Note that the partial product formed 
in  A  is shifted into  Q  one bit at a time and eventually replaces the multiplier. The final 
product is available in  A  and  Q with  A  holding the most significant bits and  Q  the least 
significant bits of the product. 
The previous numerical example is repeated in  Table   8.5    to clarify the multiplication 
process. The procedure follows the steps outlined in the ASMD chart. The data shown 
in the table can be compared with simulation results. 
The type of registers needed for the data processor subsystem can be derived from the 
register operations listed in the ASMD chart. Register  A  is a shift register with parallel 
load to accept the sum from the adder and must have a synchronous clear capability to 
reset the register to 0. Register  Q  is a shift register. The counter  P  is a binary down coun-
ter with a facility to parallel load a binary constant. The  C  flip‐flop must be designed to 
accept the input carry and have a synchronous clear. Registers  B  and  Q  need a parallel 
load capability in order to receive the multiplicand and multiplier prior to the start of the 
multiplication process.    
VB.NET PowerPoint: VB Codes to Create Linear and 2D Barcodes on
Here is a market-leading PowerPoint barcode add-on within VB.NET class, which means it as well as 2d barcodes QR Code, Data Matrix, PDF-417, etc.
converting pdf to ppt online; how to change pdf to powerpoint on
VB.NET PowerPoint: Merge and Split PowerPoint Document(s) with PPT
For Each doc As [String] In dirs docList.Add(doc) Next code in VB.NET to finish PowerPoint document splitting If you want to see more PDF processing functions
change pdf to powerpoint online; pdf to ppt converter online
396    Chapter 8  Design at the Register Transfer Level
8.8    CONTROL LOGIC 
The design of a digital system can be divided into two parts: the design of the regis-
ter transfers in the datapath unit and the design of the control logic of the control 
unit. The control logic is a finite state machine; its Mealy‐ and Moore‐type outputs 
control the operations of the datapath. The inputs to the control unit are the primary 
(external) inputs and the internal status signals fed back from the datapath to the 
controller. The design of the system can be synthesized from an RTL description 
derived from the ASMD chart. Alternatively, a manual design must derive the logic 
governing the inputs to the flip‐flops holding the state of the controller. The informa-
tion needed to form the state diagram of the controller is already contained in the 
ASMD chart, since the rectangular blocks that designate state boxes are the states 
of the sequential circuit. The diamond‐shaped blocks that designate decision boxes 
determine the logical conditions for the next state transition in the state diagram and 
assertions of the conditional outputs. 
As an example, the control state diagram for the binary multiplier developed in the 
previous section is shown in  Fig.   8.16   (a). The information for the diagram is taken directly 
from the ASMD chart of  Fig.   8.15   . The three states  S_idle  through  S_shift  are taken from 
the rectangular state boxes. The inputs  Start  and  Zero  are taken from the diamond‐
shaped decision boxes. The register transfer operations for each of the three states are 
listed in  Fig.   8.16   (b) and are taken from the corresponding state and conditional boxes 
in the ASMD chart. Establishing the state transitions is the initial focus, so the outputs 
of the controller are not shown.  
Table 8.5 
Numerical Example For Binary Multiplier 
Multiplicand  B  = 10111 
2
= 17 
H
= 23 
10
Multiplier  Q  = 10011 
2
= 13 
H
= 19 
10
 
 
 
 
Multiplier in  Q  
00000 
10011 
101 
 
0
= 1; add  B  
10111  
First partial product 
10111 
100 
Shift right  CAQ  
01011 
11001 
 
0
= 1; add  B  
10111  
Second partial product 
00010 
011 
Shift right  CAQ  
10001 
01100 
 
0
= 0; shift right  CAQ  
01000 
10110 
010 
 
0
= 0; shift right  CAQ  
00100 
01011 
001 
 
0
= 1; add  B  
10111  
Fifth partial product 
11011 
Shift right  CAQ  
01101 
10101 
000 
Final product in  AQ  = 0110110101 
2
= 1b5 
H
VB.NET PowerPoint: Add Image to PowerPoint Document Slide/Page
of "AddPage", "InsertPage" and "DeletePage" to add, insert or delete any certain PowerPoint slide without & profession imaging controls, PDF document, tiff
chart from pdf to powerpoint; convert pdf back to powerpoint
C# PDF Text Extract Library: extract text content from PDF file in
text content from source PDF document file for word processing, presentation and desktop How to C#: Extract Text Content from PDF File. Add necessary references
pdf to powerpoint converter online; converting pdf to powerpoint slides
Section 8.8  Control Logic    397
We must execute two steps when implementing the control logic: (1) establish the 
required sequence of states, and (2) provide signals to control the register operations. 
The sequence of states is specified in the ASMD chart or the state diagram. The signals 
for controlling the operations in the registers are specified in the register transfer state-
ments annotated on the ASMD chart or listed in tabular format. For the multiplier, these 
signals are  Load_regs  (for parallel loading the registers in the datapath unit),  Decr_P  
(for decrementing the counter),  Add_regs  (for adding the multiplicand and the partial 
product), and  Shift_regs  (for shifting register  CAQ ). The block diagram of the control 
unit is shown in  Fig.   8.14   (a). The inputs to the controller are  Start, Q[0] and  Zero and 
the outputs are  Ready,   Load_regs,   Decr_P,   Add_regs and  Shift_regs as specified in the 
ASMD chart. We note that  Q[0]  affects only the output of the controller, not its state 
transitions. The machine transitions from  S_add  to  S_shift  unconditionally. 
An important step in the design is the assignment of coded binary values to the states. 
The simplest assignment is the sequence of binary numbers, as shown in  Table   8.6   . 
Another assignment is the Gray code, according to which only one bit changes when 
going from one number to the next. A state assignment often used in control design is 
the  one‐hot  assignment. This assignment uses as many bits and flip‐flops as there are 
states in the circuit. At any given time, only one bit is equal to 1 (the one that is hot) 
 FIGURE 8.16  
Control specifications for binary multiplier       
S_idle
Start= 1
Start= 0
S_add
S_shift
Zero= 0
Zero= 1
(a)
State Transition
Register Operations
From
To
S_idle
Initial state
S_idle
S_add
A<= 0, C<= 0, P<=dp_width
S_add
S_shift
P<=P- 1
if (Q[0]) then (A<=A+B,C<=C
out
)
S_shift
shift right {CAQ}, C <= 0
(b)
C# Create PDF from OpenOffice to convert odt, odp files to PDF in
In order to run the sample codes, the following steps would be necessary. Add necessary references: RasterEdge.XDoc.PDF.dll. RasterEdge.XDoc.PowerPoint.dll.
how to convert pdf into powerpoint on; adding pdf to powerpoint
VB.NET Create PDF from OpenOffice to convert odt, odp files to PDF
In order to run the sample codes, the following steps would be necessary. Add necessary references: RasterEdge.XDoc.PDF.dll. RasterEdge.XDoc.PowerPoint.dll.
export pdf into powerpoint; how to convert pdf into powerpoint presentation
398    Chapter 8  Design at the Register Transfer Level
while all others are kept at 0 (all cold). This type of assignment uses a flip‐flop for each 
state. Indeed, one‐hot encoding uses more flip‐flops than other types of coding, but it 
usually leads to simpler decoding logic for the next state and the output of the machine. 
Because the decoding logic does not become more complex as states are added to the 
machine, the speed at which the machine can operate is not limited by the time required 
to decode the state. 
Since the controller is a sequential circuit, it can be designed manually by the sequential 
logic procedure outlined in  Chapter   5   . However, in most cases this method is difficult to 
carry out manually because of the large number of states and inputs that a typical control 
circuit may have. As a consequence, it is necessary to use specialized methods for control 
logic design that may be considered as variations of the classical sequential logic method. 
We will now present two such design procedures. One uses a sequence register and decoder, 
and the other uses one flip‐flop per state. The method will be presented for a small circuit, 
but it applies to larger circuits as well. Of course, the need for these methods is eliminated 
if one has software that automatically synthesizes the circuit from an HDL description.  
Sequence Register and Decoder 
The sequence‐register‐and‐decoder (manual) method, as the name implies, uses a reg-
ister for the control states and a decoder to provide an output corresponding to each of 
the states. (The decoder is not needed if a one‐hot code is used.) A register with  n  flip‐
flops can have up to 2  
n
  states, and an  n ‐to‐2  
n
 ‐line decoder has up to 2  
n
  outputs. An  n ‐bit 
sequence register is essentially a circuit with  n  flip‐flops, together with the associated 
gates that effect their state transitions. 
The ASMD chart and the state diagram for the controller of the binary multiplier 
have three states and two inputs. (There is no need to consider  Q[0] .) To implement the 
design with a sequence register and decoder, we need two flip‐flops for the register and 
a two‐to‐four‐line decoder. The outputs of the decoder will form the Moore‐type outputs 
of the controller directly. The Mealy‐type outputs will be formed from the Moore outputs 
and the inputs. 
The state table for the finite state machine of the controller is shown in  Table   8.7   . It 
is derived directly from the ASMD chart of  Fig.   8.15   (b) or the state diagram of 
Fig.   8.16   (a). We designate the two flip‐flops as    G
1
and    G
0
and assign the binary states 
00, 01, and 10 to  S_idle,   S_add and  S_shift respectively. Note that the input columns 
have don’t‐care entries whenever the input variable is not used to determine the next 
Table 8.6 
State Assignment for Control 
State 
Binary 
Gray Code 
One‐Hot 
S_idle  
00 
00 
001 
S_add  
01 
01 
010 
S_shift  
10 
11 
100 
Section 8.8  Control Logic    399
Table 8.7 
State Table for Control Circuit 
Present 
State 
Inputs 
Next 
State 
Present‐State 
Symbol 
G
1
G
0
Start  
Q[0]  
Zero  
G
1
G
0
S_idle  
S_idle  
S_add  
S_add  
S_shift  
S_shift  
R
e
a
d
y
L
o
a
d
_
r
e
g
s
D
e
c
r
_
P
A
d
d
_
r
e
g
s
S
h
i
f
t
_
r
e
g
s
state. The outputs of the control circuit are designated by the names given in the ASMD 
chart. The particular Moore‐type output variable that is equal to 1 at any given time is 
determined from the equivalent binary value of the present state. Those output variables 
are shaded in  Table   8.7   . Thus, when the present state is    G
1
G
0
= 00,    output  Ready  must 
be equal to 1, while the other outputs remain at 0. Since the Moore‐type outputs are a 
function of only the present state, they can be generated with a decoder circuit having 
the two inputs    G
1
and    G
0
and using three of the decoder outputs    T
0
through    T
2
,    as 
shown in  Fig.   8.17   (a), which does not include the wiring for the state feedback. 
The state machine of the controller can be designed from the state table by means of 
the classical procedure presented in  Chapter   5   . This example has a small number of states 
and inputs, so we could use maps to simplify the Boolean functions. In most control logic 
applications, the number of states and inputs is much larger. In general, the application of 
the classical method requires an excessive amount of work to obtain the simplified input 
equations for the flip‐flops and is prone to error. The design can be simplified if we take 
into consideration the fact that the decoder outputs are available for use in the design. 
Instead of using flip‐flop outputs as the present‐state conditions,  we use the outputs of the 
decoder to indicate the present‐state condition of the sequential circuit . Moreover, instead of 
using maps to simplify the flip‐flop equations, we can obtain them directly by inspection of 
the state table. For example, from the next‐state conditions in the state table, we find that 
the next state of    G
1
is equal to 1 when the present state is  S_add  and is equal to 0 when the 
present state is  S_idle  or  S_shift . These conditions can be specified by the equation 
D
G1
=T
1
where    D
G1
is the  D  input of flip‐flop    G
1
.    Similarly, the  D  input of    G
0
is 
D
G0
=T
0
Start T
2
Zero′   
400    
 FIGURE 8.17  
Logic diagram of control for binary multiplier using a sequence register and decoder       
C
D
C
D
Load_regs
Decr_P
Add_regs
Shift_regs
clock
Start
reset_b
Q[0]
Zero
Ready
Next State Logic
T
3
(S_idle)T
0
(S_shift)T
2
(S_add)T
1
0
1
Next State
Logic
2× 4
Decoder
2× 4 Decoder
C
D
C
D
G
0
G
1
T
3
(S_Idle)T
0
(S_shift)T
2
(S_add) T
1
0
1
Load_regs
Ready
Decr_P
Add_regs
Shift_regs
clock
Start
reset_b
Q[0]
Zero
G
0
G
1
(a)
(b)
Section 8.8  Control Logic    401
When deriving input equations by inspection from the state table, we cannot be sure 
that the Boolean functions have been simplified in the best possible way. (Synthesis tools 
take care of this detail automatically.) In general, it is advisable to analyze the circuit to 
ensure that the equations derived do indeed produce the required state transitions. 
The logic diagram of the control circuit is drawn in  Fig.   8.17   (b). It consists of a register 
with two flip‐flops    G
1
and    G
0
and a 2 * 4 decoder. The outputs of the decoder are used to 
generate the inputs to the next‐state logic as well as the control outputs. The outputs of the 
controller should be connected to the datapath to activate the required register operations.  
One‐Hot Design (One Flip‐Flop per State) 
Another method of control logic design is the one‐hot assignment, which results in a 
sequential circuit with one flip‐flop per state. Only one of the flip‐flops contains a 1 at 
any time; all others are reset to 0. The single 1 propagates from one flip‐flop to another 
under the control of decision logic. In such a configuration, each flip‐flop represents a 
state that is present only when the control bit is transferred to it. 
This method uses the maximum number of flip‐flops for the sequential circuit. For 
example, a sequential circuit with 12 states requires a minimum of four flip‐flops. By 
contrast, with the method of one flip‐flop per state, the circuit requires 12 flip‐flops, one 
for each state. At first glance, it may seem that this method would increase system cost, 
since more flip‐flops are used. But the method offers some advantages that may not be 
apparent. One advantage is the simplicity with which the logic can be designed by 
inspection of the ASMD chart or the state diagram. No state or excitation tables are 
needed if  D ‐type flip‐flops are employed. The one‐hot method offers a savings in design 
effort, an increase in operational simplicity, and a possible decrease in the total number 
of gates, since a decoder is not needed. 
The design procedure for a one‐hot state assignment will be demonstrated by obtaining 
the control circuit specified by the state diagram of  Fig.   8.16   (a). Since there are three states 
in the state diagram, we choose three  D  flip‐flops and label their outputs    G
0
G
1
,    and    G
2
,    
corresponding to S_idle,   S_add and  S_shift respectively. The input equations for setting 
each flip‐flop to 1 are determined from the present state and the input conditions along 
the corresponding directed lines going into the state. For example,    D
G0
, the input to flip‐
flop    G
0
, is set to 1 if the machine is in state    G
0
and  Start  is not asserted, or if the machine 
is in state    G
2
and  Zero  is asserted. These conditions are specified by the input equation: 
D
G0
G
0
Start′ + G
2
Zero   
In fact, the condition for setting a flip‐flop to 1 is obtained directly from the state dia-
gram, from the condition specified in the directed lines going into the corresponding 
flip‐flop state ANDed with the previous flip‐flop state. If there is more than one directed 
line going into a state, all conditions must be ORed. Using this procedure for the other 
three flip‐flops, we obtain the remaining input equations: 
D
G1
G
0
Start G
2
Zero
D
G2
G
1
402    Chapter 8  Design at the Register Transfer Level
The logic diagram of the one‐hot controller (with one flip‐flop per state) is shown in 
Fig.  8.18   . The circuit consists of three  D  flip‐flops labeled    G
0
through    G
2
,    together with the 
associated gates specified by the input equations. Initially, flip‐flop    G
0
must be set to 1 and 
all other flip‐flops must be reset to 0, so that the flip‐flop representing the initial state is 
enabled. This can be done by using an asynchronous preset on flip‐flop    G
0
and an asynchro-
nous clear for the other flip‐flops. Once started, the controller with one flip‐flop per state 
will propagate from one state to the other in the proper manner. Only one flip‐flop will be 
set to 1 with each clock edge; all others are reset to 0, because their  D  inputs are equal to 0.    
8.9    HDL DESCRIPTION OF BINARY MULTIPLIER 
A second example of an HDL description of an RTL design is given in HDL Example8.5, 
the binary multiplier designed in Section 8.7. For simplicity, the entire description is “flat-
tened” and encapsulated in one module. Comments will identify the controller and the 
datapath. The first part of the description declares all of the inputs and outputs as specified 
 FIGURE 8.18  
Logic diagram for one‐hot state controller       
clock
Start
C
D
C
D
G
0
G
1
reset_b
(S_idle)
Load_regs
Decr_P
Q[0]
Add_regs
Shift_regs
Zero
Ready
C
D
G
2
(S_add)
(S_shift)
Set
Rst
Rst
Documents you may be interested
Documents you may be interested