Digital
Design
Using
Altera
MAX+plus
II
and
UP1
Education
Board
For
Digital
Logic
Design
Lab,
RealTime
Applications,
ECSE4760
Zhonghui
Bing
Department
of
ECSE,
Rensselaer
Polytechnic
Institute
July,
2010
Introduction
UP1
Educational
Board
The
University
Program
(UP)
Design
Laboratory
Package
(referred
to
as
UP1)
was
designed
and
released
by
Altera
to
meet
the
needs
of
universities
teaching
digital
logic
design
with
the
development
tools
and
programmable
logic
devices
(PLDs).
The
UP
1
Education
Board
has
many
features
that
facilitate
rapid
prototyping
of
digital
logic.
MAX+plus
II
Software
The
logic
designs
that
are
entered
on
the
UP
1
Education
Board
require
the
use
of
special
CAD
software
to
configure
the
Flex10K20
CPLD/MAX7128
FPGA.
Students
will
use
software
that
runs
on
standard
PCs
under
Windows.
The
general
engineering
design
cycle
which
is
supported
by
the
Altera
MAX+plus
II
software
is
highlighted.
The
process
includes
the
design
entry,
project
verification,
project
processing,
and
device
programming.
The
UP1
contains
2
programmable
logic
devices,
a
MAX7128
and
a
FLEX
10K,
along
with
several
I/O
devices.
The
MAX7128
may
be
connected
to
two
pushbutton
switches
(PB1
&
PB2),
two
8‐bit
DIP
switches
(SW1_1
–
8
&
SW2_1
–
8),
16
LEDS
(D1
–
D16),
and
two
7‐segment
displays
with
decimal
points
for
inputs
and
outputs.
The
FLEX
10K
has
access
to
two
pushbutton
switches
(FLEX_PB1
&
FLEX_PB2),
a
single
8‐bit
DIP
switches
(SWITCH_1
–
8),
and
two
7‐segment
displays
with
decimal
points
for
inputs
and
outputs.
To
speed
up
the
development
process
of
implementing
a
state
machine
on
the
hardware,
an
example
(bcounter.gdf)
is
provided
that
uses
most
of
the
I/O
available
in
a
simple
counter
circuit.
It
is
strongly
suggested
that
students
copy
this
example
as
a
starting
point
and
modify
it
to
implement
the
state
machine
developed
as
the
final
project
for
the
Digital
Logic
Design
Experiment
in
Real‐Time
Applications
in
Control
&
Communications.
The
input
block
on
the
left
side
of
the
circuit,
which
also
includes
switch
debouncing
and
multiple
clock
outputs,
and
the
output
block
on
the
right
side
will
remain
relatively
unchanged
in
student
implementations.
Only
the
logic
circuit
between
the
2
blocks
that
manifest
the
project
will
be
modified.
Before
building
the
circuit
for
the
Digital
Logic
Design
final
project,
the
counter
example
should
be
compiled,
downloaded,
and
executed
to
verify
the
operation
of
the
UP1
board.
The
bcounter.gdf
circuit
is
a
4‐bit
up/down
counter
that
uses
PB1
to
change
the
count
direction
and
PB2
to
clear
the
counter.
LEDs
D0
–
D4
display
the
binary
value
of
the
count
along
with
the
decimal
value
on
the
7‐segment
display
(with
other
symbols
representing
hexadecimal
A
through
F).
DIP
switch
1
on
SW2
controls
D9.
In
order
for
the
counter
to
work
external
wires
must
be
added
to
the
board
between
the
I/Os
and
the
MAX7128
chip.
The
required
connections
between
the
MAX
headers
and
the
switches/LEDs
are
list
below
in
the
table
under
Hardware
Connections.
Initial
Setup
There
are
4
jumpers
on
the
top
left
of
the
UP1
board
labeled
TD1,
TD0,
DEVICE,
and
BOARD
that
should
be
as
follows:
This
brief
tutorial
will
only
discuss
use
of
the
MAX7128
FPGA.
Students
wishing
to
implement
circuits
on
the
FLEX
10K
CPLD
will
be
referred
to
the
Altera
reference
manuals
for
additional
set‐up
information.
Plug
in
the
+5V
and
Ground
connections
to
the
board.
Connect
the
parallel
port
on
the
PC
to
the
ByteBlasterMV
port
on
the
UP1
card.
The
required
software
tools
should
be
on
the
lab
computers
under
All
Programs
→
MAX+plus
II
10.2
BASELINE
→
MAX+plus
II
10.2
BASELINE.
If
this
is
missing
you
will
need
to
use
a
different
computer.
Hardware
Connections
The
following
table
summarizes
the
connected
external
components.
The
Pin
numbers
refer
to
that
on
the
MAX7128
chip
while
the
label
in
parentheses
is
the
header
pin
number.
P1,
P2,
P3,
&
P4
are
the
4
header
that
surround
the
MAX7128.
These
jumpers
must
be
in
place
for
the
bcounter.gdf
demonstration
to
work.
Component
SW1_DIP
1
SW1_DIP
2
SW1_DIP
3
SW1_DIP
4
SW1_DIP
5
SW1_DIP
6
SW1_DIP
7
SW1_DIP
8
MAX_PB1
MAX_PB2
7128
Pin
28
(P2_17)
30
(P2_19)
31
(P2‐20)
29
(P2_18)
34
(P3_2)
33
(P3_1)
35
(P3_3)
36
(P3_4)
24
(P2_13)
25
(P2_14)
Component
Diode
D1
Diode
D2
Diode
D3
Diode
D4
Diode
D5
Diode
D6
Diode
D7
Diode
D8
Diode
D9
SW2_DIP
1
7128
Pin
57
(P4_4)
56
(P4_3)
55
(P4_2)
54
(P4_1)
52
(P3_20)
51
(P3_19)
50
(P3_18)
49
(P3_17)
80
(P1_6)
37
(P3_5)
The
following
assignments
have
been
defined
in
bcounter.gdf
but
are
not
used
by
the
circuit.
They
are
there
for
use
in
student
circuits
if
more
inputs
and
output
are
required
by
the
project.
As
before,
external
wires
must
be
placed
between
the
corresponding
DIP
switch
or
LED
header
pin
and
the
header
pin
on
the
MAX7128
to
use
that
particular
input
or
output.
Defining
these
new
connections
could
be
a
little
confusing
so
it
was
decided
to
just
create
all
the
possible
connections
the
MAX7128
supported
on
the
UP1
board
in
the
demonstration
program
to
reduce
student
frustration.
Component
SW2_DIP
1
SW2_DIP
2
SW2_DIP
3
SW2_DIP
4
SW2_DIP
5
SW2_DIP
6
SW2_DIP
7
SW2_DIP
8
7128
Pin
37
(P3_5)
39
(P3_7)
40
(P3‐8)
41
(P3_9)
44
(P3_12)
45
(P3_13)
46
(P3_14)
48
(P3_16)
Component
Diode
D9
Diode
D10
Diode
D11
Diode
D12
Diode
D13
Diode
D14
Diode
D15
Diode
D16
7128
Pin
80
(P1_6)
81
(P1_7)
4
(P1_14)
5
(P1_15)
6
(P1_16)
8
(P1_18)
9
(P1_19)
10
(P1_20)
Schematic
Design
In
addition
to
using
Hardware
Description
Languages
(HDL),
users
can
enter
a
digital
logic
design
via
schematic
capture
techniques
using
Graphic
Editor.
The
design
will
be
entered
using
the
graphic
editor,
processed
with
the
MAX+plus
II
software
and
verified
using
functional
simulation.
The
design
will
then
be
used
to
configure
the
MAX7128
portion
of
the
UP
1
Educational
Board.
bcounter.gdf
is
provided
to
students
to
facilitate
the
design
process.
All
I/O
ports
that
can
be
directly
applied
to
a
user’s
circuit
have
been
pre‐defined.
These
are
located
in
the
dashed
black
boxes
and
user
should
avoid
modifying
them.
The
input
components
have
a
group
of
clock
sources:
CLK_1M
(meaning
1
MHz),
CLK_100K,
…,
and
CLK_1Hz
(1
Hz),
two
push
buttons,
and
sixteen
DIP
switch
inputs.
The
outputs
have
two
groups
of
7‐segment
displays
and
sixteen
diodes
(LEDs).
Users
can
modify
and
add
circuits
in
between
the
blocks
and
route
the
necessary
I/Os.
Running
the
Demonstration
The
quick
start
for
initially
using
the
boards
involves
running
the
MAX+plus
II
program,
opening
the
bcounter.gdf
file,
compiling
the
design
(and
specifying
it
to
be
the
current
project
if
asked),
starting
the
programmer
utility
and
initiating
the
program
process.
After
starting
All Programs → MAX+plus II 10.2 BASELINE → MAX+plus II 10.2 BASELINE, use File → Open to open the file bcounter.gdf
in
c:\mp2student\counter\bcounter.gdf.
You
will
see
the
schematic
with
the
input
block
on
the
left,
the
output
block
on
the
right,
and
the
counter
circuit
in
the
middle
shown
below.
Select
the
Compile
button
(see
below)
to
compile
the
circuit.
If
you
see
a
warning
saying
the
file
is
not
recognized
as
being
part
of
the
current
project,
click
on
Yes
to
change
the
project.
The
other
compiler
warnings
may
be
ignored
since
there
are
several
inputs
that
are
not
used
and
some
pins
that
are
disabled
by
holding
them
high.
Close
the
windows
associated
with
the
compiler
operation
and
select
the
Program
button.
The
following
window
will
appear:
Click
on
the
Program
button
in
the
window
to
begin
the
download
process.
If
everything
is
set
up
correctly
and
there
are
no
errors
in
the
schematic
or
its
configuration,
you
will
get
a
message
saying:
Programming
complete.
Close
the
windows
associated
with
programming
the
UP1.
At
this
point
the
circuit
will
begin
to
operate
automatically.
The
counter
will
count
pulses
from
the
1Hz
clock
on
the
board
and
the
LEDs
and
7‐segment
display
will
show
the
value
of
the
counter.
PB1
and
PB2
will
change
the
direction
of
the
counter
and
clear
it,
respectively.
Design
Steps
To
implement
the
project
portion
of
the
Digital
Logic
Experiment
it
will
probably
be
easiest
to
reenter
the
schematic
using
the
MAX+plus
II
tools
rather
than
try
to
figure
out
how
to
export
it
from
LogicWorks.
LogicWorks
may
be
used
to
debug
the
design
since
its
tools
for
doing
that
are
easier
to
use
than
MAX+plus
II.
Alternatively
LogicWorks
may
be
skipped
altogether
and
the
project
entered
directly
into
MAX+plus
II.
As
previously
mentioned,
students
should
create
a
new
folder
in
c:\md2students
and
COPY
(NOT
MOVE)
the
files
from
c:\md2students\counter
into
it
to
kick‐start
the
design
process.
The
assigned
I/O
pins
may
be
used
as
defined,
but
if
you
are
ambitious
you
may
redefine
them
anyway
you
like
and
make
sure
you
rewire
the
connections
between
the
MAX
headers
and
the
switches/LEDs.
Read
the
up1ug.pdf
file
on
the
studio
web
site
for
a
more
detailed
description
of
the
hardware.
Of
the
84
pins
surrounding
the
MAX7128
FPGA,
16
are
permanently
reserved
for
use
by
the
two
7‐segment
displays
and
24
are
not
useable.
The
pins
reserved
for
the
displays
are:
Unusable
pins
are:
1,
2,
3,
7,
13,
14,
19,
23,
26,
32,
38,
42,
43,
47,
53,
59,
62,
66,
71,
72,
78,
82,
83,
and
84.
Users
employ
the
Altera
MAX+plus
II
to
graphically
enter
the
symbols
that
represent
each
of
the
components
that
make
up
the
design
and
then
use
the
tool
to
‘wire’
the
components
to
one
another
to
form
the
complete
schematic
diagram.
The
procedures
are
generally
the
same
as
those
used
in
LogicWorks.
The
first
step
in
the
schematic
capture
design
process,
after
opening
your
copy
of
the
counter
gdf
file,
is
to
enter
each
of
the
components
which
make
up
the
design.
This
can
be
accomplished
within
the
Altera
MAX+plus
II
environment
by
double
clicking
the
mouse
with
the
cursor
pointing
on
the
white
space
of
current
gdf
file.
This
will
launch
the
“Enter
Symbol”
Window
as
shown
below:
This
window
contains
the
high‐level
macros
and
low‐level
primitive
components
which
can
be
included
in
the
design.
The
system
libraries
are:
1. prim
(primitive
library)
–
c:\maxplus\max2lib\prim
–
A
set
of
basic
functional
blocks
used
to
design
circuits
with
MAX+plus
II
software.
The
primitives
include
buffers,
flip‐flops,
latches,
input
and
output
primitives,
and
logic
primitives.
2. mf
(mega
functions)
–
c:\maxplus\max2lib\mf
–
A
set
of
complex
or
high‐level
building
blocks
(i.e.
macros)
that
can
be
used
together
with
gate
and
flip‐flop
primitives
in
MAX+plus
II
design
files.
3. mega_lpm
(library
of
parameterized
modules)
–
c:\maxplus\max2lib\mega_lpm
–
A
technology‐independent
library
of
logic
functions
that
are
parameterized
to
achieve
scalability
and
adaptability.
4. mega_lpm
(library
of
parameterized
modules)
–
c:\max2work\up1core
–
A
library
of
high‐level
logic
functions
with
useful
features
such
as
switch
debouncing
and
clock
divide‐downs.
UP1core
lib
is
a
customized
library
for
UP1
board
by
Altera.
It
can
be
obtained
from
the
CStudio
website
if
it
isn’t
already
present.
Components
are
wired
together
by
moving
the
cursor
over
to
a
wire
or
bus
connection
point
on
the
symbol
(component).
At
this
point
in
time
the
cursor
will
turn
into
a
‘+’
sign.
The
left
mouse
button
is
then
pressed
and
held
and
the
cursor
is
then
moved
over
to
the
desired
termination
point
and
the
mouse
button
is
released.
In
this
process
other
wires
and
busses
can
act
as
starting
and
termination
points.
Individual
wires
(i.e.
nodes)
can
be
brought
out
from
collections
of
nodes
(i.e.
buses)
simply
by
giving
the
node
the
same
name
as
the
desired
component
of
the
bus.
To
name
a
node
(wire)
or
a
bus,
simply
double
click
on
the
wire
or
bus
using
the
left
mouse
button
and
type
in
the
node
or
bus
name.
Bus
names
usually
have
the
following
format:
bus
name
[most
significant
element
number
..
least
significant
element
number]
For
example,
in
the
binary
counter
design
there
is
a
simple
bus
named
q[31..0].
This
implies
that
there
are
32
nodes
contained
within
the
bus
that
are
individually
named
q31,
q30,
...,
q1,
q0,
respectively.
Compilation
and
Download
The
design
compilation
and
download
can
be
simply
done
by
using
the
buttons
as
shown
previously.
Remember
to
connect
the
ByteBlasterMV
and
power
up
the
board.
When
the
Program
icon
is
selected,
the
Programmer
window
appears.
Programming
begins
after
the
Program
button
is
selected.
Reference
[1]
Altera
University
Program
Design
Laboratory
Package
(User
Guide),
Altera
Corporation,
ver.
2.0,
October
2001.
[2]
MAX+plus
II
Programmable
Logic
Development
System:
Getting
Started,
Altera
Corporation.