Tentamen med lösningar i IE1204-5 Digital Design Fredag 21 ...
IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable...
Transcript of IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable...
![Page 1: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/1.jpg)
IE1204 Digital Design
F11: Programmable Logic,VHDL for Sequential Circuits
Masoumeh (Azin) Ebrahimi ([email protected])
Elena Dubrova ([email protected])KTH / ICT / ES
![Page 2: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/2.jpg)
• BV pp. 98-118, 418-426, 507-519
This lecture
IE1204 Digital Design, Autumn2015 2
![Page 3: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/3.jpg)
• Programmable logic devices (PLDs)were introduced in the 1970s
• They are based on a structure with anAND-OR array that makes it easy toimplement a sum-of-productsexpression
Programmable Logic Devices
IE1204 Digital Design, Autumn2015 3
![Page 4: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/4.jpg)
Structure of a PLD
f1
AND plane OR plane
Input buffers
invertersand
P1
Pk
fm
x1 x2 xn
x1 x1 xn xn
IE1204 Digital Design, Autumn2015 4
![Page 5: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/5.jpg)
• Both AND and ORarrays areprogrammable
Programmable Logic Array (PLA)
f1
P1
P2
f2
x1 x2 x3
ORplane
ANDplane
P3
P4
IE1204 Digital Design, Autumn2015 5
f1=x1x2+x1x3+x1x2x3
f2=x1x2+x1x2x3+x1x3
![Page 6: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/6.jpg)
• Only the AND array isprogrammable
Programmable Array Logic (PAL)
AND plane
f1
P1
P2
f2
x1 x2 x3
P3
P4
IE1204 Digital Design, Autumn2015 6
f1=x1x2x3+x1x2x3
f2=x1x2+x1x2x3
![Page 7: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/7.jpg)
• In earlier PLDs there were– combinatorial outputs– register outputs (outputs with a flip-flop)
• For each circuit the number of combinationaland register outputs was fixed
• To increase flexibility, macrocells wereintroduced– one can choose if an output is
combinatorial or has a flip-flop
Combinatorial and register outputs
IE1204 Digital Design, Autumn2015 7
![Page 8: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/8.jpg)
Macrocells in a PLD
f1
To AND plane
D Q
Clock
SelectEnable
Flip-flop
A programmablemultiplexer can beused to select thetype of output
IE1204 Digital Design, Autumn2015 8
f1P1P2
f2
x1 x2 x3
P3P4
![Page 9: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/9.jpg)
Programming of PLDs
IE1204 Digital Design, Autumn2015 9
![Page 10: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/10.jpg)
• PLDs were quite small (PALCE 22V10had 10 flip-flops)
• To program larger functions, structuresconsisting of several PLD-like blockswere developed called Complex PLD(CPLD)
Complex PLD's (CPLD)
IE1204 Digital Design, Autumn2015 10
![Page 11: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/11.jpg)
CPLD Structure
PAL-likeblockI/O
bloc
kPAL-like
blockI/O
block
PAL-likeblockI/O
bloc
k
PAL-likeblock
I/Oblock
Interconnection wires
IE1204 Digital Design, Autumn2015 11
![Page 12: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/12.jpg)
Programming of CPLDs via theJTAG interface
• Modern CPLDs (and FPGAs) can beprogrammed by downloading circuitdescription (programming information)via a cable
• Download usually uses a standard portcalled JTAG port (Joint Test ActionGroup)
IE1204 Digital Design, Autumn2015 12
![Page 13: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/13.jpg)
Programming via the JTAG port
(a) CPLD in a Quad Flat Pack (QFP) package
Printedcircuit board
To computer
(b) JTAG programming
You can program thechips when they aresoldered to the circuitboard - using theprogrammer you canselect which chip youwant to programthrough the JTAG port
IE1204 Digital Design, Autumn2015 13
![Page 14: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/14.jpg)
• CPLDs are based on the AND-OR array• It is difficult to make really large
functions using CPLDs• FPGAs use a different concept based
on logic blocks
Field Programmable Gate Arrays
IE1204 Digital Design, Autumn2015 14
![Page 15: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/15.jpg)
Structure of an FPGA
IE1204 Digital Design, Autumn2015 15
![Page 16: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/16.jpg)
Look-up-tables (LUT)
0/1
0/1
0/1
0/1
x1
x2
f
Two-input LUT
Programmablecells 1
0
1
0
1
0
A LUT with n inputs canrealize allcombinational functionswith up to n inputs.The usual size of LUTin an FPGA is n = 4
IE1204 Digital Design, Autumn2015 16
![Page 17: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/17.jpg)
• A logic block in an FPGA often consists of aLUT, a flip-flop and a multiplexer to selectregister output
Logic Block in a FPGA
Out
D Q
Clock
Select
Flip-flopIn1In2In3
LUT
IE1204 Digital Design, Autumn2015 17
![Page 18: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/18.jpg)
• Blue cross: switchis programmed
• Black cross: switchis not programmed
Programming the LUT's and theconnection matrix in an FPGA
0100
0111
0001
x1
x2
x2
x3
f 1
f 2
f 1 f 2
f
x1
x2
x3 f
IE1204 Digital Design, Autumn2015 18
f=f1+f2
f=x1x2+x2x3
![Page 19: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/19.jpg)
DE2 University Board
• DE2 Board– Cyclone II EP2C35
FPGA (Datorteknik-course)
– 4 Mbytes of flashmemory
– 512 Kbytes of staticRAM
– 8 Mbytes of SDRAM– Several I/O-Devices– 50 MHz oscillator
IE1204 Digital Design, Autumn2015 19
![Page 20: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/20.jpg)
Cyclone IILogic Element
IE1204 Digital Design, Autumn2015 20
![Page 21: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/21.jpg)
Cyclone II Family
(3) Total Number of 18x18 Multipliers DE2
IE1204 Digital Design, Autumn2015 21
![Page 22: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/22.jpg)
Stratix III Family
DE3 Board
IE1204 Digital Design, Autumn2015 22
![Page 23: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/23.jpg)
Multiple processors can beimplemented on an FPGA
• Nine II is a so-called 'soft-processor' (32-bit) thatcan be implemented onAltera’s FPGAs
• Today's FPGAs are solarge that multipleprocessors can fit on asingle FPGA chip
Very powerful multiprocessorsystems can be created on an
FPGA!
Nios II
Nios II
IE1204 Digital Design, Autumn2015 23
![Page 24: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/24.jpg)
• An ASIC (Application Specific IntegratedCircuit) is a circuit which is manufactured at asemiconductor factory
• In a full custom integrated circuit, the entirecircuit is customized
• In an ASIC, some design steps have alreadybeen made to reduce design time and cost
• There are several types of ASICs:– Gate array ASICs– Standard cell ASIC
ASICs
IE1204 Digital Design, Autumn2015 24
![Page 25: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/25.jpg)
• In a gate array ASIC, gates (or transistors) arealready on silicon
ASICs: Gate Array
IE1204 Digital Design, Autumn2015 25
![Page 26: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/26.jpg)
• We only needto create thelinks betweenthe inputs andoutputs ofgates
ASICs: Gate Arrayf 1
x1
x3
x2
IE1204 Digital Design, Autumn2015 26
![Page 27: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/27.jpg)
• A standard cell can for example be AND, OR, Invert,XOR, XNOR, buffer, or a storage function as flipflopor latch.
ASICs: Standard Cells
IE1204 Digital Design, Autumn2015 27
![Page 28: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/28.jpg)
ComparisonFPGA, Gate Array, Standard Cell
Initial Cost Cost per part Performance FabricationTime
FPGA Low High Low Short
Gate Array(ASIC)
Standard Cell(ASIC)
High Low High Long
IE1204 Digital Design, Autumn2015 28
![Page 29: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/29.jpg)
Design Trade-Offs
Design Time
Performance
Microprocessor
ProgrammableLogic
Gate Array
Standard Cell
Full Custom
IE1204 Digital Design, Autumn2015 29
![Page 30: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/30.jpg)
VHDL: Sequential circuits
IE1204 Digital Design, Autumn2015 30
![Page 31: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/31.jpg)
• In a Moore-type machine output signalsdepend only on the current state
Moore machine
NEXT STATEDECODER
STATE REGISTER OUTPUTDECODER
State
Clk
Inputsignals
Outputsignals
IE1204 Digital Design, Autumn2015 31
![Page 32: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/32.jpg)
• In a Moore machine, we have threeblocks– Next state decoder– Output decoder– State register
• These blocks are executed in parallel
How to model a state machine inVHDL?
IE1204 Digital Design, Autumn2015 32
![Page 33: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/33.jpg)
• Which logic gate is represented by thefollowing VHDL code?
Quick question
IE1204 Digital Design, Autumn2015 33
![Page 34: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/34.jpg)
• Which logic gate is represented by thefollowing VHDL code?
Quick question
IE1204 Digital Design, Autumn2015 34
![Page 35: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/35.jpg)
• A architecture in VHDL can containmultiple processes
• Processes are executed in parallel• A process is written as a sequential
program
Processes in VHDL
IE1204 Digital Design, Autumn2015 35
![Page 36: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/36.jpg)
• For a Moore machine, we create threeprocesses– Next state decoder– Output decoder– State register
Moore-machine processes
IE1204 Digital Design, Autumn2015 36
![Page 37: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/37.jpg)
• Moore machine contains internal signalsfor– Current state– Next state
• These signals are declared in thearchitecture description
Internal signals
IE1204 Digital Design, Autumn2015 37
![Page 38: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/38.jpg)
• We use bottle dispenser vending machine asan example
• We describe its system controller in VHDL
Bottle dispenser vending machinein VHDL
COINRECEIVER
COIN_PRESENT
GT_1_EURO
EQ_1_EURO
LT_1_EURO
DEC_ACC
CLR_ACC
SYSTEMCONTROL
DROP
DROP_READY
CHANGER_READY
RETURN_10_CENT
DROP BOTTLE
COIN RETURN
IE1204 Digital Design, Autumn2015 38
![Page 39: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/39.jpg)
Vending Machine: Flow diagram
Reset
Coinregistered?
Total?
Ejectbottle
Resetsum
Return10 Cent
No
Yes
Total <1 €
Total = 1 € Total> € 1
Decreasesum
IE1204 Digital Design, Autumn2015 39
![Page 40: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/40.jpg)
Vending Machine: State diagram(a)000
(b)001
(c)011
(d)110
(e)111
(f)100
(g)101
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
GT_I_EURO
LT_I_EURO
EQ_I_EURO
CHANGERREADY
CHANGER_READY
DROPREADY
DROP READY
DEC_ACCCLR_ACC
RETURN_10_CENTDROP
• The state diagramcontains all informationrequired to generate animplementation
• Assumption: D flip-flopsare used as stateregister
• 7 states: 3 flip-flops areneeded
The state variable order isABC, i.e. state (c) isA = 0, B = 1,C = 1
IE1204 Digital Design, Autumn2015 40
![Page 41: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/41.jpg)
Vending Machine: Logic design
D
D
D
NextState
Decoder
COIN_PRESENTLT_I_EURO
EQ_I_EUROGT_I_EURO
DROP_READYCHANGER_READY
ABC
DB
DC
B
C
OutputDecoder
DROP
CLR_ACCDEC_ACC
Clk
RETURN_I0_CENT
At next step, we develop the logic for the next state (DA, DB, DC) and outputs
DA A
IE1204 Digital Design, Autumn2015 41
Clk
Input-signals Output-signals(Combinational circuit)
Outputdecoder(Combinational circuit)
Flip-flopsNext statedecoder
? ?
![Page 42: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/42.jpg)
Decoder: Next state - DA
(a)000
(b)001
(c)011
(d)110
(e)111
(f)100
(g)101
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
GT_I_EURO
LT_I_EURO
EQ_I_EURO
CHANGERREADY
CHANGER_READY
DROPREADY
DROP READY
DEC_ACCCLR_ACC
RETURN_10_CENTDROP
DA AB
00 01 11 10
C0 0 - 1 1
1 0 (=) + (>) 0 0
CAB(GT)AB(EQ)ADA ++=
(=) : EQ_1_EURO(>) : GT_1_EURO
42IE1204 Digital Design, Autumn2015 42
![Page 43: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/43.jpg)
Decoder: Next state - DB
(a)000
(b)001
(c)011
(d)110
(e)111
(f)100
(g)101
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
GT_I_EURO
LT_I_EURO
EQ_I_EURO
CHANGERREADY
CHANGER_READY
DROPREADY
DROP READY
DEC_ACCCLR_ACC
RETURN_10_CENTDROP
DB AB
00 01 11 10
C0 0 - 1 0
1 CP (=) 0 1
CBA)CPC(BCBB(EQ)ADB +++=
(=) : EQ_1_EUROCP : COIN_PRESENT
IE1204 Digital Design, Autumn2015 43
![Page 44: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/44.jpg)
Decoder: Next state- DC
(a)000
(b)001
(c)011
(d)110
(e)111
(f)100
(g)101
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
GT_I_EURO
LT_I_EURO
EQ_I_EURO
CHANGERREADY
CHANGER_READY
DROPREADY
DROP READY
DEC_ACCCLR_ACC
RETURN_10_CENTDROP
DC AB
00 01 11 10
C0 CP - DR CR
1 1 0 0 1
CB(CR)BA
(DR)CB(CP)ACDC
++
+=
CP : COIN_PRESENTDR: DROP_READYCR: CHANGER_READY
IE1204 Digital Design, Autumn2015 44
![Page 45: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/45.jpg)
Decoder: Output signals
• Output decoder istrivial, since its valueis directly dependenton the current state
(a)000
(b)001
(c)011
(d)110
(e)111
(f)100
(g)101
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
GT_I_EURO
LT_I_EURO
EQ_I_EURO
CHANGERREADY
CHANGER_READY
DROPREADY
DROP READY
DEC_ACCCLR_ACC
RETURN_10_CENTDROP
CBADEC_ACC
BCACENTRETURN_10_
ABCCLR_ACCCABDROP
=
=
==
IE1204 Digital Design, Autumn2015 45
![Page 46: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/46.jpg)
Unused state?!
IE1204 Digital Design, Autumn2015 46
(a)000
(b)001
(c)011
(d)110
(e)111
(f)100
(g)101
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
GT_I_EURO
LT_I_EURO
EQ_I_EURO
CHANGERREADY
CHANGER_READY
DROPREADY
DROP READY
DEC_ACCCLR_ACC
RETURN_10_CENTDROP
(h)010
AB
00 01 11 10
C0 a - d f
1 b c e g
ABC)010(=F
GTEQGTEQACAGTBAEQBAA ABC +=×+××+××=Þ×+××+××= ++ 101111)010(1...1111)010( =+×+××=Þ××+××+×+××= ++ EQBCBACPCBCBEQBAB ABC
DRCPCRDRCPCCBCRBADRCBCPCAC
ABC +=×+××+××+××=Þ
×+××+××+××=+
+
00001111)010(ecdCBA ,,,111,011,110,0101 F®=--=+++
![Page 47: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/47.jpg)
Vending Machine: Logic Design
D
D
D
NextState
Decoder
COIN_PRESENTLT_I_EURO
EQ_I_EUROGT_I_EURO
DROP_READYCHANGER_READY
ABC
DB
DC
B
C
OutputDecoder
DROP
CLR_ACCDEC_ACC
Clk
RETURN_I0_CENT
Now you can design ”Next State Decoder” and ”Output Decoder” by knowingthe logic function of Da, Db, Dc, and logic funtion of outputs ”Drop”,”Return_10_Cent”, ”CLR_ACC”, and ”DEC_ACC”.
DA A
IE1204 Digital Design, Autumn2015 47
![Page 48: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/48.jpg)
Vending Machine in VHDL:Entity
ENTITY Vending_Machine IS
PORT (
-- Inputs
coin_present : IN std_logic;
gt_1_euro : IN std_logic;
eq_1_euro : IN std_logic;
lt_1_euro : IN std_logic;
drop_ready : IN std_logic;
changer_ready : IN std_logic;
reset_n : IN std_logic;
clk : IN std_logic;
-- Outputs
dec_acc : OUT std_logic;
clr_acc : OUT std_logic;
drop : OUT std_logic;
return_10_cent : OUT std_logic);
END Vending_Machine;
• Entity describes the systemas a 'black box '
• Entity describes the interfaceto the outside world
• All inputs and outputs aredescribed
• Apart from the input andoutput signals, block diagramneeds signals for– Clock– Reset (active low)
IE1204 Digital Design, Autumn2015 48
![Page 49: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/49.jpg)
• The architecture describes the functionof the machine
• We define– internal signals for the current and next
states– three processes for next-state decoder,
output decoder and state register
Vending Machine in VHDL:Architecture
IE1204 Digital Design, Autumn2015 49
![Page 50: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/50.jpg)
• We need to create a type for internal signals• Since we describe the states, we use an enumerated
type with the values a, b, c, d, e, f, g• We declare one variable for the current state
(current_state) and one for the next state(next_state)
ARCHITECTURE Moore_FSM OF Vending_Machine IS
TYPE state_type IS (a, b, c, d, e, f, g);
SIGNAL current_state, next_state: state_type;
BEGIN -- Moore_FSM
…
Vending Machine in VHDL:Internal Signals
IE1204 Digital Design, Autumn2015 50
![Page 51: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/51.jpg)
• If we do not specify a state assignment, synthesis tool will select it• We can force a certain encoding using attributes (NOTE: Attributes
are dependent on synthesis tool and thus are not portable!)
ARCHITECTURE Moore_FSM OF Vending_Machine IS
TYPE state_type IS (a, b, c, d, e, f, g);
-- We can use state encoding according to BV 8.4.6
-- to enforce a particular encoding (for Quartus)ATTRIBUTE enum_encoding : string;ATTRIBUTE enum_encoding OF state_type : TYPE IS "000001 011 110 111 100 101";SIGNAL current_state, next_state : state_type;
BEGIN -- Moore_FSM
…
Vending Machine in VHDL:Internal Signals
IE1204 Digital Design, Autumn2015 51
![Page 52: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/52.jpg)
• Next-State-Decoder is described as aprocess
• Sensitivity list contains all the inputs that'activate' the processNEXTSTATE : PROCESS (current_state, coin_present,
gt_1_euro, eq_1_euro, lt_1_euro, drop_ready,changer_ready) –- Sensitivity List
BEGIN -- PROCESS NEXT_STATE
…
Vending Machine in VHDL:Process for Next-State Decoder
IE1204 Digital Design, Autumn2015 52
Clk
Input-signals Output-signals(Combinational circuit)
Outputdecoder(Combinational circuit)
Flip-flopsNext statedecoder
![Page 53: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/53.jpg)
• We now use a CASE statement to describe the transitions to thenext state from each state conditionsCASE current_state IS
WHEN a => IF coin_present = '1' THEN
next_state <= b;
ELSE
next_state <= a;
END IF;
WHEN b => IF coin_present = '0' THEN
next_state <= c;
ELSE
next_state <= b;
END IF;
Vending Machine in VHDL:Process for Next-State-Decoder
IE1204 Digital Design, Autumn2015 53
(a)000
(b)001
(c)011
(d)110
(e)111
(f)100
(g)101
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
COIN_PRESENT
GT_I_EURO
LT_I_EURO
EQ_I_EURO
CHANGERREADY
CHANGER_READY
DROPREADY
DROP READY
DEC_ACCCLR_ACC
RETURN_10_CENTDROP
Clk
Input-signals Output-signals(Combinational circuit)
Outputdecoder(Combinational circuit)
Flip-flopsNext statedecoder
![Page 54: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/54.jpg)
• We can simplify the description by specifying a default value forthe next state
…
next_state <= current_state;
CASE current_state IS
WHEN a => IF coin_present = '1' THEN
next_state <= b;
END IF;
WHEN b => IF coin_present = '0' THEN
next_state <= c;
END IF;
…
Vending Machine in VHDL:Process for Next-State-Decoder
It is important to we specify all options for next_state signal. Otherwise wemay implicitly set next_state <= next_state which generates a loop.
IE1204 Digital Design, Autumn2015 54
![Page 55: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/55.jpg)
• We terminate the CASE statement with a WHEN OTHERSstatement. Here we specify that we should go to the state a ifwe end up in an unspecified state
…
WHEN g => next_state <= c;
WHEN OTHERS => next_state <= a;
END CASE;
END PROCESS NEXTSTATE;
Vending Machine in VHDL:Process for Next-State-Decoder
IE1204 Digital Design, Autumn2015 55
![Page 56: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/56.jpg)
• Output decoder is described as aseparate process
• Sensitivity list contains only the currentstate because the outputs are directlydependent on it
Vending Machine in VHDL:Process for Output-Decoder
IE1204 Digital Design, Autumn2015 56
Clk
Input-signals Output-signals(Combinational circuit)
Outputdecoder(Combinational circuit)
Flip-flopsNext statedecoder
![Page 57: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/57.jpg)
OUTPUT : PROCESS (current_state)
BEGIN -- PROCESS OUTPUT
drop <= '0';
clr_acc <= '0';
dec_acc <= '0';
return_10_cent <= '0';
CASE current_state IS
WHEN d => drop <= '1';
WHEN e => clr_acc <= '1';
WHEN f => return_10_cent <= '1';
WHEN g => dec_acc <= '1';
WHEN OTHERS => NULL;
END CASE;
END PROCESS OUTPUT;
Vending Machine in VHDL:Process for Output-Decoder
IE1204 Digital Design, Autumn2015 57
![Page 58: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/58.jpg)
• State register is modeled as a synchronous processwith asynchronous reset (active low)CLOCK : PROCESS (clk, reset_n)
BEGIN -- PROCESS CLOCK
IF reset_n = '0' THEN -- asynchronous reset (active low)
current_state <= a;
ELSIF clk‘EVENT AND clk = '1' THEN -- rising clock edge
current_state <= next_state;
END IF;
END PROCESS CLOCK;
Vending Machine in VHDL:Process for State register
IE1204 Digital Design, Autumn2015 58
Clk
Input-signals Output-signals(Combinational circuit)
Outputdecoder(Combinational circuit)
Flip-flopsNext statedecoder
![Page 59: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/59.jpg)
Quick question• Which state machine is represented by this VHDL code?
IE1204 Digital Design, Autumn2015 59
![Page 60: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/60.jpg)
• In a Mealy machine, output signals dependon both the current state and inputs
Mealy machine
NEXT STATEDECODER
STATE REGISTER OUTPUTDECODER
State
Clk
Inputsignals
Outputsignals
IE1204 Digital Design, Autumn2015 60
![Page 61: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/61.jpg)
• A Mealy machine can be modeled in thesame way as the Moore machine
• The difference is that output decoder isalso dependent on the input signals
• Process which models outputs needs tohave input signals in the sensitivity listas well!
Mealy machine in VHDL
IE1204 Digital Design, Autumn2015 61
![Page 62: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/62.jpg)
• The sample code for bottle dispenseravailable on the course website
• Look at the study of "VHDL synthesis"on the course website
• Both Brown/Vranesic- and Hemert-bookincludes code samples
More on VHDL
IE1204 Digital Design, Autumn2015 62
![Page 63: IE1204 Digital Design F11: Programmable Logic, …€¦ · IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits ... (CPLD) Complex PLD's ... in an FPGA isn](https://reader030.fdocuments.us/reader030/viewer/2022013113/5b7b7e917f8b9ab87f8e1db4/html5/thumbnails/63.jpg)
• PLD, PAL, CPLD• FPGA• ASIC – gate array and standard cell• Modeling sequential circuits with VHDL• Next lecture: BV pp. 584-640
Summary
IE1204 Digital Design, Autumn2015 63