Problems    253
s2:  if  x_in = 1  begin  y_out = 1;  if  (x_in) next_state = s3;  else  next_state = s2; end 
s3:  if  x_in = 1  begin  y_out = 1;  if  (x_in) next_state = s0;  else  next_state = s3; end 
default : next_state = s0; 
endcase  
end  
endmodule     
 
5.52   Draw the state diagram of the machine described by the Verilog model given below.   
module  Prob_5_52 ( output   reg  y_out,  input  x_in, clk, reset); 
parameter  s0 = 2'b00, s1 = 2'b01, s2 = 2'b10, s3 = 2'b11; 
reg  [1:0] state, next_state; 
always  @ ( posedge  clk,  negedge  reset) begin 
if  (reset == 1'b0) state <= s0; 
else  state <= next_state; 
always  @(state, x_in)  begin  
y_out = 0; 
next_state = s0; 
case  (state) 
s0:  if  x_in = 1  begin  y_out = 0;  if  (x_in) next_state = s1;  else  next_state = s0; end 
s1:  if  x_in = 1  begin  y_out = 0;  if  (x_in) next_state = s2;  else  next_state = s1; end 
s2:  if  x_in = 1  if  (x_in)  begin  next_state = s3; y_out = 0; 
else   begin  next_state = s2; y_out = 1;  end  
s3:  if  x_in = 1  begin  y_out = 1;  if  (x_in) next_state = s0;  else  next_state = s3; end 
default : next_state = s0; 
endcase  
end  
endmodule     
 
5.53   Draw a state diagram and write a Verilog model of a Mealy synchronous state machine 
having a single input,  x_in,  and a single output  y_out,  such that  y_out  is asserted if the total 
number of 1’s received is a multiple of 3.   
 
5.54   A synchronous Moore machine has two inputs,  x 1, and  x 2, and output  y_out . If both inputs 
have the same value the output is asserted for one cycle; otherwise the output is 0. Develop 
a state diagram and a write a Verilog behavioral model of the machine. Demonstrate that 
the machine operates correctly.   
 
5.55   Develop the state diagram for a Mealy state machine that detects a sequence of three or 
more consecutive 1's in a string of bits coming through an input line.   
 
5.56   Using manual methods, obtain the logic diagram of a three-bit counter that counts in the 
sequence 0, 2, 4, 6, 0, 
. . . .
 
5.57   Write and verify a Verilog behavioral model of a three-bit counter that counts in the 
sequence 0, 2, 4, 6, 0, 
. . . .
 
5.58   Write and verify a Verilog behavioral model of the counter designed in Problem 5.55.   
 
5.59   Write and verify a Verilog structural model of the counter described in Problem 5.56.   
 
5.60   Write and verify a Verilog behavioral model of a four-bit counter that counts in the 
sequence 0, 1, 
. . . 
, 9, 0, 1, 2, 
. . . .
Adding pdf to powerpoint slide - 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 change pdf to powerpoint slides; convert pdf to powerpoint with
Adding pdf to powerpoint slide - 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
how to convert pdf to powerpoint; how to convert pdf into powerpoint presentation
254    Chapter 5  Synchronous Sequential Logic
REFERENCES 
1.  
B hasker,  J. 1997. A Verilog HDL Primer. Allentown, PA: Star Galaxy Press.  
2. 
B hasker,  J. 1998. Verilog HDL Synthesis. Allentown, PA: Star Galaxy Press.  
3. 
C iletti,  M. D. 1999. Modeling, Synthesis, and Rapid Prototyping with Verilog HDL. Upper 
Saddle River, NJ: Prentice Hall.  
4.  
D ietmeyer,  D. L. 1988. Logic Design of Digital Systems, 3rd ed. Boston: Allyn Bacon. 
5.  
G ajski,  D. D. 1997. Principles of Digital Design. Upper Saddle River, NJ: Prentice Hall. 
6. 
H ayes,  J. P. 1993. Introduction to Digital Logic Design. Reading, MA: Addison-Wesley.  
7. 
K atz,  R. H. 2005. Contemporary Logic Design. Upper Saddle River, NJ: Prentice Hall. 
8. 
M ano,  M. M. and C. R. K ime . 2007. Logic and Computer Design Fundamentals & Xilinx 
6.3 Student Edition, 4th ed. Upper Saddle River, NJ: Prentice Hall. 
9. 
N elson,  V. P., H. T. N agle,  J. D. I rwin,  and B. D. C arroll . 1995. Digital Logic Circuit 
Analysis and Design. Englewood Cliffs, NJ: Prentice Hall. 
10. 
P alnitkar,  S. 1996. Verilog HDL: A Guide to Digital Design and Synthesis. Mountain View, 
CA: SunSoft Press (a Prentice Hall title). 
11. 
R oth,  C. H. 2009. Fundamentals of Logic Design, 6th ed. St. Paul, MN: Brooks/Cole. 
12. 
T homas,  D. E. and P. R. M oorby,  2002. The Verilog Hardware Description Language, 6th 
ed. Boston: Kluwer Academic Publishers. 
13. 
W akerly,  J. F. 2006. Digital Design: Principles and Practices, 4th ed. Upper Saddle River, 
NJ: Prentice Hall.  
WEB SEARCH TOPICS 
Finite State Machine  
Synchronous state machine  
Asynchronous state machine  
D-type flip-flop  
Toggle flip-flop  
J-K type flip-flop  
Binary counter  
State diagram  
Mealy state machine  
Moore state machine  
One-hot/cold codes       
VB.NET PowerPoint: Add Image to PowerPoint Document Slide/Page
insert or delete any certain PowerPoint slide without affecting on C#.NET PPT image adding library. powerful & profession imaging controls, PDF document, tiff
convert pdf pages into powerpoint slides; images from pdf to powerpoint
VB.NET PowerPoint: Edit PowerPoint Slide; Insert, Add or Delete
To view C# code for adding, inserting or To view more VB.NET PowerPoint slide processing functions powerful & profession imaging controls, PDF document, image
convert pdf to editable powerpoint online; pdf to ppt converter online
255
Chapter 6 
Registers and Counters 
6.1    REGISTERS 
A clocked sequential circuit consists of a group of flip‐flops and combinational gates. The 
flip‐flops are essential because, in their absence, the circuit reduces to a purely combinational 
circuit (provided that there is no feedback among the gates). A circuit with flip‐flops is 
considered a sequential circuit even in the absence of combinational gates. Circuits that 
include flip‐flops are usually classified by the function they perform rather than by the name 
of the sequential circuit. Two such circuits are registers and counters. 
 register  is a group of flip‐flops, each one of which shares a common clock and is 
capable of storing one bit of information. An  n ‐bit register consists of a group of  n  
flip‐flops capable of storing  n  bits of binary information. In addition to the flip‐flops, a 
register may have combinational gates that perform certain data‐processing tasks. In 
its broadest definition, a register consists of a group of flip‐flops together with gates 
that affect their operation. The flip‐flops hold the binary information, and the gates 
determine how the information is transferred into the register. 
 counter  is essentially a register that goes through a predetermined sequence of 
binary states. The gates in the counter are connected in such a way as to produce the 
prescribed sequence of states. Although counters are a special type of register, it is 
common to differentiate them by giving them a different name. 
Various types of registers are available commercially. The simplest register is one that 
consists of only flip‐flops, without any gates.  Figure   6.1    shows such a register constructed 
with four  D ‐type flip‐flops to form a four‐bit data storage register. The common clock 
input triggers all flip‐flops on the positive edge of each pulse, and the binary data available 
at the four inputs are transferred into the register. The value of ( I  
3
 I  
2
 I  
1
 I  
0
) immediately 
before the clock edge determines the value of ( A  
3
 A  
2
 A  
1
 A  
0
) after the clock edge. The four 
VB.NET PowerPoint: VB Code to Draw and Create Annotation on PPT
PDF, TIFF, MS Word and Excel). Most of end users would like to install and use Microsoft PowerPoint software and create PPT slide annotation through adding a
add pdf to powerpoint; drag and drop pdf into powerpoint
C# PowerPoint - How to Process PowerPoint
Use the provided easy to call and write APIs programmed in C# class to develop user-defined PowerPoint slide adding and inserting projects.
pdf to powerpoint converter; export pdf to powerpoint
256    Chapter 6  Registers and Counters
outputs can be sampled at any time to obtain the binary information stored in the register. 
The input  Clear_b  goes to the active‐low  R  (reset) input of all four flip‐flops. When this 
input goes to 0, all flip‐flops are reset asynchronously. The  Clear_b  input is useful for clear-
ing the register to all 0’s prior to its clocked operation. The  R  inputs must be maintained 
FIGURE 6.1 
Four‐bit register       
D
R
C
I
0
A
0
D
R
C
I
1
A
1
D
R
C
I
2
A
2
D
R
C
I
3
A
3
Clock Clear_b
VB.NET PowerPoint: VB Codes to Create Linear and 2D Barcodes on
PowerPoint PDF 417 barcode library is a mature and This PowerPoint ISSN barcode adding control is compatible ITF-14 barcode on any PowerPoint document slide
how to convert pdf to powerpoint in; how to convert pdf to ppt online
VB.NET PowerPoint: Read, Edit and Process PPTX File
SDK into VB.NET class application by adding several compact well, like reading Excel in VB.NET, Reading PDF in VB Independent from Microsoft PowerPoint Product.
pdf to ppt converter; converting pdf to ppt online
Section 6.1  Registers    257
at logic 1 (i.e., de-asserted) during normal clocked operation. Note that, depending on the 
flip‐flop, either  Clear  Clear_b  reset or  reset_b  can be used to indicate the transfer of the 
register to an all 0’s state.  
Register with Parallel Load 
Registers with parallel load are a fundamental building block in digital systems. It is 
important that you have a thorough understanding of their behavior. Synchronous dig-
ital systems have a master clock generator that supplies a continuous train of clock 
pulses. The pulses are applied to all flip‐flops and registers in the system. The master 
clock acts like a drum that supplies a constant beat to all parts of the system. A separate 
control signal must be used to decide which register operation will execute at each clock 
pulse. The transfer of new information into a register is referred to as  loading  or  updat-
ing  the register. If all the bits of the register are loaded simultaneously with a common 
clock pulse, we say that the loading is done  in parallel . A clock edge applied to the  C  
inputs of the register of  Fig.   6.1    will load all four inputs in parallel. In this configuration, 
if the contents of the register must be left unchanged, the inputs must be held constant 
or the clock must be inhibited from the circuit. In the first case, the data bus driving the 
register would be unavailable for other traffic. In the second case, the clock can be 
inhibited from reaching the register by controlling the clock input signal with an enabling 
gate. However, inserting gates into the clock path is ill advised because it means that 
logic is performed with clock pulses. The insertion of logic gates produces uneven prop-
agation delays between the master clock and the inputs of flip‐flops. To fully synchronize 
the system, we must ensure that all clock pulses arrive at the same time anywhere in the 
system, so that all flip‐flops trigger simultaneously. Performing logic with clock pulses 
inserts variable delays and may cause the system to go out of synchronism. For this 
reason, it is advisable to control the operation of the register with the  D  inputs, rather 
than controlling the clock in the  C  inputs of the flip‐flops. This creates the effect of a 
gated clock, but without affecting the clock path of the circuit. 
A four‐bit data‐storage register with a load control input that is directed through gates 
and into the  D  inputs of the flip‐flops is shown in  Fig.   6.2   . The additional gates implement 
a two‐channel mux whose output drives the input to the register with either the data bus 
or the output of the register. The load input to the register determines the action to be 
taken with each clock pulse. When the load input is 1, the data at the four external inputs 
are transferred into the register with the next positive edge of the clock. When the load 
input is 0, the outputs of the flip‐flops are connected to their respective inputs. The feed-
back connection from output to input is necessary because a  D  flip‐flop does not have 
a “no change” condition. With each clock edge, the  D  input determines the next state of 
the register. To leave the output unchanged, it is necessary to make the  D  input equal to 
the present value of the output (i.e., the output circulates to the input at each clock 
pulse). The clock pulses are applied to the  C  inputs without interruption. The load input 
determines whether the next pulse will accept new information or leave the information 
in the register intact. The transfer of information from the data inputs or the outputs of 
the register is done simultaneously with all four bits in response to a clock edge.  
C# PowerPoint: C# Guide to Add, Insert and Delete PPT Slide(s)
offer this C#.NET PowerPoint slide adding, inserting and guide for each PowerPoint slide processing operation & profession imaging controls, PDF document, tiff
how to add pdf to powerpoint slide; pdf page to powerpoint
VB.NET PowerPoint: Sort and Reorder PowerPoint Slides by Using VB.
easily VB.NET PPT image adding and inserting clip art or screenshot to PowerPoint document slide at powerful & profession imaging controls, PDF document, image
convert pdf slides to powerpoint; convert pdf to editable ppt online
258    Chapter 6  Registers and Counters
6.2    SHIFT REGISTERS 
A register capable of shifting the binary information held in each cell to its neighboring 
cell, in a selected direction, is called a  shift register.  The logical configuration of a shift 
register consists of a chain of flip‐flops in cascade, with the output of one flip‐flop con-
nected to the input of the next flip‐flop. All flip‐flops receive common clock pulses, 
which activate the shift of data from one stage to the next. 
The simplest possible shift register is one that uses only flip‐flops, as shown in  Fig.   6.3   . 
The output of a given flip‐flop is connected to the  D  input of the flip‐flop at its right. This 
shift register is unidirectional (left‐to‐right). Each clock pulse shifts the contents of the 
FIGURE 6.2 
Four‐bit register with parallel load       
Load
Clock
D
C
A
0
I
0
I
1
I
2
I
3
D
C
A
1
D
C
A
2
D
C
A
3
VB.NET PowerPoint: Extract & Collect PPT Slide(s) Using VB Sample
functions, like VB.NET PPT slide adding/removing, PPT read this VB.NET PowerPoint slide processing tutorial & profession imaging controls, PDF document, image
how to convert pdf to powerpoint slides; convert pdf file into ppt
VB.NET PowerPoint: PPTX to SVG Conversion; Render PPT to Vector
into VB.NET project by adding project reference PowerPoint files that end with .pptx file suffix can powerful & profession imaging controls, PDF document, tiff
converting pdf to powerpoint online; pdf to ppt
Section 6.2  Shift Registers    259
register one bit position to the right. The configuration does not support a left shift. The 
serial input  determines what goes into the leftmost flip‐flop during the shift. The  serial 
output  is taken from the output of the rightmost flip‐flop. Sometimes it is necessary to 
control the shift so that it occurs only with certain pulses, but not with others. As with the 
data register discussed in the previous section, the clock’s signal can be suppressed by gat-
ing the clock signal to prevent the register from shifting. A preferred alternative in high‐
speed circuits is to suppress the clock  action rather than gate the clock signal, by leaving 
the clock path unchanged, but recirculating the output of each register cell back through a 
two‐channel mux whose output is connected to the input of the cell. When the clock action 
is not suppressed, the other channel of the mux provides a datapath to the cell.  
It will be shown later that the shift operation can be controlled through the  D  inputs of 
the flip‐flops rather than through the clock input. If, however, the shift register of  Fig.   6.3    
is used, the shift can be controlled with an input by connecting the clock through an AND 
gate. This is not a preferred practice. Note that the simplified schematics do not show a 
reset signal, but such a signal is required in practical designs. 
Serial Transfer 
The datapath of a digital system is said to operate in serial mode when information 
is transferred and manipulated one bit at a time. Information is transferred one bit at 
a time by shifting the bits out of the source register and into the destination register. 
This type of transfer is in contrast to parallel transfer, whereby all the bits of the 
register are transferred at the same time. 
The serial transfer of information from register  A  to register  B  is done with shift 
registers, as shown in the block diagram of  Fig.   6.4   (a). The serial output ( SO ) of register 
A  is connected to the serial input ( SI ) of register  B.  To prevent the loss of information 
stored in the source register, the information in register  A  is made to circulate by con-
necting the serial output to its serial input. The initial content of register  B  is shifted out 
through its serial output and is lost unless it is transferred to a third shift register. The 
shift control input determines when and how many times the registers are shifted. For 
illustration here, this is done with an AND gate that allows clock pulses to pass into the 
CLK  terminals only when the shift control is active. (This practice can be problematic 
because it may compromise the clock path of the circuit, as discussed earlier.) 
Suppose the shift registers in  Fig.   6.4    have four bits each. Then the control unit that 
supervises the transfer of data must be designed in such a way that it enables the shift 
FIGURE 6.3 
Four‐bit shift register       
D
C
SO
SI
D
C
D
C
D
C
Serial
input
Serial
output
CLK
260    Chapter 6  Registers and Counters
registers, through the shift control signal, for a fixed time of four clock pulses in order 
to pass an entire word. This design is shown in the timing diagram of  Fig.   6.4   (b). The shift 
control signal is synchronized with the clock and changes value just after the negative 
edge of the clock. The next four clock pulses find the shift control signal in the active 
state, so the output of the AND gate connected to the  CLK  inputs produces four pulses: 
T
1
T
2
T
3
,    and    T
4
.    Each rising edge of the pulse causes a shift in both registers. The 
fourth pulse changes the shift control to 0, and the shift registers are disabled.  
Assume that the binary content of  A  before the shift is 1011 and that of  B  is 0010. 
The serial transfer from  A  to  B  occurs in four steps, as shown in  Table   6.1   . With the first 
pulse,    T
1
,    the rightmost bit of  A  is shifted into the leftmost bit of  B  and is also circulated 
into the leftmost position of  A.  At the same time, all bits of  A  and  B  are shifted one 
position to the right. The previous serial output from  B  in the rightmost position is lost, 
and its value changes from 0 to 1. The next three pulses perform identical operations, 
shifting the bits of  A  into  B,  one at a time. After the fourth shift, the shift control goes 
to 0, and registers  A  and  B  both have the value 1011. Thus, the contents of  A  are copied 
into  B so that the contents of  A  remain unchanged i.e., the contents of  A  are restored 
to their original value.  
The difference between the serial and the parallel mode of operation should be appar-
ent from this example. In the parallel mode, information is available from all bits of a 
register and all bits can be transferred simultaneously during one clock pulse. In the serial 
FIGURE 6.4 
Serial transfer from register A to register B       
Shift register A
Shift register B
SI
A
SO
A
SI
B
SO
B
CLK
CLK
CLK
Clock
Clock
Shift
control
Shift
control
(a) Block diagram
(b) Timing diagram
T
1
T
2
T
3
T
4
Section 6.2  Shift Registers    261
mode, the registers have a single serial input and a single serial output. The information 
is transferred one bit at a time while the registers are shifted in the same direction.  
Serial Addition 
Operations in digital computers are usually done in parallel because that is a faster 
mode of operation. Serial operations are slower because a datapath operation takes 
several clock cycles, but serial operations have the advantage of requiring fewer hard-
ware components. In VLSI circuits, they require less silicon area on a chip. To demon-
strate the serial mode of operation, we present the design of a serial adder. The parallel 
counterpart was presented in Section 4.4. 
The two binary numbers to be added serially are stored in two shift registers. Begin-
ning with the least significant pair of bits, the circuit adds one pair at a time through a 
single full‐adder (FA) circuit, as shown in  Fig.   6.5   . The carry out of the full adder is trans-
ferred to a  D  flip‐flop, the output of which is then used as the carry input for the next 
pair of significant bits. The sum bit from the  S  output of the full adder could be trans-
ferred into a third shift register. By shifting the sum into  A  while the bits of  A  are shifted 
out, it is possible to use one register for storing both the augend and the sum bits. The 
serial input of register  B  can be used to transfer a new binary number while the addend 
bits are shifted out during the addition.  
The operation of the serial adder is as follows: Initially, register  A  holds the augend, 
register  B  holds the addend, and the carry flip‐flop is cleared to 0. The outputs ( SO ) of  A  
and  B  provide a pair of significant bits for the full adder at  x  and  y.  Output  Q  of the flip‐flop 
provides the input carry at  z.  The shift control enables both registers and the carry flip‐flop, 
so at the next clock pulse, both registers are shifted once to the right, the sum bit from  S  
enters the leftmost flip‐flop of  A and the output carry is transferred into flip‐flop  Q.  The 
shift control enables the registers for a number of clock pulses equal to the number of bits 
in the registers. For each succeeding clock pulse, a new sum bit is transferred to  A a new 
carry is transferred to  Q and both registers are shifted once to the right. This process con-
tinues until the shift control is disabled. Thus, the addition is accomplished by passing each 
pair of bits together with the previous carry through a single full‐adder circuit and transfer-
ring the sum, one bit at a time, into register  A.  
Initially, register  A  and the carry flip‐flop are cleared to 0, and then the first number 
is added from  B.  While  B  is shifted through the full adder, a second number is transferred 
Table 6.1 
Serial‐Transfer Example  
Timing Pulse 
Shift Register A   
Shift Register B   
Initial value 
 0  1  1 
 0  1  0 
After    T
1
 1  0  1 
 0  0  1 
After    T
2
 1  1  0 
 1  0  0 
After    T
3
 1  1  1 
 1  1  0 
After    T
4
 0  1  1 
 0  1  1 
262    Chapter 6  Registers and Counters
to it through its serial input. The second number is then added to the contents of register 
A , while a third number is transferred serially into register  B.  This can be repeated to 
perform the addition of two, three, or more four‐bit numbers and accumulate their sum 
in register  A.  
Comparing the serial adder with the parallel adder described in Section 4.4, we note 
several differences. The parallel adder uses registers with a parallel load, whereas the 
serial adder uses shift registers. The number of full‐adder circuits in the parallel adder 
is equal to the number of bits in the binary numbers, whereas the serial adder requires 
only one full‐adder circuit and a carry flip‐flop. Excluding the registers, the parallel 
adder is a combinational circuit, whereas the serial adder is a sequential circuit which 
consists of a full adder and a flip‐flop that stores the output carry. This design is typical 
in serial operations because the result of a bit‐time operation may depend not only on 
the present inputs, but also on previous inputs that must be stored in flip‐flops. 
To show that serial operations can be designed by means of sequential circuit proce-
dure, we will redesign the serial adder with the use of a state table. First, we assume that 
two shift registers are available to store the binary numbers to be added serially. The 
serial outputs from the registers are designated by  x  and  y.  The sequential circuit to 
be designed will not include the shift registers, but they will be inserted later to show 
the complete circuit. The sequential circuit proper has the two inputs,  x  and  y that 
provide a pair of significant bits, an output  S  that generates the sum bit, and flip‐flop 
Q  for storing the carry. The state table that specifies the sequential circuit is listed in 
Table   6.2   . The present state of  Q  is the present value of the carry. The present carry in 
Shift register A
(Augend)
Shift register B
D
C
SI
SI
SO
SO
x
y
S
C
Q
z
FA
Serial
input
Shift
control
CLK
Clear
(Addend)
FIGURE 6.5 
Serial adder       
Documents you may be interested
Documents you may be interested