 | 
| The
original ASM concept models an algorithm using three basic objects: | The
rectangular block represents a state object. A state object describes one state
of the synchronous sequential digital system being depicted. It is similar to
the bubble representing the state in the traditional finite state machine model.
However, state objects can only have only 1 exit point as opposed to multiple
in the finite state machine bubble object |
 | The
condition object, which is represented by a diamond shape, models a decision in
the design. Binary/logical conditions can be tested using this object. In the
programming context, condition object models if-then-else behavior. In the context
of hardware context, a condition object models a multiplexer. |
 | The
last object, the conditional output, is represented by an oval. The conditional
output models the conditional outputs in Mealy-type sequential circuits. The conditional
output is sometimes annotated with the register operations that occur with the
state transition in more general machines that have datapath registers as well
as a state register. |
The
ASM Methodology The
ASM (Algorithmic State Machine) method, originally introduced in 1973 by Clare
[C. R. Clare, Designing Logic Systems Using State Machines, McGraw-Hill, New York
1973], is a systematic, step-by-step design procedure.
Especially interesting
is the fact that it is intended to be used to convert "algorithms" into hardware,
as also implied by its name.
Since algorithms are the basis for software
programs, the ASM method can be more generally used as a software-to-hardware
conversion method. The formal definition of an algorithm is a step-by-step procedure
for solving a problem that is correct and has a termination point.
More
commonly, the term "algorithm" is simply used to describe a program-like description
for the solution of a problem.
The ASM method is interesting because it
permits an algorithm to be described in a format that enables direct conversion
to hardware.
Using the ASM method, the algorithm is first described using
a flowchart-like notation referred to as an "ASM chart". Once an algorithm has
been presented in this manner, it is possible to perform direct one-to-one conversions
from ASM chart components to digital logic hardware structures. This can be done
in a highly systematic manner.
The ASM method is a significant advancement
over the FSM (Finite State Machine) method typically taught in introductory digital
logic design courses. Exsedia's ASM has these additional constructs to make the
ASM chart more powerful. |
The case object, represented by a hexagon, represents a
case construct. This object is introduced to support multi-way branching of bit
vectors. The case object can be replaced by nesting the condition objects (in
the same way that case statements can be modeled by if-elseif-else statements).
However, for multiple branches (i.e. 8 bit opcode decoder requires 256 branches),
a case statement is more intuitive. |
 | The
A subflowdiagram object is represented by a parallelogram. The subflowdiagram
object is used to represent a macro or a function that a design typically calls.
|
 |
Input and Output object represent connectivity between sheets
(logical partition of a design) and state objects. Typically, the ASM objects
in Nimbus are connected via a transition line, an arrow shaped object representing
the flow of the design. However, input and output objects can also be used for
state connectivity to improve readability of the ASM representation. |
 | The
objects shown on the left is called transition line. This object is used to model
the connectivity or flow of the design from state to state. | The
ASM and FSM methods are described in detail in digital logic textbooks such as
[M. Morris Mano, Digital Logic Design, 3rd Ed., Prentice-Hall, Upper Saddle River,
2003]. The use of the ASM method for hardware design is dealt with in more depth
in[S. Lee, Design of Computers and Other Complex Digital Devices, Prentice-Hall,
Upper Saddle River, 2000] |
| |