ie1204 digital design f11: programmable logic, …€¦ · ie1204 digital design f11: programmable...

63
IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits Masoumeh (Azin) Ebrahimi ([email protected]) Elena Dubrova ([email protected]) KTH / ICT / ES

Upload: duongnhu

Post on 21-Aug-2018

238 views

Category:

Documents


0 download

TRANSCRIPT

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

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

• 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

• 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

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

• 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

• 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

• 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

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

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

• 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

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

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

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

• 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

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

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

• 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

• 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

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

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

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

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

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

• 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

• 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

• 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

• 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

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

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

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

• 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

• 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

• 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

• 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

• 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

• 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

• 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

• 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

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

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

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

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

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

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

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

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

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

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

• 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

• 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

• 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

• 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

• 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

• 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

• 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

• 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

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

• 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

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

• 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

• 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

• 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

• 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