Experiment Flowchart

advertisement
K&H MFG. Co., LTD.
Manufacturer, Exporter & Importer for Educational Equipment & Measuring Instrument
CIC-310
CPLD/FPGA Development System
CIC-310 CPLD/FPGA Development System
§ CPLD / FPGA Background
§ Hardware Overview
--- System Overview
--- Development Board
--- Experiment Board
§ Design Flowchart
--- Experiment Flowchart
--- Programming Flowchart
--- Program manager
§ Experiments
--- List of experiments
--- Implementations
CIC-310 CPLD/FPGA Development System
§ CPLD / FPGA Background
§ Hardware Overview
--- System Overview
--- Development Board
--- Experiment Board
§ Design Flowchart
--- Experiment Flowchart
--- Programming Flowchart
--- Program manager
§ Experiments
--- List of experiments
--- Implementations
§ CPLD/FPGA BACKGROUND – (1)
Traditional design flow of the logic circuit
Design
specification
In = A, B, C, D ...
Out = X, Y …
Manual
Truth table
Manual (K-map)
Boolean
expression
Manual
Implement on
several ICs
X = (Ā+B+C) (B+D) ( Ā+D )
PAL – Programmable Array Logic
Programmable AND array followed by fixed fan-in OR gates
A
B
C
Programmable switch or fuse
f1  A  B  C  A  B  C
AND plane
PLD - Programmable Logic Device
A
B
C
D
Q
Q
PLD
HDL : Hardware Description Language
A
B
C
D
S0
S1
AND plane
Q
CPLD (Complex PLD) Structure
Integration of several PLD blocks with a
programmable interconnect on a single chip
PLD
Block
•
•
•
•
•
•
I/O Block
PLD
Block
I/O Block
I/O Block
•
•
•
Interconnection Matrix
I/O Block
•
•
•
PLD
Block
PLD
Block
FPGA Look-Up Tables (LUT)
• Look-up table with N-inputs can be used to implement
any combinatorial function of N inputs
• LUT is programmed with the truth-table
A
B
C
D
Z
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
Truth-table
A
B
C
D
LUT
Z
LUT implementation
A
B
Z
C
D
Gate implementation
• FPGAs vs. CPLDs
• Are FPGAs and CPLDs the same thing? No. Both are
programmable digital logic chips. Both are made by the same
companies. But they have different characteristics.
• FPGAs are "fine-grain" devices. That means that they contain a lot
(up to 100000) of tiny blocks of logic with flip-flops. CPLDs are
"coarse-grain" devices. They contain relatively few (a few 100's max)
large blocks of logic with flip-flops.
• FPGAs are RAM based. They need to be "downloaded" (configured)
at each power-up. CPLDs are EEPROM based. They are active at
power-up (i.e. as long as they've been programmed at least once...).
• CPLDs have a faster input-to-output timings than FPGAs (because
of their coarse-grain architecture, one block of logic can hold a big
equation), so are better suited for microprocessor decoding logic for
example than FPGAs.
• FPGAs have special routing resources to implement efficiently
binary counters and arithmetic functions (adders, comparators...).
CPLDs do not.
• FPGAs can contain very large digital designs, while CPLDs can
contain small designs only.
FPGA & CPLD
•
FPGAs are RAM based. They need to be "downloaded" (configured) at each
power-up. CPLDs are EEPROM based. They are active at power-up (i.e. as long as
they've been programmed at least once...).
•
FPGAs can contain very large digital designs, while CPLDs can contain small
designs only.
•
CPLDs have a faster input-to-output timings
§ CPLD/FPGA BACKGROUND – (2)
Modern design flow of the logic circuit
Design
specification
In = A, B, C, D ...
Out = X, Y …
Manual
(programming)
Design
description
Automatic
Implement on ONE
CPLD/FPGA chip
Save lots of time!!!
HDL Syntax
SOPC (System On Programmable Chip)
MCU
MPU
Decoder
PWM
FPGA/CPLD
Converter
Memory
ALU
Counter
GPIO
Control
Timer
CIC-310 CPLD/FPGA Development System
§ CPLD / FPGA Background
§ Hardware Overview
--- System Overview
--- Development Board
--- Experiment Board
§ Design Flowchart
--- Experiment Flowchart
--- Programming Flowchart
--- Program manager
§ Experiments
--- List of experiments
--- Implementations
§ System Overview
CIC-310
=
CPLD/FPGA
Development Board
+
Experiment Board
CIC-310 provides digital system designers with an
economical solution for hardware verification or students
with an efficient learning of digital system design.
§ Hardware Overview – Development Board
89C2051 for load the configuration data to
FPGA or SEEPROM devices with data
compression techniques
Reset button:
Reset connection
to PC
Program
selector jumper
Altera 8k/10k
RAM-based FPGA
Max. 32kB SEEPROM
HIN230 for RS-232
transmitters/receivers
interface circuits
11.0592MHz Xosc
RS232 connector
7.5C DC Power
§ Hardware Overview – Experiment Board
16-Segment Display Section
6-Digit Parallel-Serial 7-segment Display
Output Logic LED Display
20MHz X’TRAL OSC
5 x 7 DOT LED display
RC Oscillator
Logic Switch Input Section
SW and Keypad Section
Pulse generator
Input Status Logic LED Display
CIC-310 CPLD/FPGA Development System
§ CPLD / FPGA Background
§ Hardware Overview
--- System Overview
--- Development Board
--- Experiment Board
§ Design Flowchart
--- Experiment Flowchart
--- Programming Flowchart
--- Program manager
§ Experiments
--- List of experiments
--- Implementations
§ EXPERIMENT FLOWCHART
Windows
98/2000/XP
Programming
Rs-232
Download the
program
Personal
Computer
Development
Board
Program manager
Show the
result
Experiment
Board
§ Programming Flowchart
§ Program manager functions
Add the program to
SEEPROM
Execute the program
from SEEPROM
Download the program to
FPGA and execute the program
CIC-310 CPLD/FPGA Development System
§ CPLD / FPGA Background
§ Hardware Overview
--- System Overview
--- Development Board
--- Experiment Board
§ Design Flowchart
--- Experiment Flowchart
--- Programming Flowchart
--- Program manager
§ Experiments
--- List of experiments
--- Implementations
§ LIST OF EXPERIMENTS
• Combinational logic circuits
–
–
–
–
Applications of ALUs
Encoder / Decoder
Alpha-Nemaric LED display
Multiplexer / Demultiplexer
• Sequential logic circuits
– Flip-flop circuits
– Applications of counters
– Frequency synthesizers / Shift Registers
• Dynamic 5x7 LED matrix display
• 4x4 keypad of matrixes
More than 50 examples in the experimental manual!!!
Implementations
Exp1 : Step by step design of basic logic circuit by Graphic and Text Editor
Exp2 : Binary-to-16-segment decoder
Exp3: Counters
Exp4: 5X7 DOT matrix display
Exp5: Keypad
Exp1: Basic logic circuit design (Primal.gdf)
Specification:
Output : P55, P56, P57, P58
Input: DIP switches
Output: LED display
Relation:
P55 = !P01
P56 = P02 & P03
P57 = P04 # P06
P58 = P07 $ P08
! => NOT
& => AND
# => OR
$ => XOR
Input: P01, P02, P03, P04, P06, P07, P08
Step 1: Programming by graphic editor
P01
P55
P02
P03
P56
P04
P06
P57
P07
P08
P58
Step 2: Assign Devices (Assign / Devices)
Step 3: Save&Compile (Max+Plus II / Compiler)
Step 4: Simulation ( 1. Max+Plus II / Waveform Editor )
( 2. Max+Plus II / Simulator)
Step 4: Pin Assignment ( Max+Plus II / Floorplan Editor)
Step 5: Download the program
Execute the program from
SEEPROM
Add the program to
SEEPROM
Download the program to FPGA
and execute the program
Program by Text Editor --- Primal.tdf
The rest design steps are the same
Exp2: Binary-to-16-segment decoder
Specification:
Output : 16-segment display
Input: DIP switches
Output: 16-segment display
Relation:
6 bit inputs are decoded to
16-segment display as:
Numerical number : 0~9
Alphabet letters : A~Z
Math Operators: *, +,-,/
Why you need 6-bit input?
0~9  10
A~Z  26
*,+,-,/  4
10+26+4=40
2^6 = 64 > 40
Input: P01, P02, P03, P04, P06, P07
Program by Text Editor --- 16segb.tdf
.
.
.
Symbol
a1
a2
b1
b2
c1
c2
d1
d2
e1
e2
g1
g2
h1
h2
i1
i2
/p
Position
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Pin Assignment (1)
2
1
16segment
FPGA
8K
10k
16segment
FPGA
8K 10k
A1
P13
P16
E2
P23
P27
A2
P14
P17
G1
P24
P28
B1
P15
P18
G2
P25
P29
B2
P16
P19
H1
P27
P30
C1
P18
P21
H2
P28
P35
C2
P19
P22
I1
P29
P36
D1
P20
P23
I2
P30
P37
D2
P21
P24
DP
P63
P64
E1
P22
P25
C-SEL
P23
P27
Table 1-6 16 segment display pin-out (8k-84pin)
Pin Assignment (2)
P13
P14
P27 P24 P29
P15
P21
P22
P20
P30 P25 P28
P19
Symbol
Segment
Pin
P23
P16
P63
P18
a1
a2
b1
b2
c1
c2
d1
d2
e1
e2
g1
g2
h1
h2
i1
i2
/p
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
13
14
15
16
18
19
20
21
22
23
24
25
27
28
29
30
63
Show Result
FPGA
JP8
JP8
FPGA Pin
Symbol
JP9
JP9
JP10
JP10
16
17
18
19
21
22
23
24
25
27
28
28
30
35
36
37
64
a1
a2
b1
b2
c1
c2
d1
d2
e1
e2
g1
g2
h1
h2
i1
i2
/p
Exp3: Counters
Specification:
Output : P55, P56, P57, P58
Construct a 4-bit asynchronous
counter by T flip-flops
Input: Enable: Sw1_1
Reset: Sw1_2
Clock: SWP3
Output: LED display
Relation:
The 4-bit ripple counter repeats
itself for every 2^4 (16) clock
pulses. :
Input: Sw1_1, p01 (Enable)
Sw1_2, P02 (Reset)
SWP3, P83 (Clock)
Asynchronous Counter: Program by Graphic Editor --- 4slcnt.gdf
Asynchronous Counter: Program by Text Editor --- 4slcnt.gdf
TFF primitive
Asynchronous Counter: Program by Text Editor --- 4slcnt.gdf
FF[]=FF[]-1;
Synchronous Counter: Program by Graphic Editor --- ptcnt8.gdf
Synchronous Counter: Program by Text Editor --- ptcnt8t.tdf
Delay Matrix
Asynchronous Counter
Synchronous Counter
4 Digit Counter: Frequency Counter --- pdec9999.tdf
Input: Clock
Output: LED Display
(Counting 0~9999 in binary format)
7 segment displayer --- 7segd.tdf
Input: DIP switch
Output: 7 segment displayer
SA SB SC SD SE SF SG
4 Digit Counter: Parallel mode --- 4dec7sp.tdf
Require Pins: 6 x 4 = 24
01 2 34 5 6 7 89 01 2 34 5 6 7 89 01 2 34 5 6 7 89
4 Digit Counter: Serial Scan mode --- 4dec7sn.tdf
Require Pins: 6 x 1 + 4 = 10
0
1
0
2
0
3
0
4
0
5
Exp4: 5x7 dot matrix display
5x7 Matrix DOT display (dot_test.tdf)
P13
PA1
P14
PA2
P15
PA3
P16
PA4
P18
PA5
P19
PA6
P20
PA7
P22P23P24P25P27
1
0
1
0
1
0
1
5x7 DOT Matrix display (dot_test.tdf)
Counter
P13
PA1
P14
PA2
P15
PA3
P16
PA4
P18
PA5
P19
PA6
P20
PA7
P22 P23 P24 P25 P27
TRY 57dots.hex !!!
Exp5: Keypad
P48
P43
P39
P34
Individual Mode --- require 16 ports
P49
P44
P40
P35
P50
P45
P41
P36
P51
P46
P42
P37
Parallel Mode => PKI1, PKI2, PKI3
Serial Mode => SCN1, SCN2, SCN3
Scan Mode --- require 8 ports
Output : P53, P54, P58, P59
A: Mechanical Shock Wave Test
( key_test.tdf )
Input: SW0
B: Debounce Circuit Design
(debounce_test.tdf )
Detect 16 times
C: Keypad Circuit Design with debounce function --- Parallel Mode
(16_KEY_Parallel.tdf)
Parallel Mode => PKI1, PKI2, PKI3
Serial Mode => SCN1, SCN2, SCN3
D: Keypad Circuit Design with debounce function --- Scan Mode
(16_key_scan.tdf)
Parallel Mode => PKI1, PKI2, PKI3
Serial Mode => SCN1, SCN2, SCN3
DECODE
00
01
S[1..0]
10
11
0  SR[ ]=SR[ ]+1
1  SR[ ]=SR[ ]
DEB
DEB
DEB
DEB
DEB [3..0]
O
E: Keypad Circuit Design with debounce function & 7-segment display
(.tdf)
MPU
DSP
CPLD
FPGA
Download