Beruflich Dokumente
Kultur Dokumente
2014
Submission Details/Deadlines:
1- High level Design of Circuit- 28th April, 2014
2- Complete implementation of the circuit in Logic
Works.- 7th May, 2014
Project 1:
Traffic lights
Problem
If the three traffic lights (leaving yellow) are written as R, G and G- where
G- is the green light to turn right, then the traffic signals operate as
follows.
Input
Clock Pulse CP
Output
Light connections A0, A1, B0, B1, C0, C1, D0, D1
Project 2:
Dice counter
Problem
A company is producing dice. To check the balancing of the dice they have made a
mechanical equipment to throw the dice and read the answer. But they now need a
circuit to count the actual number of times each side appeared.
They already have a display and the dice counter. The LCD has 4 inputs and displays the
number placed at its input. The dice counter has five outputs, four to tell which number
has appeared and one to tell that a new sample is available.
You have to design a circuit that gets input from the counter, counts the frequency of all
the numbers and produce the output on six LCDs i.e. you will have 24 output lines.
Input
Clock Pulse
Sample Available
Sample Data
CP
SA
D0D3
Output
Count of 1-6
Project 3:
Queue of 2-bit words
Problem
Implement a queue of 2 bit numbers. The capacity should be 4 words. It should have an
add input with 2 inputs for actual data. A delete input with 2 outputs for data. And two
outputs as overflow and underflow indicators.
Input
Clock Pulse
Add
Add Data
Delete
CP
AA
A0, A1
DA
Output
Delete Data
Overflow
Underflow
D0, D1
OF
UF
Project 4:
Stack of 2-bit numbers
Problem
Implement a stack of 2 bit numbers. The capacity should be 4 words. It should have a
push input with 2 inputs for actual data and a pop input with 2 outputs for data. And two
outputs as overflow and underflow indicators.
Input
Clock Pulse
Add
Push Data
Delete
CP
AA
A0, A1
DA
Output
Pop Data
Overflow
Underflow
D0, D1
OF
UF
Project 5:
Linked List of bits
Problem
Design a linked list of 1 bit numbers with capacity for 8 bits. It should have an insert
input with 3-bit input for position and a bit for actual data. It should also have a delete
input with 3-bit position input and a bit for output. Every position should know weather
there is data available or not. This should be set on insert and cleared on delete.
Input
Clock Pulse
Insert
Delete
Position
Insert Data
CP
IA
DA
P0P2
ID
Output
Delete Data
DD
Nothing to Delete
DF
Data Already present IF
(delete failure)
(insert failure)
Project 6:
Robot Controller
Problem
A computer needs to control a robot, where the computer sends the following
commands:
Do nothing
00
Turn right
01
Turn left
10
Move forward 11
You have to design a circuit that accepts these commands and sends the robot the
following signals
Do nothing
000
Turn right
001
010 011
Turn left
101
110 111
Move forward 100
100
So they respectively take 1,3,3 and 2 clock cycles. Until the current command is
completed, dont take a look at the next input from the computer.
Input
Clock Pulse
Input Available
Input Command
CP
IA
C0, C1
Output
Output Available
Output Signal
OA
S0S2
Project 7:
Alarm clock
Problem
You have to design a digital alarm clock. The circuit you will design will keep the time in
24 hour format and will give its output to 4 seven- segment displays, whose input is 7
bits controlling the seven segments. So you will have 28 output lines for the display. You
will also have an alarm output, which is connected to an actual alarm. The alarm will ring
as long as this signal is 1. You will set this output at 1200 hrs everyday and it should
remain set for 5 minutes. Assume that the clock pulse you are using gives pulses exactly
one minute apart.
Input
Clock Pulse
CP
Output
Display output
Alarm Output
Project 8:
Serial I/O Controller
Problem
A serial I/O Controller will interrupt the CPU when 8 bits are available in its buffer. It
will provide the CPU with data when the CPU acknowledges the interrupt. It will discard
its buffer, if the CPU does negative acknowledgment. To read data from the serial device
it check input available flag, then reads data and sends data read signal. If more data is
available, input available will be set in the next cycle also.
Input
Clock Pulse
Input Available
Input Data
INT acknowledge
INT NOT ACK
CP
IA
ID
INTA
INTNA
Output
Data Read Signal
Output Data
Output Available
R
OD
OA
Project 9:
Memory Controller
Problem
A computer has 2 ROMs each containing 8 words of 1-bits data. There are two devices
each of which needs access to the ROMs. Each ROM has three address lines; an enable
input while produces output of a single bit, setting the output available flag, in total four
inputs and 2 outputs.
Each device has five outputs; one to enable the memory, one to select which ROM to
use, three to select the address in the ROM, while there are two inputs, data available
and the actual data.
You are to insert a circuit between the devices that allows both devices to use both
ROMs. The devices should be able to simultaneously place requests and get data if
they are going for different ROMs while one should wait when going before one of
them.
Assume one request arrives in one clock cycle, and no request can arrive from the
same device until the first is satisfied. However the memory can take many clock
cycles before it sets output available and gives the data.
In the following A and B are the prefix for devices, X and Y for ROMs.
Input
Clock Pulse
Memory enable
ROM Select
Address lines
Output Available
Output Data
CP
AE, BE
AS, BS
AA0AA2, BA0BA2
XOA, YOA
XOD, YOD
Output
Output Available
Output Data
Memory enable
Address lines
AOA, BOA
AOD, BOD
XE, YE
XA0XA2, YA0YA2
Project 10:
Mouse Controller
Problem
The actual mouse device never sends screen coordinates; it sends relative motion. You
have to design a circuit that is given relative motion in both directions from mouse
device and is to continuously output x and y coordinates. A RESET input can be used to
set both to zero.
The relative motion is coded as follows:
Fast motion
110
Slow motion
101
No motion
100
Slow negative motion
011
Fast negative motion
010
Input
Clock Pulse
Reset X and Y
Up/down input
Left/right input
CP
RESET
RY0RY2
RX0RX2
Output
X position
Y position
X0X7
Y0Y7
+2 pixels
+1 pixel
no change
-1 pixel
-2 pixels
Project 11:
System timer
Problem
Computers contain a timer containing programmable channels. Programmable channels
mean timers of different durations. You are to design a circuit with four programmable
channels, each disabled initially. An enable input, two channel select inputs and 4 lines
for duration input can set any channel to a given duration from 1-15. Zero means to
disable a channel. Four output lines correspond to the channels and are set high as soon
as the corresponding timer expires.
Input
Clock Pulse
Input Available
Channel Select
Duration
CP
IA
CS0, CS1
D0D3
Output
Timer Expire
Project 12:
Ping reporter
Problem
Design a circuit that communicates with a device using two lines, PING and
RESPONSE. Your circuit counts the clock cycles between each PING and the
following RESPONSE by the device. It makes available the 4-bit max number of
cycles at its output.
Assume that no stale RESPONSE replies may occur. Every PING will be followed by a
RESPONSE and the max time before RESPONSE cannot exceed 16.
Input
Clock Pulse
Response
CP
R
Output
Ping
Maximum time
P
M0M3
Project 13:
Speedometer
Problem
You have to design a circuit, which will be given the 4-bit speed of a vehicle at its input
every clock cycle. It has 3 outputs, max, avg & min, each 4-bit long giving the
respective value.
Input
Clock Pulse
Input Speed
CP
I0I3
Output
Max speed
Avg speed
Min speed
Note:
X0X3
A0A3
N0N3
14:
Multiplier
Problem
Design a circuit that can multiply two 8-bit numbers. You will need to use adder
circuits in the design of the multiplier.
Input
Clock Pulse
First Number
Second Number
CP
A0A7
B0B7
Output
Answer
C0C14
Project 15:
Calculator
Problem
You have to design a processor for a calculator, which can do the following:
Display A
Display B
Input A
Input B
A=A+B
B=A+B
A=B - A
B=A
000
001
010
011
100
101
110
111
Your circuit has three inputs to read the command and a command available flag. While
it has four more inputs to read A or B and has 5 outputs, 4 for displaying and 1 as output
available flag.
Input
Clock Pulse
Command Available
Command
Input Data
CP
CA
C0C2
A0A3
Output
Output Available
Output Data
OA
D0D3
Project 16:
FunBrain Magician
The FunBrain Magician is game that will pick a secret number between 0 31. User
guesses what number it is. If the guess is high or low, FunBrain will give a hint.
User will ask the magician to generate the random number by setting input GRN = 1.
Magician will take the guess after every 4 cycles. If the answer is correct CA will be set
to 1, otherwise H or L will be set accordingly. In the end magician should tell in how
many turns user is able to guess the correct number.
Input
Clock Pulse
CP
Generate Random number GRN
Guessed Number
C0C4
Output
Correct Answer
Number of guesses
High
Low
CA
D0D4
H
L
Project 17:
Circular Linked List
Problem
Design a linked list of 3 bit numbers with capacity for 3x4 bits. It should be able to insert
input with 2-bit input for position and 3 bits for actual data. Every position should know
weather there is data available or not. This should be set on insert. It should be able to
rotate data right & left. It should also be able to swap data of 2 nodes. In that case there
should be two 2 bits for source & destination.
Your circuit has 2 inputs A, B to read the command
Command
Insert
Rotate right
Rotate left
swap
A,B
00
01
10
11
Input
Clock Pulse
Insert Position
Insert Data
Source Position
Destination Position
Command
CP
P0,P1
I0I2
S0,S1
D0,D1
A,B
Output
4 Seven segment display showing the
contents of each node
(insert
Data Already present IF
failure)
Note:
If node is empty then Seven segment display should display E
Project 18
16-bit pseudo random generator
It should generate 16 bit random number. Make sure your system should not
generate the same random number on the same seed.
Input
Clock Pulse
Seed
CP
S0S15
Output
Random Number
A0..A15
Project 19
Tic-Tac-Toe Game
Its a two player game. You have a grid of size 20x20. Each cell of the grid is
assigned a unique combination (id) of length 6. Each player will mark the cell on its turn.
The cell will be marked by giving its unique id. The player who succeeds in placing
twenty respective marks in a horizontal, vertical, or diagonal row wins the game.
Input
Clock Pulse
Cell no
CP
CN (on every turn)
Output
Winner Player
WP
Project 20
Snakes and Ladders
Its a two player game. You have 0-99 cells, with each cell having a unique number. Each
player roles a dice and output can only be between 1 to 6. The player moves number of
cells ahead according to face value of dice. The first one to reach 99 will win. You need
to fix the positions of snakes and ladders on the cells. The game also has to display the
turn of each player.
Input
Clock Pulse
Start Dice Roll
CP
1 to start and 0 to stop
Output
Position of each player on board
Winner Player
WP
Project 21
Input
Clock Pulse
T (Trigger Device)
SR(Sound Received)
I(Input Speed)
Speed of Sound(m/s)
CP
set to initiate distance measurement process
set when the echo is received
set when speed of sound has to be updated
S0S15
Output
ES(Emit Sound)
Distance (m)
Project 22
Snake Game
You are required to design the famous single player game called Snake. The snake (initially
3 bits long) moves in a 16 x 16 grid. Food appears at random locations on the grid and the
size of the snake grows by one each time it eats. Each food item increases the points by 5.
Twenty points leads to the next level where the size of the snake is again reset to 3 bits and
new obstacles (bricks on certain locations on the grid) appear. If the snake hits one of these
obstacles, it dies and game is over. There are 5 levels in the game. If the player scores 100,
he wins.
Input
Clock Pulse
Up
Down
Right
Left
CP
1 to move up
1 to move down
1 to move right
1 to move left
Output
Level
Points
L0, L1, L2
P0P6