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
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
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
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
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
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
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
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
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*
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
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
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
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
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)
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
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
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
Programmeerbare Logica DIGITALE ELEKTRONICA 1ELO
PLD fabrikanten PLD-software
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
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 !!!
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
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
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
Top Related