Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren =...

23
Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA FPGA configureren = opladen van de SRAM- cellen met een ‘bitpatroon’, zodat de gewenste schakeling gerealiseerd wordt moet steeds gebeuren met de FPGA in circuit kan op verschillende manieren: vanuit de PC met een speciale download cable vanuit een externe seriële PROM » vereist slechts één kleine chip en weinig verbindingen » seriële PROMs bestaan van 18K tot 256K » Interne CCLK klok spreekt een teller aan in de seriële PROM vanuit een externe gewone (parallelle) PROM » Interne CCLK klok spreekt een teller in de FPGA aan » Data wordt intern toch nog steeds serieel verwerkt, zodat de configuratie op dezelfde snelheid gebeurt vanuit en onder de controle van een externe microprocessor of - controller

Transcript of Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren =...

Page 1: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

CONFIGUREREN VAN DE FPGA

• FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de gewenste schakeling gerealiseerd wordt

• moet steeds gebeuren met de FPGA in circuit

• kan op verschillende manieren: – vanuit de PC met een speciale download cable– vanuit een externe seriële PROM

» vereist slechts één kleine chip en weinig verbindingen

» seriële PROMs bestaan van 18K tot 256K

» Interne CCLK klok spreekt een teller aan in de seriële PROM

– vanuit een externe gewone (parallelle) PROM

» Interne CCLK klok spreekt een teller in de FPGA aan

» Data wordt intern toch nog steeds serieel verwerkt, zodat de configuratie op dezelfde snelheid gebeurt

– vanuit en onder de controle van een externe microprocessor of -controller

Page 2: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

Seriële E(E)PROM

• Combinatie van een EPROM (of EEPROM) met een ingebouwde adres-teller

• De teller loopt alle adressen af op het ritme van de klok en de data worden bit voor bit naar buiten gestuurd.

• Weinig IC pinnen nodig, vb. 8-pins DIL (OTP-EPROM)

EPROMarray

Shiftregister

Controllogic

Addresscounter

CLOCK

CSOE

DATA

CASC

Page 3: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

ONTWERP-SOFTWARE voor PLDs

• Programmeerbare bouwstenen hebben een steeds toenemende complexiteit

– SPLD = Simple PLD (PAL en GAL)

– CPLD = Complex PLD (EPLD)

– FPGA = Field Programmable Gate Array

en bevatten duizenden te programmeren punten

• Hulp van de computer is onmisbaar om een bepaalde functie onder te brengen in een PLD

– hulp bij het ingeven en simuleren van het ontwerp

– hulp bij het ‘vertalen’ van dit ontwerp naar een PLD-schakeling

– hulp bij het configureren van de PLD

• EDA = Electronic Design Automation

CAEE = Computer Aided Electronic Engineering

Page 4: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

ONTWERP-SOFTWARE voor SPLD : PALASM

• SPLD = Simple PLD (PAL + GAL)– eerst op de markt gebracht door de firma MMI (Monolithic Memories

Inc), die later werd opgekocht door AMD

• PALASM (=PAL-assembler)– door AMD/MMI (uitvinders v/d PAL) geleverde ontwikkelingsomgeving

– staat heel kort bij de component (databoek is nodig!)

– is een programmeertaal met een vrij eenvoudige syntax

– schakeling kan op verschillende manieren worden ingegeven:

» logische vergelijkingen

» waarheidstabellen

» toestandmachines (FSM = Finite State Machine)

– zorgt zelf voor minimalisatie

– biedt de mogelijkheid tot simulatie

– genereert de JEDEC-file (= fuse-map) die het programmeertoestel nodig heeft om de PLD te programmeren

Page 5: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

PALASM voorbeeld : 3-naar-8 decoder

• Declaraties ;PALASM Design Description;------ Declaration Segment ------TITLE TUTOR1.PDSPATTERN AREVISION 1.0AUTHOR D. SMETSCOMPANY KHLim-IWTDATE 03/02/01

CHIP DECODER PAL16L8

; ------PIN Declarations ------PIN 2 X ; INPUTPIN 3 Y ; INPUTPIN 4 Z ; INPUT PIN 10 GND ; POWERPIN 12 A COMBINATORIAL ; OUTPUTPIN 13 B COMBINATORIAL ; OUTPUTPIN 14 C COMBINATORIAL ; OUTPUTPIN 15 D COMBINATORIAL ; OUTPUTPIN 16 E COMBINATORIAL ; OUTPUTPIN 17 F COMBINATORIAL ; OUTPUTPIN 18 G COMBINATORIAL ; OUTPUTPIN 19 H COMBINATORIAL ; OUTPUTPIN 20 VCC ; POWER

Y

BIN/DEC

0

1

Z 0

1

2

3

A

B

C

D

4

5

6

7

E

F

G

H

X 2

PAL16L8

2

3

4 12

13

14

15

16

17

18

19

Page 6: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

PALASM voorbeeld : 3-naar-8 decoder

• Declaraties ;PALASM Design Description;------ Declaration Segment ------TITLE TUTOR1.PDSPATTERN AREVISION 1.0AUTHOR D. SMETSCOMPANY KHLim-IWTDATE 03/02/01

CHIP DECODER PAL16L8

; ------PIN Declarations ------;pins 1 2 3 4 5 6 7 8 9 10

NC X Y Z NC NC NC NC NC GND;pins 11 12 13 14 15 16 17 18 19 20

NC A B C D E F G H VCC

in de oorspronkelijkePALASM-versie

Y

BIN/DEC

0

1

Z 0

1

2

3

A

B

C

D

4

5

6

7

E

F

G

H

X 2

PAL16L8

2

3

4 12

13

14

15

16

17

18

19

Page 7: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

PALASM voorbeeld : 3-naar-8 decoder

• Vergelijkingen ; ------PIN Declarations ------PIN 2 X ; INPUTPIN 3 Y ; INPUTPIN 4 Z ; INPUT PIN 10 GND ; POWERPIN 12 A COMBINATORIAL ; OUTPUTPIN 13 B COMBINATORIAL ; OUTPUTPIN 14 C COMBINATORIAL ; OUTPUTPIN 15 D COMBINATORIAL ; OUTPUTPIN 16 E COMBINATORIAL ; OUTPUTPIN 17 F COMBINATORIAL ; OUTPUTPIN 18 G COMBINATORIAL ; OUTPUTPIN 19 H COMBINATORIAL ; OUTPUTPIN 20 VCC ; POWER

Y

BIN/DEC

0

1

Z 0

1

2

3

A

B

C

D

4

5

6

7

E

F

G

H

X 2

PAL16L8

2

3

4 12

13

14

15

16

17

18

19

;------ Boolean Equation Segment ------EQUATIONS/A = /X * /Y * /Z/B = /X * /Y * Z/C = /X * Y * /Z/D = /X * Y * Z/E = X * /Y * /Z/F = X * /Y * Z/G = X * Y * /Z/H = X * Y * Z

Page 8: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

PALASM voorbeeld : 3-naar-8 decoder

• Simulatie ;------ Simulation Segment ------SIMULATIONTRACE_ON X Y Z A B C D E F G H; /A = /X * /Y * /Z SETF /X /Y /ZCHECK /A B C D E F G H; /B = /X * /Y * ZSETF /X /Y ZCHECK A /B C D E F G H; /C = /X * Y * /ZSETF /X Y /ZCHECK A B /C D E F G H; ……...SETF /X Y ZCHECK A B C /D E F G HSETF X /Y /ZCHECK A B C D /E F G HSETF X /Y ZCHECK A B C D E /F G HSETF X Y /ZCHECK A B C D E F /G HSETF X Y ZCHECK A B C D E F G /HTRACE_OFF

STIMULI

CONTROLE VAN DE

UITGANGEN

Page 9: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

PALASM voorbeeld : 3-naar-8 decoder

• Resulterende JEDEC-file

PALASM4 PAL ASSEMBLER ‑ MARKET RELEASE 1.5a (8-20-92) (C) ‑ COPYRIGHT ADVANCED MICRO DEVICES INC., 1992

TITLE :TUTOR1.PDS AUTHOR :D. SMETS PATTERN :A COMPANY:KHLim-IWT REVISION:1.0 DATE :03/02/01

PAL16L8DECODER*QP20*QF2048*G0*F0*

Page 10: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

PALASM voorbeeld : 3-naar-8 decoder

• Resulterende JEDEC-fileL0000 11111111111111111111111111111111*L0032 01110111011111111111111111111111*L0064 00000000000000000000000000000000*L0096 00000000000000000000000000000000*L0128 00000000000000000000000000000000*L0160 00000000000000000000000000000000*L0192 00000000000000000000000000000000*L0224 00000000000000000000000000000000*L0256 11111111111111111111111111111111*L0288 01110111101111111111111111111111*L0320 00000000000000000000000000000000*L0352 00000000000000000000000000000000*L0384 00000000000000000000000000000000*L0416 00000000000000000000000000000000*L0448 00000000000000000000000000000000*L0480 00000000000000000000000000000000*L0512 11111111111111111111111111111111*L0544 01111011011111111111111111111111*L0576 00000000000000000000000000000000*L0608 00000000000000000000000000000000*L0640 00000000000000000000000000000000*L0672 00000000000000000000000000000000*L0704 00000000000000000000000000000000*L0736 00000000000000000000000000000000*

L0768 11111111111111111111111111111111*L0800 01111011101111111111111111111111*L0832 00000000000000000000000000000000*L0864 00000000000000000000000000000000*L0896 00000000000000000000000000000000*L0928 00000000000000000000000000000000*L0960 00000000000000000000000000000000*L0992 00000000000000000000000000000000*L1024 11111111111111111111111111111111*L1056 10110111011111111111111111111111*L1088 00000000000000000000000000000000*L1120 00000000000000000000000000000000*L1152 00000000000000000000000000000000*L1184 00000000000000000000000000000000*L1216 00000000000000000000000000000000*L1248 00000000000000000000000000000000*L1280 11111111111111111111111111111111*L1312 10110111101111111111111111111111*L1344 00000000000000000000000000000000*L1376 00000000000000000000000000000000*L1408 00000000000000000000000000000000*L1440 00000000000000000000000000000000*L1472 00000000000000000000000000000000*L1504 00000000000000000000000000000000*

L1536 11111111111111111111111111111111*L1568 10111011011111111111111111111111*L1600 00000000000000000000000000000000*L1632 00000000000000000000000000000000*L1664 00000000000000000000000000000000*L1696 00000000000000000000000000000000*L1728 00000000000000000000000000000000*L1760 00000000000000000000000000000000*L1792 11111111111111111111111111111111*L1824 10111011101111111111111111111111*L1856 00000000000000000000000000000000*L1888 00000000000000000000000000000000*L1920 00000000000000000000000000000000*L1952 00000000000000000000000000000000*L1984 00000000000000000000000000000000*L2016 00000000000000000000000000000000**C3EE8*EA6C

Page 11: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

PALASM voorbeeld : 3-naar-8 decoder

• Resulterende JEDEC-file 11 1111 1111 2222 2222 2233 0123 4567 8901 2345 6789 0123 4567 8901

0 ---- ---- ---- ---- ---- ---- ---- ---- 1 X--- X--- X--- ---- ---- ---- ---- ---- 2 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 3 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 4 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 5 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 6 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 7 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX

HX

/H = X * Y * Z

19

2

1

1

&&&&&&&&

1

EN

1

1

01234567

01

23

45

67

89

21

61

02

42

82

ZX Y

Page 12: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

PALASM voorbeeld 2 : een 4-bits teller

• Declaraties ;PALASM Design Description;------ Declaration Segment ------TITLE CTR4.PDSPATTERN AREVISION 1.0AUTHOR D. SMETSCOMPANY KHLim-IWTDATE 03/02/01

CHIP CTR4 PAL22V10

; ------PIN Declarations ------PIN 1 CLK ; INPUTPIN 2 /CLR ; INPUTPIN 3 /SET ; INPUT PIN 12 GND ; POWERPIN 13 /OE ; INPUTPIN 14 S0 REGISTERED ; OUTPUTPIN 14 S1 REGISTERED ; OUTPUTPIN 15 S2 REGISTERED ; OUTPUTPIN 16 S3 REGISTERED ; OUTPUTPIN 20 CE ; INPUTPIN 24 VCC ; POWERNODE 1 GLOBAL ; INTERNAL

CTR4

R

1+

G1CE

/CLR

S0

S1

S2

S3

EN/OE

2S

C2

/SET

CLK

Page 13: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

PALASM voorbeeld 2 : een 4-bits teller

• Vergelijkingen EQUATIONSGLOBAL.RSTF = CLR ; RESET if /CLR=0S0 := /S0 * CE ; COUNT

+ S0 * /CE ; HOLD+ SET ; SYNC. PRESET

S1 := S0 * /S1 * CE ; COUNT+ /S0 * S1 * CE+ S1 * /CE ; HOLD+ SET ; SYNC. PRESET

S2 := S0 * S1 * /S2 * CE ; COUNT+ /S1 * S2 * CE+ /S0 * S2 * CE+ S2 * /CE ; HOLD+ SET ; SYNC. PRESET

S3 := S0 * S1 * S2 * /S3 * CE; COUNT+ /S2 * S3 * CE+ /S1 * S3 * CE+ /S0 * S3 * CE+ S3 * /CE ; HOLD+ SET ; SYNC. PRESET

S0.TRST = OES1.TRST = OES2.TRST = OES3.TRST = OEHLD.TRST = GND ; DEDICATE OUTPUT PIN AS INPUT

CTR4

R

1+

G1CE

/CLR

S0

S1

S2

S3

EN/OE

2S

C2

/SET

CLK

Page 14: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

ONTWERP-SOFTWARE voor SPLD : ABEL

• ABEL = Advanced Boolean Expression Language– op de markt gebracht door DATA-I/O, een fabrikant van

programmeer-toestellen (en dus niet van PLD’s zelf)

– staat op een hoger niveau (compiler) dan PALASM (assembler)

» heeft complexere syntax-constructies• kent bv. de instructie COUNT := COUNT + 1 om een teller te beschrijven

• bij PALASM moet je zelf de vergelijkingen voor de verschillende flipflops afleiden

» kan meer onafhankelijk van de component gebruikt worden

– moet uiteraard hetzelfde doel vervullen

» design entry (met equations, truth tables en/of state diagrams)

» design simulation

» logic synthesis (= vertalen naar JEDEC-file)

– ook nu nog vaak onderdeel van grotere ontwerp-omgeving

• Andere PLD-compiler : CUPL (van Logical Devices)

Page 15: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

ABEL - voorbeeld : 7-segment decodermodule bin7seg

title 'Binair naar 7-segment decoder'

D3,D2,D1,D0 pin;

a,b,c,d,e,f,g pin istype 'com';

bin = [D3,D2,D1,D0];

ON,OFF = 1,0;

L,H,X,Z = 0,1,.X.,.Z.;

@dcset

truth_table (bin -> [ a , b , c , d , e , f , g ])

0 -> [ ON, ON, ON, ON, ON, ON, OFF];

1 -> [OFF, ON, ON, OFF, OFF, OFF, OFF];

2 -> [ ON, ON, OFF, ON, ON, OFF, ON];

3 -> [ ON, ON, ON, ON, OFF, OFF, ON];

4 -> [OFF, ON, ON, OFF, OFF, ON, ON];

5 -> [ ON, OFF, ON, ON, OFF, ON, ON];

6 -> [ ON, OFF, ON, ON, ON, ON, ON];

7 -> [ ON, ON, ON, OFF, OFF, OFF, OFF];

8 -> [ ON, ON, ON, ON, ON, ON, ON];

9 -> [ ON, ON, ON, ON, OFF, ON, ON];

10 -> [ ON, ON, ON, OFF, ON, ON, ON];"A

11 -> [OFF, OFF, ON, ON, ON, ON, ON];"b

12 -> [ ON, OFF, OFF, ON, ON, ON, OFF];"C

13 -> [OFF, ON, ON, ON, ON, OFF, ON];"d

14 -> [ ON, OFF, OFF, ON, ON, ON, ON];"E

15 -> [ ON, OFF, OFF, OFF, ON, ON, ON];"F

end

Page 16: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

ABEL - voorbeeld 2: 74HC161 (CTR4)MODULE HC161CntTITLE '74HC161 4-bit Counter Todd Morton, 11/21/02’

//Inputs CLK,LD_L,CLR_L,ENP,ENT pin;A,B,C,D pin;//OutputQA,QB,QC,QD pin istype 'reg';RCO pin istype 'com';

//SetsLOADIN = [D,C,B,A];COUNT = [QD,QC,QB,QA];

//Level Conversions LOAD = !LD_L; CLEAR = !CLR_L;

EQUATIONSCOUNT.CLK = CLK;COUNT.ACLR = CLEAR;

when (LOAD) then COUNT := LOADIN;else when (!ENT) then COUNT := COUNT;else when (!ENP) then COUNT := COUNT;else COUNT := COUNT + 1;RCO = (COUNT == [1,1,1,1]) & ENT;END

Page 17: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

ONTWERP-SOFTWARE voor CPLD en FPGA

• Complexere componenten vragen ook een ontwerp-omgeving met een hogere complexiteit

– we gaan een FPGA met 10000 gates niet beschrijven met alleen maar Booleaanse vergelijkingen

• Ontwikkelomgeving =FRONT-END

• staat het kortst bij de gebruiker

• bevat DESIGN ENTRY en SIMULATION

• vaak van een onafhankelijke software-fabrikant

BACK-END• staat het dichtst bij de component

• bevat DESIGN IMPLEMENTATION

• altijd van de fabrikant van de gekozen PLD

Page 18: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

PLD fabrikanten PLD-software

Page 19: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

DESIGN ENTRY

Twee mogelijkheden voor DESIGN ENTRY :

• Schematic Capture– tekenpakket om op grafische wijze het schema van de schakeling in

te voeren

– wordt onoverzichtelijk voor grote ontwerpen

• HDL = Hardware Description Language– de schakeling wordt ‘beschreven’ met een soort programmeertaal

» beschrijving van de structuur en/of het gedrag van de schakeling

» vergelijk met ABEL, maar op een hoger niveau

» oorspronkelijk bedoeld voor specificatie en documentatie

» geschikt voor simulatie en voor automatische synthese

– in Europa : VHDL = VHSIC Hardware Description Language (VHSIC = Very High Speed Integrated

Circuit)

– in Amerika : VERILOG

Page 20: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

VHDL

VHDL = VHSIC Hardware Description Language

(VHSIC = Very High Speed Integrated Circuit)

VHDL wordt gebruikt voor :

• specificatie & documentatie

• simulatie

• automatische synthese

• LET OP : synthetiseerbare VHDL is slechts een beperkte subset van de volledige VHDL !

• GOUDEN RAAD : blijf in HARDWARE denken !!!

Page 21: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

DESIGN

AR

CH

ITE

CT

UR

EE

NT

ITY

VHDL

ENTITY xor2 IS PORT(a,b : IN bit; c : OUT bit);END xor2;

poort naampoort naam

poort-typepoort-type

entity naamentity naam

datatypedatatype

ARCHITECTURE gedrag OF xor2 IS SIGNAL d1,d2 : bit; BEGIN

d1 <= not(a) and b; d2 <= a and not(b);

c <= d1 or d2; END gedrag;

architecture naamarchitecture naam entity naamentity naam

signaal declaratiesignaal declaratie

bodybody

expressieexpressie

signaal-assignmentsignaal-assignment

xor2

a b

c

Page 22: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

SIMULATIE

Twee mogelijkheden voor SIMULATIE :

• functionele simulatie– gebeurt onmiddellijk na het ingeven van het schema

(of na synthese van de HDL-code)

– controleert de logische werking van de schakeling

– houdt geen rekening met vertragingen of hanteert ‘unit-delay’

• timing simulatie– kan pas gebeuren nadat de schakeling volledig is geïmplementeerd

in de gekozen component

– op dat ogenblik kent de software de juiste vertragingen

– er gebeurt nu een ‘back-annotation’, waarna de (zelfde) functionele simulatie opnieuw kan gebeuren, maar nu wel rekening houdende met de exacte te verwachten vertragingen

Page 23: Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO CONFIGUREREN VAN DE FPGA •FPGA configureren = opladen van de SRAM-cellen met een ‘bitpatroon’, zodat de.

Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO

SIMULATIE met behulp van TESTBENCH

• Use VHDL for simulation stimulus

• Advantages :– Common stimulus language

– Powerful constructs

– Two way communication with design

• Great possibilities

Test-bench

FPGA,CPLD or

ASIC