Section 5.5  Analysis of Clocked Sequential Circuits     213
K= 0,    the next state is 1. When    = 0    and    K= 1,    the next state is 0. When    K= 0,    
there is no change of state and the next-state value is the same as that of the present 
state. When    K= 1,    the next-state bit is the complement of the present-state bit. 
Examples of the last two cases occur in the table when the present state  AB  is 10 and 
input  x  is 0.  JA  and  KA  are both equal to 0 and the present state of  A  is 1. Therefore, the 
next state of  A  remains the same and is equal to 1. In the same row of the table,  JB  and 
KB  are both equal to 1. Since the present state of  B  is 0, the next state of  B  is comple-
mented and changes to 1.  
The next-state values can also be obtained by evaluating the state equations from the 
characteristic equation. This is done by using the following procedure: 
 
1.   Determine the flip-flop input equations in terms of the present state and input 
variables.  
 
2.   Substitute the input equations into the flip-flop characteristic equation to obtain 
the state equations.  
 
3.   Use the corresponding state equations to determine the next-state values in the 
state table.   
The input equations for the two  JK  flip-flops of  Fig.   5.18    were listed a couple of para-
graphs ago. The characteristic equations for the flip-flops are obtained by substituting 
A  or  B  for the name of the flip-flop, instead of  Q : 
A(+ 1) ) =JA′ + KA
B(+ 1) ) =JB′+ KB   
Substituting the values of    J
A
and    K
A
from the input equations, we obtain the state equa-
tion for  A : 
A(+ 1) = BA′ +(Bx′)′ AAAB′ + Ax   
The state equation provides the bit values for the column headed “Next State” for  A  in 
the state table. Similarly, the state equation for flip-flop  B  can be derived from the char-
acteristic equation by substituting the values of    J
B
and    K
B
:    
B(t+ 1) = xB′ +(A{x)
=Bx′ + ABxABx′    
The state equation provides the bit values for the column headed “Next State” for  B  in 
the state table. Note that the columns in  Table   5.4    headed “Flip-Flop Inputs” are not 
needed when state equations are used. 
The state diagram of the sequential circuit is shown in  Fig.   5.19   . Note that since the 
circuit has no outputs, the directed lines out of the circles are marked with one binary 
number only, to designate the value of input  x .  
Analysis with  T  Flip-Flops 
The analysis of a sequential circuit with  T  flip-flops follows the same procedure outlined 
for  JK  flip-flops. The next-state values in the state table can be obtained by using either 
Pdf to ppt - 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 into powerpoint; embed pdf into powerpoint
Pdf to ppt - 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
pdf into powerpoint; convert pdf to editable powerpoint online
214    Chapter 5  Synchronous Sequential Logic
the characteristic table listed in  Table   5.1    or the characteristic equation 
Q(t+ 1) = T{TTQ   
Now consider the sequential circuit shown in  Fig.   5.20   . It has two flip-flops  A  and  B,  one 
input  x,  and one output  y  and can be described algebraically by two input equations and 
an output equation: 
T
A
Bx
T
B
x
AB   
The state table for the circuit is listed in  Table   5.5   . The values for  y  are obtained from 
the output equation. The values for the next state can be derived from the state equa-
tions by substituting    T
A
and    T
B
in the characteristic equations, yielding 
A(+1) = (Bx)′A+ (Bx)A′= AB′+ Ax′+ ABx
B(+1) = xB
The next-state values for  A  and  B  in the state table are obtained from the expressions 
of the two state equations. 
The state diagram of the circuit is shown in  Fig.   5.20   (b). As long as input  x  is equal to 1, the 
circuit behaves as a binary counter with a sequence of states 00, 01, 10, 11, and back to 00. 
When    =0,    the circuit remains in the same state. Output  y  is equal to 1 when the present 
state is 11. Here, the output depends on the present state only and is independent of the input. 
The two values inside each circle and separated by a slash are for the present state and output.   
Mealy and Moore Models of Finite State Machines 
The most general model of a sequential circuit has inputs, outputs, and internal states. It 
is customary to distinguish between two models of sequential circuits: the Mealy model 
and the Moore model. Both are shown in  Fig.   5.21   . They differ only in the way the output 
00
11
1
1
1
0
0
0
S0
S3
S2
S1
0
1
01
10
FIGURE 5.19 
State diagram of the circuit of  Fig.   5.18          
Online Convert PowerPoint to PDF file. Best free online export
Creating a PDF from PPTX/PPT has never been so easy! Web Security. Your PDF and PPTX/PPT files will be deleted from our servers an hour after the conversion.
how to add pdf to powerpoint slide; how to 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 to powerpoint online no email; change pdf to ppt
Section 5.5  Analysis of Clocked Sequential Circuits     215
Table 5.5 
State Table for Sequential Circuit with T Flip-Flops 
Present 
State 
Input 
Next 
State 
Output 
A  
B  
x  
A  
B  
y  
T
B
A
y
T
Clk
R
R
Clk
x
Clock
reset
(a)Circuit diagram
(b)State diagram
11/1
00/0
01/0
10/0
0
0
1
1
1
1
0
0
FIGURE 5.20 
Sequential circuit with  T  flip-flops (Binary Counter)       
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.
adding pdf to powerpoint slide; convert pdf to powerpoint presentation
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. How to C#: Convert PPT to PDF.
convert pdf slides to powerpoint; how to convert pdf to powerpoint slides
216    Chapter 5  Synchronous Sequential Logic
is generated. In the Mealy model, the output is a function of both the present state and 
the input. In the Moore model, the output is a function of only the present state. A circuit 
may have both types of outputs. The two models of a sequential circuit are commonly 
referred to as a finite state machine, abbreviated FSM. The Mealy model of a sequential 
circuit is referred to as a Mealy FSM or Mealy machine. The Moore model is referred 
to as a Moore FSM or Moore machine. 
The circuit presented previously in  Fig.   5.15    is an example of a Mealy machine. Out-
put  y  is a function of both input  x  and the present state of  A  and  B . The corresponding 
state diagram in  Fig.   5.16    shows both the input and output values, separated by a slash 
along the directed lines between the states. 
An example of a Moore model is given in  Fig.   5.18   . Here, the output is a function of 
the present state only. The corresponding state diagram in  Fig.   5.19    has only inputs marked 
along the directed lines. The outputs are the flip-flop states marked inside the circles. 
Another example of a Moore model is the sequential circuit of  Fig.   5.20   . The output 
depends only on flip-flop values, and that makes it a function of the present state only. 
The input value in the state diagram is labeled along the directed line, but the output 
value is indicated inside the circle together with the present state.  
In a Moore model, the outputs of the sequential circuit are synchronized with the 
clock, because they depend only on flip-flop outputs that are synchronized with the 
clock.  In a Mealy model, the outputs may change if the inputs change during the clock 
Inputs
State
Register
Next State
Combinational
Logic
Inputs
State
Register
Outputs
(Moore-type)
Output
Combinational
Logic
Clock
Clock
Moore Machine
Mealy Machine
Next State
Combinational
Logic
Output
Combinational
Logic
Outputs
(Mealy-type)
(a)
(b)
FIGURE 5.21 
Block diagrams of Mealy and Moore state machines       
VB.NET PowerPoint: Process & Manipulate PPT (.pptx) Slide(s)
VB.NET PowerPoint processing control add-on can do PPT creating, loading We are dedicated to provide powerful & profession imaging controls, PDF document, image
images from pdf to powerpoint; conversion of pdf into ppt
C# TIFF: Learn to Convert MS Word, Excel, and PPT to TIFF Image
C# TIFF - Conversion from Word, Excel, PPT to TIFF. Learn How to Change Load your PPT (.pptx) document. PPTXDocument doc = new PPTXDocument
convert pdf file into ppt; drag and drop pdf into powerpoint
Section 5.6  Synthesizable HDL Models of Sequential Circuits    217
cycle. Moreover, the outputs may have momentary false values because of the delay 
encountered from the time that the inputs change and the time that the flip-flop outputs 
change. In order to synchronize a Mealy-type circuit, the inputs of the sequential circuit 
must be synchronized with the clock and the outputs must be sampled immediately 
before the clock edge. The inputs are changed at the inactive edge of the clock to ensure 
that the inputs to the flip-flops stabilize before the active edge of the clock occurs. Thus, 
the output of the Mealy machine is the value that is present immediately before the 
active edge of the clock.    
5.6     SYNTHESIZABLE HDL MODELS 
OF SEQUENTIAL CIRCUITS 
The Verilog HDL was introduced in Section 3.9. Combinational circuits were described 
in Section 4.12, and behavioral modeling with Verilog was introduced in that section 
aswell. Behavioral models are abstract representations of the functionality of digi-
talhardware. That is, they describe how a circuit behaves, but don’t specify the internal 
details of the circuit. Historically, the abstraction has been described by truth tables, 
statetables, and state diagrams. An HDL describes the functionality differently, 
by language constructs that represent the operations of registers in a machine. 
This representation has “added value,” i.e., it is important for you to know how to use, 
because it can be simulated to produce waveforms demonstrating the behavior of the 
machine. 
Behavioral Modeling 
There are two kinds of abstract behaviors in the Verilog HDL. Behavior declared by 
the keyword  initial  is called  single-pass behavior  and specifies a single statement or 
a block statement (i.e., a list of statements enclosed by either a  begin  . . .  end  or a 
fork  . . .   join  keyword pair). A single-pass behavior expires after the associated state-
ment executes. In practice, designers use single-pass behavior primarily to prescribe 
stimulus signals in a test bench—never to model the behavior of a circuit—because 
synthesis tools do not accept descriptions that use the  initial  statement. The  always  
keyword declares a  cyclic behavior.  Both types of behaviors begin executing when 
the simulator launches at time    = 0.    The  initial  behavior expires after its statement 
executes; the  always  behavior executes and reexecutes indefinitely, until the simula-
tion is stopped. A module may contain an arbitrary number of  initial  or  always  behav-
ioral statements. They execute concurrently with respect to each other, starting at 
time 0, and may interact through common variables. Here’s a word description of how 
an  always  statement works for a simple model of a  D  flip-flop: Whenever the rising 
edge of the clock occurs, if the reset input is asserted, the output  q  gets 0; otherwise 
the output  Q  gets the value of the input  D . The execution of statements triggered by 
the clock is repeated until the simulation ends. We’ll see shortly how to write this 
description in Verilog. 
VB.NET PowerPoint: Convert & Render PPT into PDF Document
VB.NET PowerPoint - Render PPT to PDF in VB.NET. What VB.NET demo code can I use for fast PPT (.pptx) to PDF conversion in .NET class application?
convert pdf to powerpoint using; export pdf to powerpoint
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
convert pdf to powerpoint online; picture from pdf to powerpoint
218    Chapter 5  Synchronous Sequential Logic
An  initial  behavioral statement executes only once. It begins its execution at the start 
of simulation and expires after all of its statements have completed execution. As men-
tioned at the end of Section 4.12, the initial statement is useful for generating input 
signals to simulate a design. In simulating a sequential circuit, it is necessary to generate 
a clock source for triggering the flip-flops. The following are two possible ways to pro-
vide a free-running clock that operates for a specified number of cycles: 
initial  
initial 
begin 
begin
clock = 1'b0; 
clock = 1'b0;
repeat (30) 
end 
#10 clock = ~clock;
end 
initial  300 $ finish ;
always  #10 clock = ~clock; 
In the first version, the  initial  block contains two statements enclosed within the  begin  
and  end  keywords. The first statement sets  clock  to 0 at    time= = 0.    The second statement 
specifies a loop that reexecutes 30 times to wait 10 time units and then complement the 
value of  clock . This produces 15 clock cycles, each with a cycle time of 20 time units. In 
the second version, the first  initial  behavior has a single statement that sets  clock  to 0 at 
time = 0,    and it then expires (causes no further simulation activity). The second single-
pass behavior declares a stopwatch for the simulation. The system task  finish  causes the 
simulation to terminate unconditionally after 300 time units have elapsed. Because this 
behavior has only one statement associated with it, there is no need to write the  begin  . . .  
end  keyword pair. After 10 time units, the  always  statement repeatedly complements  clock,  
providing a clock generator having a cycle time of 20 time units. The three behavioral 
statements in the second example can be written in any order. 
Here is another way to describe a free-running clock: 
initial   begin  clock = 0; forever #10 clock = ~clock; end 
This version, with two statements in one block statement, initializes the clock and then 
executes an indefinite loop ( forever ) in which the clock is complemented after a delay 
of 10 time steps. Note that the single-pass behavior never finishes executing and so does 
not expire. Another behavior would have to terminate the simulation. 
The activity associated with either type of behavioral statement can be controlled by 
a delay operator that waits for a certain time or by an event control operator that waits 
for certain conditions to become true or for specified events (changes in signals) to 
occur. Time delays specified with the #  delay control operator  are commonly used in 
single-pass behaviors. The delay control operator suspends execution of statements until 
a specified time has elapsed. We’ve already seen examples of its use to specify signals in 
a test bench. Another operator @ is called the  event control operator  and is used to 
suspend  activity until an event occurs. An event can be an unconditional change in a 
signal value (e.g., @ A) or a specified transition of a signal value (e.g., @ ( posedge  
clock)). The general form of this type of statement is 
always  @ (event control expression)  begin 
// Procedural assignment statements that execute when the condition is met
end  
Section 5.6  Synthesizable HDL Models of Sequential Circuits    219
The event control expression specifies the condition that must occur to launch execu-
tion of the procedural assignment statements. The variables in the left-hand side of the 
procedural statements must be of the  reg  data type and must be declared as such. The 
right-hand side can be any expression that produces a value using Verilog-defined 
operators. 
The event control expression (also called the sensitivity list) specifies the events that 
must occur to initiate execution of the procedural statements associated with the  always  
block. Statements within the block execute sequentially from top to bottom. After 
thelast statement executes, the behavior waits for the event control expression to be 
satisfied. Then the statements are executed again. The sensitivity list can specify level-
sensitive events, edge-sensitive events, or a combination of the two. In practice, design-
ers do not make use of the third option, because this third form is not one that synthesis 
tools are able to translate into physical hardware. Level-sensitive events occur in com-
binational circuits and in latches. For example, the statement 
always  @ (A or B or C) 
will initiate execution of the procedural statements in the associated  always  block if a 
change occurs in  A,   B,  or  C . In synchronous sequential circuits, changes in flip-flops 
occur only in response to a transition of a clock pulse. The transition may be either a 
positive edge or a negative edge of the clock, but not both. Verilog HDL takes care of 
these conditions by providing two keywords:  posedge  and  negedge . For example, the 
expression 
always  @(posedge clock  or negedge  reset) 
// Verilog 1995 
will initiate execution of the associated procedural statements only if the clock goes 
through a positive transition or if  reset  goes through a negative transition. The 2001 and 
2005 revisions to the Verilog language allow a comma-separated list for the event con-
trol expression (or sensitivity list): 
always  @(posedge clock,  negedge  reset) 
// Verilog 2001, 2005 
A procedural assignment is an assignment of a logic value to a variable within an 
initial  or  always  statement. This is in contrast to a continuous assignment discussed in 
Section 4.12 with dataflow modeling. A continuous assignment has an implicit level-
sensitive sensitivity list consisting of all of the variables on the right-hand side of its 
assignment statement. The updating of a continuous assignment is triggered whenever 
an event occurs in a variable included on the right-hand side of its expression. In con-
trast, a procedural assignment is made only when an assignment statement is executed 
and assigns value to it within a behavioral statement. For example, the clock signal in 
the preceding example was complemented only when the statement  clock  = ~ clock  
executed; the statement did not execute until 10 time units after the simulation began. 
It is important to remember that a variable having type  reg  remains unchanged until a 
procedural assignment is made to give it a new value. 
There are two kinds of procedural assignments:  blocking  and  nonblocking . The two 
are distinguished by the symbols that they use. Blocking assignments use the symbol (=) 
as the assignment operator, and nonblocking assignments use (< =) as the operator. 
220    Chapter 5  Synchronous Sequential Logic
Blocking assignment statements are executed sequentially in the order they are listed 
in a block of statements. Nonblocking assignments are executed concurrently by evalu-
ating the set of expressions on the right-hand side of the list of statements; they do not 
make assignments to their left-hand sides until all of the expressions are evaluated. The 
two types of assignments may be better understood by means of an illustration. Consider 
these two procedural blocking assignments: 
B = A
C = B + 1 
The first statement transfers the value of  A  into  B . The second statement increments the 
value of  B  and transfers the new value to  C . At the completion of the assignments,  C  
contains the value of    + 1.    
Now consider the two statements as nonblocking assignments: 
B <= A
C <= B + 1 
When the statements are executed, the expressions on the right-hand side are evaluated 
and stored in a temporary location. The value of  A  is kept in one storage location and 
the value of    B+ 1    in another. After all the expressions in the block are evaluated and 
stored, the assignment to the targets on the left-hand side is made. In this case,  C  will 
contain the original value of  B,  plus 1. A general rule is to  use blocking assignments when 
sequential ordering is imperative and in cyclic behavior that is level sensitive  (i.e., in 
combinational logic).  Use nonblocking assignments when modeling concurrent execu-
tion  (e.g., edge-sensitive behavior such as synchronous, concurrent register transfers) 
and when modeling latched behavior . Nonblocking assignments are imperative in deal-
ing with register transfer level design, as shown in  Chapter   8   . They model the concurrent 
operations of physical hardware synchronized by a common clock. Today’s designers 
are expected to know what features of an HDL are useful in a practical way and how to 
avoid features that are not. Following these rules for using the assignment operators will 
prevent conditions that lead synthesis tools astray and create mismatches between 
the behavior of a model and the behavior of physical hardware that is produced by a 
synthesis tool.  
HDL Models of Flip-Flops and Latches 
HDL Examples 5.1 through 5.4 show Verilog descriptions of various flip-flops and a D 
latch. The D latch is said to be  transparent  because it responds to a change in data input 
with a change in the output as long as the enable input is asserted—viewing the output 
is the same as viewing the input. The description of a D latch is shown in HDL Example 
5.1 It has two inputs,  D  and  enable,  and one output,  Q . Since  Q  is assigned value in a 
behavior, its type must be declared to be  reg . Hardware latches respond to input signal 
levels,  so the two inputs are listed without edge qualifiers in the sensitivity list following 
the @ symbol in the  always  statement. In this model, there is only one blocking proce-
dural assignment statement, and it specifies the transfer of input  D  to output  Q  if enable 
Section 5.6  Synthesizable HDL Models of Sequential Circuits    221
is true (logic 1).  
1
Note that this statement is executed every time there is a change in  D  
if  enable  is 1. 
D-type flip-flop is the simplest example of a sequential machine. HDL Example 
5.2 describes two positive-edge  D  flip-flops in two modules. The first responds only to 
the clock; the second includes an asynchronous reset input. Output  Q  must be declared 
as a  reg  data type in addition to being listed as an output. This is because it is a target 
output of a procedural assignment statement. The keyword posedge ensures that the 
transfer of input  D  into  Q  is synchronized by the positive-edge transition of  Clk . 
Achange in  D  at any other time does not change  Q . 
1  The statement (single or block) associated with  if (Boolean expression) executes if the Boolean expression 
is true. 
HDL Example 5.1   (D-Latch) 
// Description of D latch (See  Fig.   5.6   )
module  D_latch (Q, D, enable);
output  Q;
input  D, enable;
reg  
Q;
always  @ (enable or D)
  if (enable) Q <= D; 
// Same as: if (enable == 1)
endmodule 
// Alternative syntax (Verilog 2001, 2005)
module  D_latch (output reg Q,  input  enable, D);
always  @ (enable, D)
if  (enable) Q <= D; 
// No action if enable not asserted
endmodule   
HDL Example 5.2   (D-Type Flip-Flop) 
// D fl ip-fl op without reset
module  D_FF (Q, D, Clk);
output  Q;
input  D, Clk;
reg  
Q;
always  @ ( posedge  Clk)
Q <= D;
endmodule 
// D fl ip-fl op with asynchronous reset (V2001, V2005)
module  DFF ( output   reg  Q,  input  D, Clk, rst);
always  @ ( posedge  Clk,  negedge  rst)
if (!rst) Q <= 1'b0; 
// Same as:  if  (rst == 0)
else  Q <= D;
endmodule   
222    Chapter 5  Synchronous Sequential Logic
The second module includes an asynchronous reset input in addition to the synchro-
nous clock. A specific form of an  if  statement is used to describe such a flip-flop so that 
the model can be synthesized by a software tool. The event expression after the @ sym-
bol in the  always  statement may have any number of edge events, either  posedge  or 
negedge . For modeling hardware, one of the events must be a clock event. The remain-
ing events specify conditions under which asynchronous logic is to be executed. The 
designer knows which signal is the clock, but  clock  is not an identifier that software tools 
automatically recognize as the synchronizing signal of a circuit. The tool must be able 
to infer which signal is the clock, so  you need to write the description in a way that enables 
the tool to infer the clock correctly . The rules are simple to follow: (1) Each  if  or  else if  
statement in the procedural assignment statements is to correspond to an asynchronous 
event, (2) the last  else  statement corresponds to the clock event, and (3) the asynchro-
nous events are tested first. There are two edge events in the second module of HDL 
Example 5.2. The  negedge  rst (reset) event is asynchronous, since it matches the  if  (!rst) 
statement. As long as  rst  is 0,  Q  is cleared to 0. If  Clk  has a positive transition, its effect 
is blocked. Only if  rst  = 1 can the  posedge  clock event synchronously transfer  D  into  Q . 
Hardware always has a reset signal. It is strongly recommended that all models of 
edge-sensitive behavior include a reset (or preset) input signal; otherwise, the initial 
state of the flip-flops of the sequential circuit cannot be determined. A sequential circuit 
cannot be tested with HDL simulation unless an initial state can be assigned with an 
input signal. 
HDL Example 5.3 describes the construction of a  T  or  JK  flip-flop from a  D  flip-flop 
and gates. The circuit is described with the characteristic equations of the flip-flops: 
Q(+ 1) = Q{T    
for a  T  flip-flop 
Q(+ 1) = JQ′ + KQ    
for a  JK  flip-flop 
The first module,  TFF,  describes a  T  flip-flop by instantiating  DFF . (Instantiation is 
explained in Section 4.12.) The declared  wire  DT,  is assigned the exclusive-OR of  Q  
and  T,  as is required for building a  T  flip-flop with a  D  flip-flop. The instantiation with 
the value of  DT  replacing  D  in module  DFF  produces the required  T  flip-flop. The  JK  
flip-flop is specified in a similar manner by using its characteristic equation to define a 
replacement for  D  in the instantiated  DFF . 
HDL Example 5.3 (Alternative Flip-Flop Models) 
// T fl ip-fl op from D fl ip-fl op and gates
module  TFF (Q, T, Clk, rst);
output  Q;
input  T, Clk, rst;
wire  DT;
assign  DT = Q ^ T ; 
// Continuous assignment
// Instantiate the D fl ip-fl op
DFF TF1 (Q, DT, Clk, rst);
endmodule 
Documents you may be interested
Documents you may be interested