Section 8.5  Design Example (ASMD Chart)    373
Status signals
Controller
Start
reset_b
clock
set_F
clr_A_F
set_E
clr_E
incr_A
Datapath
A
E
F
A3
A2
(a)
E<=0
F<=1
F<=1
F<=1
A<=0
F<=0
A<= A +1
1
Start
1
A2
S_1
S_idle
A3
S_2
1
reset_b
E<=1
Note: A3 denotes A[3],
A2 denotes A[2],
<= denotes nonblocking assignment
reset_b denotes active-low reset condition
(b)
1
A2
1
S_1
incr_A
S_idle
A3
S_2
set_F
1
clr_E
reset_b
clr_A_F
set_E
E<=0
A<= A + 1
E<=1
A<=0
F<=0
(d)
1
Start
1
1
A2
reset_b
S_1
S_idle
E<=0
A3
S_2
1
A<=0
F<=0
A<= A +1
E<=1
(c)
Start
FIGURE 8.9  
(a) Block diagram for design example 
(b) ASMD chart for controller state transitions, asynchronous reset 
(c) ASMD chart for controller state transitions, synchronous reset 
(d) ASMD chart for a completely specified controller, asynchronous reset  
Convert pdf to ppt online - 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
export pdf into powerpoint; convert pdf into ppt online
Convert pdf to ppt online - 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
and paste pdf into powerpoint; pdf to ppt converter online for large
374    Chapter 8  Design at the Register Transfer Level
When control is in state  S_2 a Moore‐type control signal must be asserted to set flip‐flop 
F  to 1, and the state returns to  S_idle  at the next active edge of the clock. 
The third and final step in creating the ASMD chart is to insert conditional boxes for 
the signals generated by the controller or to insert Moore‐type signals in the state boxes, 
as shown in  Fig.   8.9   (d). The signal  clr_A_F  is generated conditionally in state  S_idle,  
incr_A  is generated unconditionally in  S_1,   clr_E  and  set_E  are generated conditionally 
in  S_1 and  set_F  is generated unconditionally in  S_2 The ASM chart has three states 
and three blocks. The block associated with  S_idle  consists of the state box, one decision 
box, and one conditional box. The block associated with  S_2  consists of only the state 
box. In addition to  clock  and  reset_b the control logic has one external input,  Start and 
two status inputs,    A
2
and    A
3
.    
In this example, we have shown how a verbal (text) description (specification) of a 
design is translated into an ASMD chart that completely describes the controller for the 
datapath, indicating the control signals and their associated register operations. This 
design example does not necessarily have a practical application, and in general, depend-
ing on the interpretation, the ASMD chart produced by the three‐step design process 
for the controller may be simplified and formulated differently. However, once the 
ASMD chart is established, the procedure for designing the circuit is straightforward. 
In practice, designers use the ASMD chart to write Verilog models of the controller and 
the datapath and then synthesize a circuit directly from the Verilog description . We will 
first design the system manually and then write the HDL description, keeping synthesis 
as an optional step for those who have access to synthesis tools.  
Timing Sequence 
Every block in an ASMD chart specifies the signals which control the operations that 
are to be initiated by one common clock pulse. The control signals specified within the 
state and conditional boxes in the block are formed while the controller is in the indi-
cated state, and the annotated operations occur in the datapath unit when the state 
makes a transition along an edge that exits the state. The change from one state to the 
next is performed in the control logic. In order to appreciate the timing relationship 
involved, we will list the step‐by‐step sequence of operations after each clock edge, 
beginning with an assertion of the signal  Start  until the system returns to the reset (ini-
tial) state,  S_idle . 
Table   8.3    shows the binary values of the counter and the two flip‐flops after every 
clock pulse. The table also shows separately the status of    A
2
and    A
3
, as well as the pres-
ent state of the controller. We start with state  S_1  right after the input signal  Start  has 
caused the counter and flip‐flop  F  to be cleared. We will assume that the machine had 
been running before it entered  S_idle instead of entering it from a reset condition. 
Therefore, the value of  E  is assumed to be 1, because  E  is set to 1 when the machine 
enters  S _ 2 before moving to  S_idle  (as shown at the bottom of the table), and because 
E  does not change during the transition from  S_idle  to  S_1 The system stays in state  S_1  
during the next 13 clock pulses. Each pulse increments the counter and either clears or 
sets  E . Note the relationship between the time at which    A
2
becomes a 1 and the time at 
Online Convert PowerPoint to PDF file. Best free online export
Online Powerpoint to PDF Converter. Download Free Trial. Convert a PPTX/PPT File to PDF. Just upload your file by clicking on the blue
chart from pdf to powerpoint; convert pdf file to powerpoint presentation
How to C#: Convert PDF, Excel, PPT to Word
How to C#: Convert PDF, Excel, PPT to Word. Online C# Tutorial for Converting PDF, MS-Excel, MS-PPT to Word. PDF, MS-Excel, MS-PPT to Word Conversion Overview.
convert pdf file to powerpoint; change pdf to ppt
Section 8.5  Design Example (ASMD Chart)    375
which  E  is set to 1. When    A= (A
A
A
A
0
)    0011, the next (4th) clock pulse increments 
the counter to 0100, but that same clock edge sees the value of    A
2
as 0, so  E  remains 
cleared. The next (5th) pulse changes the counter from 0100 to 0101, and because    A
2
is 
equal to 1  before  the clock pulse arrives,  E  is set to 1. Similarly,  E  is cleared to 0 not when 
the count goes from 0111 to 1000, but when it goes from 1000 to 1001, which is when 
A
2
is 0 in the  present  value of the counter.  
When the count reaches 1100, both    A
2
and    A
3
are equal to 1. The next clock edge 
increments  A  by 1, sets  E  to 1, and transfers control to state  S_2 . Control stays in  S_2  
for only one clock period. The clock edge associated with the path leaving  S _ 2  sets flip‐
flop  F  to 1 and transfers control to state  S_idle . The system stays in the initial state  S_idle  
as long as  Start  is equal to 0. 
From an observation of  Table   8.3   , it may seem that the operations performed on  E  
are delayed by one clock pulse. This is the difference between an ASMD chart and a 
conventional flowchart. If  Fig.   8.9   (d) were a conventional flowchart, we would assume 
that  A  is first incremented and the incremented value would have been used to check 
the status of    A
2
. The operations that are performed in the digital hardware, as specified 
by a block in the ASMD chart, occur during the same clock cycle and not in a sequence 
of operations following each other in time, as is the usual interpretation in a conven-
tional flowchart. Thus, the value of    A
2
to be considered in the decision box is taken 
Table 8.3 
Sequence of Operations for Design Example 
Counter 
Flip‐Flops 
A
3
A
2
A
1
A
0
E  
F  
Conditions  
State  
A
2
=0, A
3
=0    
S_1 
A
2
=1, A
3
=0    
A
2
=0, A
3
=1    
A
2
=1, A
3
=1    
S_2  
S_idle  
How to C#: Convert Word, Excel and PPT to PDF
How to C#: Convert Word, Excel and PPT to PDF. Online C# Tutorial for Converting MS Office Word, Excel and PowerPoint to PDF. MS Office
change pdf to powerpoint on; pdf to powerpoint slide
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.
how to convert pdf into powerpoint; how to convert pdf slides to powerpoint
376    Chapter 8  Design at the Register Transfer Level
from the value of the counter in the present state and before it is incremented. This is 
because the decision box for  E  belongs with the same block as state  S_1 . The digital 
circuits in the control unit generate the signals for all the operations specified in the 
present block  prior to the arrival of the next clock pulse . The next clock edge executes 
all the operations in the registers and flip‐flops, including the flip‐flops in the controller 
that determine the next state, using the present values of the output signals of the 
controller. Thus, the signals that control the operations in the datapath unit are formed 
in the controller in the clock cycle (control state)  preceding  the clock edge at which the 
operations execute.  
Controller and Datapath Hardware Design 
The ASMD chart provides all the information needed to design the digital system — the 
datapath and the controller. The actual boundary between the hardware of the control-
ler and that of the datapath can be arbitrary, but we advocate, first, that the datapath 
unit contain only the hardware associated with its operations and the logic required, 
perhaps, to form status signals used by the controller, and, second, that the control unit 
contain all of the logic required to generate the signals that control the operations of 
the datapath unit. The requirements for the design of the datapath are indicated by the 
control signals inside the state and conditional boxes of the ASMD chart and are spec-
ified by the annotations of the edges indicating datapath operations. The control logic 
is determined from the decision boxes and the required state transitions. The hardware 
configuration of the datapath and controller is shown in  Fig.   8.10   .  
Note that the input signals of the control unit are the external (primary) inputs ( Start,  
reset_b and  clock ) and the status signals from the datapath (   A
2
and    A
3
). The status 
signals provide information about the present condition of the datapath. This informa-
tion, together with the primary inputs and information about the present state of the 
machine, is used to form the output of the controller and the value of the next state. The 
outputs of the controller are inputs to the datapath and determine which operations will 
be executed when the clock undergoes a transition. Note, also, that the state of the con-
trol unit is not an output of the control unit. 
The control subsystem is shown in  Fig.   8.10    with only its inputs and outputs, with 
names matching those of the ASMD chart. The detailed design of the controller is con-
sidered subsequently. The datapath unit consists of a four‐bit binary counter and two 
JK  flip‐flops. The counter is similar to the one shown in Fig. 6.12, except that additional 
internal gates are required for the synchronous clear operation. The counter is incre-
mented with every clock pulse when the controller state is  S_1 . It is cleared only when 
control is at state  S_idle  and  Start  is equal to 1. The logic for the signal  clr_A_F  will be 
included in the controller and requires an AND gate to guarantee that both conditions 
are present. Similarly, we can anticipate that the controller will use AND gates to form 
signals  set_E  and  clr_E . Depending on whether the controller is in state  S_1  and whether 
A
2
is asserted,  set_F  controls flip‐flop  F  and is asserted unconditionally during state  S_2 . 
Note that all flip‐flops and registers, including the flip‐flops in the control unit, use a 
common clock.  
C# TIFF: Learn to Convert MS Word, Excel, and PPT to TIFF Image
PPTXDocument doc = new PPTXDocument(@"demo.pptx"); if (null == doc) throw new Exception("Fail to load PowerPoint Document"); // Convert PPT to Tiff.
convert pdf to powerpoint online no email; pdf to powerpoint
VB.NET PowerPoint: Process & Manipulate PPT (.pptx) Slide(s)
This VB.NET online tutorial page can help you processing control add-on can do PPT creating, loading powerful & profession imaging controls, PDF document, image
and paste pdf to powerpoint; convert pdf to editable powerpoint online
Section 8.5  Design Example (ASMD Chart)    377
Register Transfer Representation 
A digital system is represented at the register transfer level by specifying the registers 
in the system, the operations performed, and the control sequence. The register opera-
tions and control information can be specified with an ASMD chart. It is convenient to 
separate the control logic from the register operations of the datapath. The ASMD chart 
provides this separation and a clear sequence of steps to design a controller for a data-
path. The control information and register transfer operations can also be represented 
separately, as shown in  Fig.   8.11   . The state diagram specifies the control sequence, and 
the register operations are represented by the register transfer notation introduced in 
 FIGURE 8.10  
Datapath and controller for design example       
C
J
K
set_E
clr_E
set_F
clr_A_F
incr_A
C
J
K
E
F
A
3
A
2
A
1
A
0
4-bit counter with
synchronous clear
clock
clock
A
3
A
2
Start
Controller
Datapath
Start
reset_b
reset_b
Q
Q
A
Design_Example
4
VB.NET PowerPoint: Convert & Render PPT into PDF Document
VB.NET PowerPoint - Render PPT to PDF in VB.NET. How to Convert PowerPoint Slide to PDF Using VB.NET Code in .NET. Visual C#. VB.NET. Home > .NET Imaging SDK >
pdf to powerpoint converter online; how to add pdf to powerpoint slide
VB.NET PowerPoint: Read & Scan Barcode Image from PPT Slide
VB.NET PPT PDF-417 barcode scanning SDK to detect PDF-417 barcode image from PowerPoint slide. VB.NET APIs to detect and decode
changing pdf to powerpoint; convert pdf document to powerpoint
378    Chapter 8  Design at the Register Transfer Level
Section 8.2. The state transition and the signal controlling the register operation are 
shown with the operation. This representation is an alternative to the representation of 
the system described in the ASMD chart of  Fig.   8.9   (d). Only the ASMD chart is really 
needed, but the state diagram for the controller is an alternative representation that is 
useful in manual design. The information for the state diagram is taken directly from 
the ASMD chart. The state names are specified in each state box. The conditions that 
cause a change of state are specified inside the diamond‐shaped decision boxes of the 
ASMD chart and are used to annotate the state diagram. The directed lines between 
states and the condition associated with each follow the same path as in the ASMD 
chart. The register transfer operations for each of the three states are listed following 
the name of the state. They are taken from the state boxes or the annotated edges of the 
ASMD chart.  
State Table 
The state diagram can be converted into a state table from which the sequential circuit 
of the controller can be designed. First, we must assign binary values to each state in the 
ASMD chart. For  n  flip‐flops in the control sequential circuit, the ASMD chart can 
accommodate up to    2
n
states. A chart with 3 or 4 states requires a sequential circuit with 
two flip‐flops. With 5 to 8 states, there is a need for three flip‐flops. Each combination 
of flip‐flop values represents a binary number for one of the states.  
 state table  for a controller is a list of present states and inputs and their correspond-
ing next states and outputs. In most cases, there are many don’t‐care input conditions 
 FIGURE 8.11  
Register transfer‐level description of design example       
A
2
= 0
A
2
A
3
=10
A
2
A
3
=11
(a)
Start=1
Start=0
(b)
S_idle
S_1
S_1, incr_A:
if (A
2
=1)thenset_E:
if (A
2
=0)thenclr_E:
S_2
S_idle, set_F:
S_1, clr_A_F: 
A
0, F
0
A
+ 1
E
1
E
0
F
1
S_2
S_idle
S_1
Section 8.5  Design Example (ASMD Chart)    379
that must be included, so it is advisable to arrange the state table to take those conditions 
into consideration. We assign the following binary values to the three states:  S_idle  = 00, 
S_1  = 01, and  S_2  = 11. Binary state 10 is not used and will be treated as a don’t‐care 
condition. The state table corresponding to the state diagram is shown in  Table   8.4   . Two 
flip‐flops are needed, and they are labeled    G
1
and    G
0
. There are three inputs and five 
outputs. The inputs are taken from the conditions in the decision boxes. The outputs 
depend on the inputs and the present state of the control. Note that there is a row in the 
table for each possible transition between states. Initial state 00 goes to state 01 or stays 
in 00, depending on the value of input  Start . The other two inputs are marked with 
don’t‐care X’s, as they do not determine the next state in this case. While the system is 
in binary state 00 with  Start  = 1, the control unit provides an output labeled  clr_A_F  to 
initiate the required register operations. The transition from binary state 01 depends on 
inputs    A
2
and    A
3
. The system goes to binary state 11 only if    A
2
A
3
= 11;    otherwise, it 
remains in binary state 01. Finally, binary state 11 goes to 00 independently of the input 
variables.   
Control Logic 
The procedure for designing a sequential circuit starting from a state table was pre-
sented in  Chapter   5   . If this procedure is applied to  Table   8.4   , we need to use five‐
variable maps to simplify the input equations. This is because there are five variables 
listed under the present‐state and input columns of the table. Instead of using maps 
to simplify the input equations, we can obtain them directly from the state table by 
inspection. To design the sequential circuit of the controller with  D  flip‐flops, it is 
necessary to go over the next‐state columns in the state table and derive all the 
conditions that must set each flip‐flop to 1. From  Table   8.4   , we note that the next‐
state column of    G
1
has a single 1 in the fifth row. The  D  input of flip‐flop    G
1
must 
Table 8.4 
State Table for the Controller of  Fig.   8.10    
Present 
State 
Inputs 
Next 
State 
Outputs 
Present‐State 
Symbol 
G
1
G
0
Start  
A
2
A
3
G
1
G
0
S_idle  
S_idle  
S_1  
S_1  
S_1  
S_2  
s
e
t
_
E
s
e
t
_
F
c
l
r
_
E
c
l
r
_
A
_
F
i
n
c
r
_
A
380    Chapter 8  Design at the Register Transfer Level
be equal to 1 during present state  S_1  when both inputs    A
2
and    A
3
are equal to 1. 
This condition is expressed with the  D  flip‐flop input equation 
D
G1
S_1A
2
A
3
Similarly, the next‐state column of    G
0
has four 1’s, and the condition for setting this 
flip‐flop is 
D
G0
StartS_idle S_1   
To derive the five output functions, we can exploit the fact that binary state 10 is not 
used, which simplifies the equation for  clr_A_F  and enables us to obtain the following 
simplified set of output equations: 
set_S_1A
2
clr_S_1A
2
set_S_2
clr_A_StartS_idle
incr_S_1   
The logic diagram showing the internal detail of the controller of  Fig.   8.10    is drawn in 
Fig.   8.12   . Note that although we derived the output equations from  Table   8.4   , they can 
also be obtained directly by inspection of  Fig.   8.9   (d). This simple example illustrates the 
 FIGURE 8.12  
Logic diagram of the control unit for  Fig.   8.10          
clr_A_F
clock
Start
C
D
C
D
G
0
A
2
A
3
G
1
set_F
incr_A
set_E
clr_E
reset_b
w2
w3
w1
Section 8.6  HDL Description of Design Example    381
manual design of a controller for a datapath, using an ASMD chart as a starting point. 
The fact that synthesis tools automatically execute these steps should be appreciated.    
8.6    HDL DESCRIPTION OF DESIGN EXAMPLE 
In previous chapters, we gave examples of HDL descriptions of combinational circuits, 
sequential circuits, and various standard components such as multiplexers, counters, and 
registers. We are now in a position to incorporate these components into the description 
of a specific design. As mentioned previously, a design can be described either at the 
structural or behavioral level. Behavioral descriptions may be classified as being either 
at the register transfer level or at an abstract algorithmic level. Consequently, we now 
consider three levels of design: structural description, RTL description, and algorithmic‐
based behavioral description. 
The  structural  description is the lowest and most detailed level. The digital system is 
specified in terms of the physical components and their interconnection. The various 
components may include gates, flip‐flops, and standard circuits such as multiplexers and 
counters. The design is hierarchically decomposed into functional units, and each unit is 
described by an HDL module. A top‐level module combines the entire system by instan-
tiating all the lower level modules. This style of description requires that the designer 
have sufficient experience not only to understand the functionality of the system, but 
also to implement it by selecting and connecting other functional elements. 
The  RTL  description specifies the digital system in terms of the registers, the opera-
tions performed, and the control that sequences the operations. This type of description 
simplifies the design process because it consists of procedural statements that determine 
the relationship between the various operations of the design without reference to any 
specific structure. The RTL description implies a certain hardware configuration among 
the registers, allowing the designer to create a design that can be synthesized automati-
cally, rather than manually, into standard digital components. 
The  algorithmic‐based behavioral  description is the most abstract level, describing 
the function of the design in a procedural, algorithmic form similar to a programming 
language. It does not provide any detail on how the design is to be implemented with 
hardware. The algorithmic‐based behavioral description is most appropriate for simulat-
ing complex systems in order to verify design ideas and explore trade-offs. Descriptions 
at this level are accessible to nontechnical users who understand programming lan-
guages. Some algorithms, however, might not be synthesizable. 
We will now illustrate the RTL and structural descriptions by using the design exam-
ple of the previous section. The design example will serve as a model of coding style for 
future examples and will exploit alternative syntax options supported by revisions to 
the Verilog language. (An algorithmic‐based description is illustrated in Section 8.9.) 
RTL Description 
The block diagram in  Fig.   8.10    describes the design example. An HDL description of 
the design example can be written as a single RTL description in a Verilog module or 
382    Chapter 8  Design at the Register Transfer Level
as a top‐level module having instantiations of separate modules for the controller and 
the datapath. The former option simply ignores the boundaries between the functional 
units; the modules in the latter option establish the boundaries shown in  Fig.   8.9   (a) and 
Fig.  8.10   . We advocate the second option, because, in general, it distinguishes more 
clearly between the controller and the datapath. This choice also allows one to easily 
substitute alternative controllers for a given datapath (e.g., replace an RTL model by 
a structural model). The RTL description of the design example is shown in HDL 
Example 8.2. The description follows the ASMD chart of  Fig.   8.9   (d), which contains a 
complete description of the controller, the datapath, and the interface between them 
(i.e., the outputs of the controller and the status signals). Likewise, our description has 
three modules:  Design_Example_RTL,   Controller_RTL and  Datapath_RTL . The 
descriptions of the controller and the datapath units are taken directly from  Fig.   8.9   (d). 
Design_Example_RTL  declares the input and output ports of the module and instanti-
ates  Controller_RTL  and  Datapath_RTL . At this stage of the description, it is important 
to remember to declare  A  as a vector. Failure to do so will produce  port mismatch  errors 
when the descriptions are compiled together. Note that the status signals  A[2]  and  A[3] 
but not  A[0]  and  A[1] are passed to the controller. The primary (external) inputs to 
the controller are  Start,   clock  (to synchronize the system), and  reset_b . The active‐low 
input signal  reset_b  is needed to initialize the state of the controller to  S_idle . Without 
that signal, the controller could not be placed in a known initial state. 
The controller is described by three cyclic ( always ) behaviors. An edge‐sensitive 
behavior updates the state at the positive edge of the clock, depending on whether a 
reset condition is asserted. Two level‐sensitive behaviors describe the combinational 
logic for the next state and the outputs of the controller, as specified by the ASMD 
chart. Notice that the description includes default assignments to all of the outputs 
(e.g.,    set_= 0   ). This approach allows the code of the  case  logic to be simplified by 
expressing only explicit assertions of the variables (i.e., values are assigned by excep-
tion). The approach also ensures that every path through the assignment logic assigns 
a value to every variable. Thus, a synthesis tool will interpret the logic to be combina-
tional; failure to assign a value to every variable on every path of logic implies the 
need for a transparent latch (memory) to implement the logic. Synthesis tools will 
provide the latch, wasting silicon area. 
The three states of the controller are given symbolic names and are encoded into 
binary values. Only three of the possible two‐bit patterns are used, so the case statement 
for the next‐state logic includes a  default  assignment to handle the possibility that one 
of the three assigned codes is not detected. The alternative is to allow the hardware to 
make an arbitrary assignment to the next state ( next_state  =  2bx ;). Also, the first state-
ment of the next‐state logic assigns  next_state = S_idle  to guarantee that the next state 
is assigned in every thread of the logic. This is a precaution against accidentally forget-
ting to make an assignment to the next state in every thread of the logic, with the result 
that the description implies the need for memory, which a synthesis tool will implement 
with a transparent latch. 
The description of  Datapath_RTL  is written by testing for an assertion of each 
control signal from  Controller_RTL . The register transfer operations are displayed in 
Documents you may be interested
Documents you may be interested