Archive

Home

Home

Project Guide

Step 1:
Make a multiplexer 8 to 1 ,each input 16 bits.
Well this can be done using 16 multiplexers each 8 to 1, each multiplexer
will be responsible to choose a certain bit from the input buses.
For example, first multiplexer will take bit 0 from each input bus.
Note: there are eight input buses
Step 2:
Make a 16 bit register that can perform clear,load and increment
Note: You will find this register in the Archive.
And the instructions how to download it in the DownloadTips.
It is very much recommended to read the downloading instructions first!

Step 3:
Given this instruction set:
FetchR'T0:AR<--PC
R'T1:IR<--M[AR],PC<--PC+1
DecodeR'T2:D0,...D7<--Decode IR(12-14),
AR<--IR(0-11),I<--IR(15)
IndirectD7'IT3AR<--M[AR]
Memory Reference:
ANDD0T4:DR<--M[AR]
D0T5:AC<--AC^DR,SC<--0
ADDD1T4:DR<--M[AR]
D1T5:AC<--AC+DR,E<--Cout,SC<--0
LDAD2T4:DR<--M[AR]
D2T5:AC<--DR,SC<--0
STAD3T4:M[AR]<--AC
BUND4T4:PC<--AR
BSAD5T4:M[AR]<--PC,AR<--AR+1
D5T5:PC<--AR,SC<--0
ISZD6T4:DR<--M[AR]
D6T5:DR<--DR+1
D6T6:M[AR]<--DR, if (DR=0) then (PC<--PC+1) , SC<--0
Register Reference
D7I'T3=r (common to all register reference instructions)
IR(i)=Bi(I=0,1,2,...,11)
rSC<--0
CLArB11AC<--0
CLErB10E<--0
CMArB9AC<--AC'
CMErB8E<--E'
INCrB5AC<--AC+1
HLTrB0S<--0
Make a macro for each register control.
That will be 5 control macros.
For AR,PC,DR,AC,IR
You will need also control macros for the following:
ALU (which is given in the archive)
S flip-flop (which is given in the archive)
Sequence Counter (which is given in the archive)
Tip: The sequence counter is found in the Xilinx Library "CB4RE"
And the I bit is implemented using a Flip-flop and will be loaded at R'T2
Step 4:
Make a 16-bit ALU
Step 5:
Make macro to control the common bus, i.e. to select which
register may put its value on the common bus
Note: This macro is given also in bonus zip in the archive.
Step 6:
Make a macro for the control unit given on page 137
If you want to see a picture of how the control unit will look like click here:
Step 7:
At last connect all components as shown on page 130
If you want to see how the project will look like at the end click here:
and if you would like to enlarge it, click on it. Step 8:
Never forget this step in any of your projects...Simulate!
Here you can view a sample of the simluation for
a given program:
Memory LocationInstruction[PC][AC][IR]
ORG 0000000--------
000CMA0001FFFF7200
001INC000200007020
002ADD MIN000300501005
003AND MAX000400400006
004HLT000500407001
005MIN: HEX50
006MAX: HEX60

To view an image of the simulation click here:
Back to Top


For problems or questions regarding this web contact [Course Email].
Last updated: 03,January 2002.


Copyright � 2001 - 2002 by Hala Ahmed Farouk, All rights reserved

Hosted by www.Geocities.ws

1