CSE 140L Lab 2  Sequential Circuit Design
Fall 2010, Professor Cheng, TAs Gopi Krishna Tummala, Shams Pirani, Vikram Murali
Due time: Demonstrate by 11/03/2010 TAlab hours, Report by 11/03/2010 11:59pm.
Important! Please regularily check http://webct.ucsd.edu for the latest updates and news regarding this lab. FAQs and announcements will be on the webboard, so check it often!
Objective
 Learn how to use flipflops.
 Learn how to design basic sequential circuits like shifters, counters, etc.
 Learn how to use the FPGA board to demonstrate your sequential circuits.
 Learn how to implement a fibonacci number series using flipflops.
We will give you guys a tutorial on a very basic sequential circuit. Here you will learn how to use the
onboard clock. Also, we will provide a stepbystep instructions for using
the VHDL editor and creating modules with it. We will also provide the VHDL code to use.
IMPORTANT: thoughout all the parts of this lab, the clock frequency will be 1 Hz.
Pressing the left button will start the cycle, while pressing the right button will reset/clear the cycle.
The rest of the lab will not contain as detailed instructions. However, we will give hints as needed.
Important  For the timing and functional outputs, we want the
actual output, NOT the segment display output. So similar to lab 1,
please use output ports before the segment display modules like you did
for the adder and mux.
Part 0. Sequential Circuit Tutorial
For this part, you will simply follow the tutorial to learn some of the basics that you will need for this lab.
Lab 2 Tutorial
Part 1. 8bit Shift Register
For part 1, you will be designing an 8bit shift register using D
flipflops. To demonstrate this on the board,
you will be designing your shifter so that you shift the red line on
your LED outputs. Normally your board will display nothing, but when
you press the left button (you will have to hold it down for a second
or so), you send an input of 1 into the first flip flop, which causes a
red line to be shifted every second around the segment display. The
output pattern will look like:
Use the tutorial as a starting point for this circuit.
Configure your D flipflops in such a way that you capture this
shifting. The left button will be used to start the cycle, and the
right button will be used to clear all the segment displays. Note: You can ignore the
leftmost two LED displays (just use HEX0 and HEX1).
Report:
 Include schematic diagrams of your circuit
 Include functional and timing diagrams of your simulation.
 Explain what happens in your functional simuation when you press the reset button. What happens to all the outputs?
 Explain why this shifter is "sequential" as opposed to the combinational circuits you did in lab 1.
What does sequential even mean?
 Draw out what the outputs would look like if you tied a "1" into the first flip flop (draw out 10 cycles).
Part 2. Asynchronous Counter
In this part, you will build an 8bit asynchronous counter using T flipflops. You will output the results
on the segment display. The left number will display the MSB, and the right one will display the LSB. Therefore
your pattern will look like: 00, 01, 02, 03, ... 0F, 10, 11, ... , F0, F1, ... FF. Therefore you will need two
4bit binary display modules to output the correct number on the segment display.
We provide you the VHDL code (you are free to use the display module you made in lab 1) DEC_7SEG.vhd
for the two LED digits for you to use. Implement this the same way as
the tutorial demonstrated. You will also need to learn how to use bus
inputs for this part.
Another thing, pressing the left button should speed up the clock 10x (think of a mux you made in lab 1), and the right will reset.
Report:
 Include schematic diagrams of your circuit
 Include functional and timing diagrams of your simulation.
 Explain why this is an asynchronous counter, as opposed to your synchronous shift register.
 Write one to two paragraphs explaining how an asynchronous
counter works. Convince us you know how and why the numbers get counted
up every cycle.
Part 3. Fibonacci Series Design
Design a circuit which displays fibonacci series number every clock cycle.
Pressing the left button should start the process (series progression) and pressing the right button should reset it.
You only generate a 4 bit number and display the bits on four 7segment displays.
The series equations is f(n+1) = f(n) + f(n1) where n1 is the previous output, n is the current output and n+1 is the required output.
At every clock cycle, the output changes in the sequence 0001 (1), 0010 (2), 0011 (3), 0101 (5), 1000 (8), 1101 (13).
When you start the progression you don't have any previous output which means you put 0.
So first equation: f(1) = 1 + 0 = 1
second equation: f(2) = 1 + 1 = 2
and so on...
Report:
 Include schematic diagrams of your circuit
 Include functional and timing diagrams of your simulation.
Part 4. Johnson Counter
You will design an 8bit Johnson counter in this part of the lab.
The 8bit output will be mapped to LED using the same way as part 1. The
right button will be used to reset your counter.
Report:
 Include schematic diagrams of your circuit
 Include functional and timing diagrams of your simulation.
 Explain how a Johnson Counter is similar and different from your 8bit shift register.
Part 5. Fibonacci series index track
In this part, you will use your design from part 3 along with a counter to keep track of fibonacci number's index.
What this means is, you have 4 bit fibonacci series whose outputs will be 1,2,3,5,8,13. So the index of 13 would be 6 because it's the 6th output.
Just display the value of index on the 7segment display.
Report:
 Include schematic diagram of your additional circuit
 Can you make a clock now? Write 23 paragraphs on how would you design an actual clock which goes from 0  59 (seconds)
Demonstration
You will need to demonstrate your project to a lab TA. Please
look at the office hours for when we are available.
Grading
30% of your grade will be from the demonstration, so this is an
easy 30%. Another 40% will be in your logic schematics and timing
diagrams. Easy points assuming you were able to demonstrate this for
us. 30% will be in your answers to the questions.
