+ All Categories
Home > Documents > IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file ·...

IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file ·...

Date post: 24-Mar-2018
Category:
Upload: phamliem
View: 227 times
Download: 6 times
Share this document with a friend
70
IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES [email protected]
Transcript
Page 1: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

IE1204 Digital Design

F11: Programmable Logic,

VHDL for Sequential Circuits

Elena Dubrova

KTH/ICT/ES

[email protected]

Page 2: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• BV pp. 98-118, 418-426, 507-519

This lecture

IE1204 Digital Design, HT14 2

Page 3: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• Programmable logic devices (PLDs)

were introduced in the 1970s

• They are based on a structure with an

AND-OR array that makes it easy to

implement a sum-of-products

expression

Programmable Logic Devices

IE1204 Digital Design, HT14 3

Page 4: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Structure of a PLD

IE1204 Digital Design, HT14 4

f 1

AND plane OR plane

Input buffers

inverters

and

P 1

P k

f m

x 1

x 2

x n

x 1

x 1

x n

x n

Page 5: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• Both AND and OR

arrays are

programmable

Programmable Logic Array (PLA)

IE1204 Digital Design, HT14 5

f 1

P

1

P

2

f 2

x 1

x 2 x 3

OR

plane

AND

plane

P

3

P

4

Page 6: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• Only the AND array is

programmable

Programmable Array Logic (PAL)

IE1204 Digital Design, HT14 6

f 1

P

1

P

2

f 2

x 1 x 2 x 3

AND

plane

P

3

P

4

Page 7: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• In earlier PLDs there were

– combinatorial outputs

– register outputs (outputs with a flip-flop)

• For each circuit the number of combinational

and register outputs was fixed

• To increase flexibility, macrocells were

introduced

– one can choose if an output is

combinatorial or has a flip-flop

Combinatorial and register outputs

IE1204 Digital Design, HT14 7

Page 8: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Macrocells in a PLD

IE1204 Digital Design, HT14 8

f

1

To AND plane

D Q

Clock

Select Enable

Flip-flop

A programmable

multiplexer can be

used to select the

type of output

Page 9: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Programming of PLDs

IE1204 Digital Design, HT14 9

Page 10: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• PLDs were quite small (PALCE 22V10

had 10 flip-flops)

• To program larger functions, structures

consisting of several PLD-like blocks

were developed

Complex PLD's (CPLD)

IE1204 Digital Design, HT14 10

Page 11: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

CPLD Structure

IE1204 Digital Design, HT14 11

PAL-like

block

I/O

blo

ck

PAL-like

block

I/O b

lock

PAL-like

block

I/O

blo

ck

PAL-like

block

I/O b

lock

Interconnection wires

Page 12: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Programming of CPLDs via the

JTAG interface

IE1204 Digital Design, HT14 12

• Modern CPLDs (and FPGAs) can be

programmed by downloading circuit

description (programming information)

via a cable

• Download usually uses a standard port

called JTAG port (Joint Test Action

Group)

Page 13: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Programming via the JTAG port

IE1204 Digital Design, HT14 13

(a) CPLD in a Quad Flat Pack (QFP) package

Printed

circuit board

To computer

(b) JTAG programming

You can program the

chips when they are

soldered to the circuit

board - using the

programmer you can

select which chip you

want to program

through the JTAG port

Page 14: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• 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, HT14 14

Page 15: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Structure of an FPGA

IE1204 Digital Design, HT14 15

Page 16: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Look-up-tables (LUT)

IE1204 Digital Design, HT14 16

0/1

0/1

0/1

0/1

x1

x2

f

Two-input LUT

Programmable

cells 1

0

1

0

1

0

A LUT with n inputs can

realize all

combinational functions

with up to n inputs.

The usual size of LUT

in an FPGA is n = 4

Page 17: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Example: XOR-Gate

IE1204 Digital Design, HT14 17

0

1

1

0

x1

x2

f

Two-input LUT

Programmed

values

1

0

1

0

1

0

Multiplexer 2 1

1 1 0

0 1 1

1 0 1

0 0 0

x x f

Page 18: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• A logic block in an FPGA often consists of a

LUT, a flip-flop and a multiplexer to select

register output

Logic Block in a FPGA

IE1204 Digital Design, HT14 18

Out

D Q

Clock

Select

Flip-flop In 1

In 2

In 3

LUT

Page 19: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• Blue cross: switch

is programmed

• Black cross: switch

is not programmed

Programming the LUT's and the

connection matrix in an FPGA

IE1204 Digital Design, HT14 19

0

1

0

0

0

1

1

1

0

0

0

1

x 1

x 2

x 2

x 3

f 1

f 2

f 1 f 2

f

x 1

x 2

x 3 f

Page 20: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

IE1204 Digital Design, HT14 20

DE2 University Board

• DE2 Board

– Cyclone II EP2C35

FPGA (Datorteknik-

course)

– 4 Mbytes of flash

memory

– 512 Kbytes of static

RAM

– 8 Mbytes of SDRAM

– Several I/O-Devices

– 50 MHz oscillator

Page 21: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

IE1204 Digital Design, HT14 21

Cyclone II

Logic Element

Page 22: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

IE1204 Digital Design,

HT14 22

Cyclone II Family

(3) Total Number of 18x18 Multipliers DE2

Page 23: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Stratix III Family

IE1204 Digital Design,

HT14 23

DE3 Board

Page 24: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

IE1204 Digital Design, HT14 24

Multiple processors can be

implemented on an FPGA

• Nine II is a so-called 'soft-

processor' (32-bit) that

can be implemented on

Altera’s FPGAs

• Today's FPGAs are so

large that multiple

processors can fit on a

single FPGA chip

Very powerful multiprocessor

systems can be created on an

FPGA!

Nios II

Nios II

Page 25: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• An ASIC (Application Specific Integrated

Circuit) is a circuit which is manufactured at a

semiconductor factory

• In a full custom integrated circuit, the entire

circuit is customized

• In an ASIC, some design steps have already

been made to reduce design time and cost

• There are several types of ASICs:

– Gate array ASICs

– Standard cell ASIC

ASICs

IE1204 Digital Design, HT14 25

Page 26: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• In a gate array ASIC, gates (or transistors) are

already on silicon

Gate Array

IE1204 Digital Design, HT14 26

Page 27: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• We only need

to create only

the links

between the

inputs and

outputs of

gates

Gate Array

IE1204 Digital Design, HT14 27

f 1

x 1

x 3

x 2

Page 28: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Comparison

FPGA, Gate Array, Standard Cell

IE1204 Digital Design, HT14 28

Initial Cost Cost per part Performance Fabrication

Time

FPGA Low High Low Short

Gate Array

(ASIC)

Standard Cell

(ASIC)

High Low High Long

Page 29: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Design Trade-Offs

IE1204 Digital Design, HT14 29

Design Time

Performance

Microprocessor

Programmable

Logic

Gate Array

Standard Cell

Full Custom

Page 30: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

VHDL: Sequential circuits

IE1204 Digital Design, HT14 30

Page 31: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• In a Moore-type machine output signals

depend only on the current state

Moore machine

31 IE1204 Digital Design, HT14

NEXT STATE

DECODER STATE REGISTER

OUTPUT

DECODER

State

Clk

Input

signals Output

signals

Page 32: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• In a Moore machine, we have three

blocks

– Next state decoder

– Output decoder

– State register

• These blocks are executed in parallel

How to model a state machine in

VHDL?

IE1204 Digital Design, HT14 32

Page 33: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• Which logic gate is represented by the

following VHDL code?

Quick question

IE1204 Digital Design, HT14 33

Page 34: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• Which logic gate is represented by the

following VHDL code?

Quick question

IE1204 Digital Design, HT14 34

Page 35: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• A architecture in VHDL can contain

multiple processes

• Processes are executed in parallel

• A process is written as a sequential

program

Processes in VHDL

IE1204 Digital Design, HT14 35

Page 36: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• For a Moore machine, we create three

processes

– Next state decoder

– Output decoder

– State register

Moore-machine processes

IE1204 Digital Design, HT14 36

Page 37: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• Moore machine contains internal signals

for

– Current state

– Next state

• These signals are declared in the

architecture description

Internal signals

IE1204 Digital Design, HT14 37

Page 38: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• We use bottle dispenser vending machine as

an example

• We describe its system controller in VHDL

Bottle dispenser vending machine

in VHDL

IE1204 Digital Design, HT14 38

COIN

RECEIVER

COIN_PRESENT

GT_1_EURO

EQ_1_EURO

LT_1_EURO

DEC_ACC

CLR_ACC

SYSTEM

CONTROL

DROP

DROP_READY

CHANGER_READY

RETURN_10_CENT

DROP BOTTLE

COIN RETURN

Page 39: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• Bottle dispenser consists of several

parts

– COIN RECEIVER

– DROP BOTTLE

– COIN RETURN

• Machine accepts only the following

coins: 1 Euro, 50 Cent, 10 Cent

• The vending machine only returns 10

Cent coins

Bottle dispenser

IE1204 Digital Design, HT14 39

Page 40: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• DROP_READY is active for one clock cycle after the

bottle has been ejected

• CHANGER_READY is active for one clock cycle after a

10 Cent coin is ejected

• Because of the mechanical properties, the following

signals are active and inactive for several clock cycles:

– COIN_PRESENT (active for several clock cycles after the coin

drop)

– DROP_READY (active for several clock periods after bottle

drop)

– CHANGER_READY (inactive for several clock periods after coin

return)

Signal Properties

IE1204 Digital Design, HT14 40

Page 41: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Flow diagram of control system

IE1204 Digital Design, HT14 41

• Coin

– 10 Cent, 50 Cent, 1 Euro

• Coin return

– 10 Cent

• Bottle Price

– 1 Euro

Reset

Coin

registered?

Total?

Eject

bottle

Reset

sum

Return

10 Cent

No

Yes

Total <1 €

Total = 1 € Total> € 1

Decrease

sum

Page 42: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

State diagram (Moore)

IE1204 Digital Design, HT14 42

(a)

(b)

(c)

(d)

(e)

(f)

(g)

COIN_PRESENT

COIN_PRESENT

COIN_PRESENT

COIN_PRESENT

GT_I_EURO

LT_I_EURO

EQ_I_EURO

CHANGER

READY

CHANGER_READY

DROP

READY

DROP READY

DEC_ACC CLR_ACC

RETURN_10_CENT DROP

• Upon entry into the state

signal becomes active

• When exiting the state

signal becomes inactive

(a) Wait for coin

(b) Register coin

(c) Coin is registered (3 cases)

(d) Drop bottle

(e) Reset sum

(f) Return 10 Cent

(g) Decrease sum with 10 Cent

Page 43: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

State diagram

IE1204 Digital Design, HT14 43

(a)

(b)

(c)

(d)

(e)

(f)

(g)

COIN_PRESENT

COIN_PRESENT

COIN_PRESENT

COIN_PRESENT

GT_I_EURO

LT_I_EURO

EQ_I_EURO

CHANGER

READY

CHANGER_READY

DROP

READY

DROP READY

DEC_ACC CLR_ACC

RETURN_10_CENT DROP

• State assignment

with no claim for

optimality (Ad hoc)

– (a) next to (b)

– (b) next to (c)

– (d) next to (e)

– (f) next to (g)

• For all these cases,

only one variable

changes

AB

00 01 11 10

C

0 a - d f

1 b c e g

(”-” = don’t care)

Page 44: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

State diagram

IE1204 Digital Design, HT14 44

(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

CHANGER

READY

CHANGER_READY

DROP

READY

DROP READY

DEC_ACC CLR_ACC

RETURN_10_CENT DROP

• The state diagram

contains all

information required

to generate an

implementation

• Asuumption: D flip-

flops are used as

state register

The state variable order is

ABC, i.e. state (c) is

A = 0, B = 1,C = 1

Page 45: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Construction of next-state and

output decoders

IE1204 Digital Design, HT14 45

D

D

D

Next State

Decoder

COIN_PRESENT

LT_I_EURO

EQ_I_EURO

GT_I_EURO

DROP_READY

CHANGER_READY

A

B

C

DB

DC

B

C

Output

Decoder

DROP

CLR_ACC

DEC_ACC

Clock

Clock

Clock

RETURN_I0_CENT

At next step, we develop the logic for the next state (DA, DB, DC) and outputs

DA A

Page 46: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Decoder: Next state - DA

IE1204 Digital Design, HT14 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

CHANGER

READY

CHANGER_READY

DROP

READY

DROP READY

DEC_ACC CLR_ACC

RETURN_10_CENT DROP

DA AB

00 01 11 10

C

0 0 - 1 1

1 0 (=) + (>) 0 0

CA)B(A)B(ADA

(=) : EQ_1_EURO

(>) : GT_1_EURO

46

Page 47: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• Variable-Entered Mapping can help to draw and

minimize Karnaugh diagrams with many variables

• Instead of opening an "extra dimension" we write a

variable into the Karnaugh map

• You must be extra careful when drawing circuits so

that you do not forget a variable combination!

Variable-Entered Mapping (VEM)

IE1204 Digital Design, HT14 47

DA AB

00 01 11 10

C

0 0 - 1 1

1 0 (=) + (>) 0 0

Page 48: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Decoder: Next state - DB

IE1204 Digital Design, HT14 48

(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

CHANGER

READY

CHANGER_READY

DROP

READY

DROP READY

DEC_ACC CLR_ACC

RETURN_10_CENT DROP

DB AB

00 01 11 10

C

0 0 - 1 0

1 CP (=) 0 1

CBA)CPC(BCB)B(ADB

(=) : EQ_1_EURO

CP : COIN_PRESENT

Page 49: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Decoder: Next state- DC

IE1204 Digital Design, HT14 49

(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

CHANGER

READY

CHANGER_READY

DROP

READY

DROP READY

DEC_ACC CLR_ACC

RETURN_10_CENT DROP

DC AB

00 01 11 10

C

0 CP - DR CR

1 1 0 0 1

CB(CR)BA

(DR)CB(CP)ACDC

CP : COIN_PRESENT

DR: DROP_READY

CR: CHANGER_READY

Page 50: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Decoder: Output singnals

IE1204 Digital Design, HT14 50

• Output decoder is

trivial, since its value

is directly dependent

on 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

CHANGER

READY

CHANGER_READY

DROP

READY

DROP READY

DEC_ACC CLR_ACC

RETURN_10_CENT DROP

CBADEC_ACC

BCACENTRETURN_10_

ABCCLR_ACC

CABDROP

Page 51: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• The logical expressions are then

implemented with logic gates as usually

Implementation

IE1204 Digital Design, HT14 51

Page 52: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Vending machine

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 system

as a 'black box '

• Entity describes the interface

to the outside world

• All inputs and outputs are

described

• Apart from the input and

output signals, block diagram

needs signals for

– Clock

– Reset (active low)

IE1204 Digital Design, HT14 52

Page 53: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• The architecture describes the function

of 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

Architecture

IE1204 Digital Design, HT14 53

Page 54: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

State Diagram

• Upon entry into the state

signal becomes active

• When exiting the state

signal becomes inactive

54

(a)

(b)

(c)

(d)

(e)

(f)

(g)

COIN_PRESENT

COIN_PRESENT

COIN_PRESENT

COIN_PRESENT

GT_I_EURO

LT_I_EURO

EQ_I_EURO

CHANGER

READY

CHANGER_READY

DROP

READY

DROP READY

DEC_ACC CLR_ACC

RETURN_10_CENT DROP

(a) Wait for coin

(b) Register coin

(c) Coin is registered (3 cases)

(d) Bottle drop

(e) Reset sum

(f) Return 10 Cent

(g) Decrease sum with 10 Cent

IE1204 Digital Design, HT14

Page 55: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• 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

Internal Signaler

IE1204 Digital Design, HT14 55

Page 56: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• 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 "000

001 011 110 111 100 101";

SIGNAL current_state, next_state : state_type;

BEGIN -- Moore_FSM

Vending machine

Internal Signals

IE1204 Digital Design, HT14 56

Page 57: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Vending machine

Block diagram

57

D

D

D

Next State

Decoder

COIN_PRESENT

LT_I_EURO

EQ_I_EURO

GT_I_EURO

DROP_READY

CHANGER_READY

A

B

C

DA

DB

DC

A

B

C

Output

Decoder

DROP

CLR_ACC

DEC_ACC

Clk

Clk

Clk

• Signals A, B, C describe current state

• Signals DA, DB, DC describe next state

RETURN_I0_CENT

IE1204 Digital Design, HT14

Page 58: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Quick question

• Which state machine is represented by this VHDL code?

IE1204 Digital Design, HT14 58

Page 59: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• Next-State-Decoder is described as a

process

• Sensitivity list contains all the inputs that

'activate' the process

NEXTSTATE : 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

Next-State Decoder

IE1204 Digital Design, HT14 59

Page 60: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• We now use a CASE statement to describe for each state

conditions for transitions to the next state

CASE 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

Next-State-Decoder

IE1204 Digital Design, HT14 60

Page 61: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• We can simplify the description by specifying a default value for

the 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

Next-State Decoder

IE1204 Digital Design, HT14 61

It is important to we specify all options for next_state signal. Otherwise we

may implicitly set next_state <= next_state which generates a loop.

Page 62: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• We terminate the CASE statement with a WHEN OTHERS statement. Here we specify that we should go to the state a if

we end up in an unspecified state

WHEN g => next_state <= c;

WHEN OTHERS => next_state <= a;

END CASE;

END PROCESS NEXTSTATE;

Vending machine

Next-State Decoder

IE1204 Digital Design, HT14 62

Page 63: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• Output decoder is described as a

separate process

• Sensitivity list contains only the current

state because the outputs are directly

dependent on it

Vending machine

Output decoder

IE1204 Digital Design, HT14 63

Page 64: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

Vending machine

Block diagram

64

D

D

D

Next State

Decoder

COIN_PRESENT

LT_I_EURO

EQ_I_EURO

GT_I_EURO

DROP_READY

CHANGER_READY

A

B

C

DA

DB

DC

A

B

C

Output

Decoder

DROP

CLR_ACC

DEC_ACC

Clk

Clk

Clk

• Signals A, B, C describe current state

• Signals DA, DB, DC describe next state

RETURN_I0_CENT

IE1204 Digital Design, HT14

Page 65: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

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

Output decoder

IE1204 Digital Design, HT14 65

Page 66: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• State register is modeled as a synchronous process

with 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

State register

IE1204 Digital Design, HT14 66

Page 67: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• In a Mealy machine, output signals depend

on both the current state and inputs

Mealy machine

67 IE1204 Digital Design, HT14

NEXT STATE

DECODER STATE REGISTER OUTPUT

DECODER

State

Clk

Input

signals Output

signals

Page 68: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• A Mealy machine can be modeled in the

same way as the Moore machine

• The difference is that output decoder is

also dependent on the input signals

• Process which models outputs needs to

have input signals in the sensitivity list

as well!

Mealy machine in VHDL

IE1204 Digital Design, HT14 68

Page 69: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• The sample code for bottle dispenser

available on the course website

• Look at the study of "VHDL synthesis"

on the course website

• Both Brown/Vranesic- and Hemert-book

includes code samples

More on VHDL

IE1204 Digital Design, HT14 69

Page 70: IE1204 Digital Design F11: Programmable Logic, VHDL for · PDF file · 2017-06-20... Programmable Logic, VHDL for Sequential Circuits Elena Dubrova KTH/ICT/ES ... realize all combinational

• 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, HT14 70


Recommended