De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

CONFIGUREREN VAN DE FPGA

Verwante presentaties


Presentatie over: "CONFIGUREREN VAN DE FPGA"— Transcript van de presentatie:

1 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

2 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)

3 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

4 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

5 PALASM voorbeeld : 3-naar-8 decoder
Declaraties ;PALASM Design Description ; Declaration Segment TITLE TUTOR1.PDS PATTERN A REVISION 1.0 AUTHOR D. SMETS COMPANY KHLim-IWT DATE /02/01 CHIP DECODER PAL16L8 ; PIN Declarations PIN X ; INPUT PIN Y ; INPUT PIN Z ; INPUT PIN GND ; POWER PIN A COMBINATORIAL ; OUTPUT PIN B COMBINATORIAL ; OUTPUT PIN C COMBINATORIAL ; OUTPUT PIN D COMBINATORIAL ; OUTPUT PIN E COMBINATORIAL ; OUTPUT PIN F COMBINATORIAL ; OUTPUT PIN G COMBINATORIAL ; OUTPUT PIN H COMBINATORIAL ; OUTPUT PIN VCC ; POWER PAL16L8

6 PALASM voorbeeld : 3-naar-8 decoder
Declaraties ;PALASM Design Description ; Declaration Segment TITLE TUTOR1.PDS PATTERN A REVISION 1.0 AUTHOR D. SMETS COMPANY KHLim-IWT DATE /02/01 CHIP DECODER PAL16L8 ; PIN Declarations ;pins NC X Y Z NC NC NC NC NC GND ;pins NC A B C D E F G H VCC in de oorspronkelijke PALASM-versie

7 PALASM voorbeeld : 3-naar-8 decoder
Vergelijkingen ; PIN Declarations PIN X ; INPUT PIN Y ; INPUT PIN Z ; INPUT PIN GND ; POWER PIN A COMBINATORIAL ; OUTPUT PIN B COMBINATORIAL ; OUTPUT PIN C COMBINATORIAL ; OUTPUT PIN D COMBINATORIAL ; OUTPUT PIN E COMBINATORIAL ; OUTPUT PIN F COMBINATORIAL ; OUTPUT PIN G COMBINATORIAL ; OUTPUT PIN H COMBINATORIAL ; OUTPUT PIN VCC ; POWER ; 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

8 PALASM voorbeeld : 3-naar-8 decoder
Simulatie ; Simulation Segment SIMULATION TRACE_ON X Y Z A B C D E F G H ; /A = /X * /Y * /Z SETF /X /Y /Z CHECK /A B C D E F G H ; /B = /X * /Y * Z SETF /X /Y Z CHECK A /B C D E F G H ; /C = /X * Y * /Z SETF /X Y /Z CHECK A B /C D E F G H ; ……... SETF /X Y Z CHECK A B C /D E F G H SETF X /Y /Z CHECK A B C D /E F G H SETF X /Y Z CHECK A B C D E /F G H SETF X Y /Z CHECK A B C D E F /G H SETF X Y Z CHECK A B C D E F G /H TRACE_OFF STIMULI CONTROLE VAN DE UITGANGEN

9 PALASM voorbeeld : 3-naar-8 decoder
Resulterende JEDEC-file PALASM4 PAL ASSEMBLER ‑ MARKET RELEASE 1.5a ( ) (C) ‑ COPYRIGHT ADVANCED MICRO DEVICES INC., 1992 TITLE :TUTOR1.PDS AUTHOR :D. SMETS PATTERN :A COMPANY:KHLim-IWT REVISION: DATE :03/02/01 PAL16L8 DECODER* QP20* QF2048* G0*F0*

10 PALASM voorbeeld : 3-naar-8 decoder
Resulterende JEDEC-file L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * L * * C3EE8* EA6C

11 PALASM voorbeeld : 3-naar-8 decoder
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 Resulterende JEDEC-file /H = X * Y * Z H X Z X Y

12 PALASM voorbeeld 2 : een 4-bits teller
Declaraties ;PALASM Design Description ; Declaration Segment TITLE CTR4.PDS PATTERN A REVISION 1.0 AUTHOR D. SMETS COMPANY KHLim-IWT DATE /02/01 CHIP CTR4 PAL22V10 ; PIN Declarations PIN CLK ; INPUT PIN /CLR ; INPUT PIN /SET ; INPUT PIN GND ; POWER PIN /OE ; INPUT PIN S0 REGISTERED ; OUTPUT PIN S1 REGISTERED ; OUTPUT PIN S2 REGISTERED ; OUTPUT PIN S3 REGISTERED ; OUTPUT PIN CE ; INPUT PIN VCC ; POWER NODE 1 GLOBAL ; INTERNAL

13 PALASM voorbeeld 2 : een 4-bits teller
Vergelijkingen EQUATIONS GLOBAL.RSTF = CLR ; RESET if /CLR=0 S0 := /S0 * CE ; COUNT + S0 * /CE ; HOLD + SET ; SYNC. PRESET S1 := S0 * /S1 * CE ; COUNT + /S0 * S1 * CE + S1 * /CE ; HOLD S2 := S0 * S1 * /S2 * CE ; COUNT + /S1 * S2 * CE + /S0 * S2 * CE + S2 * /CE ; HOLD S3 := S0 * S1 * S2 * /S3 * CE; COUNT + /S2 * S3 * CE + /S1 * S3 * CE + /S0 * S3 * CE + S3 * /CE ; HOLD S0.TRST = OE S1.TRST = OE S2.TRST = OE S3.TRST = OE HLD.TRST = GND ; DEDICATE OUTPUT PIN AS INPUT

14 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)

15 ABEL - voorbeeld : 7-segment decoder
module 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

16 ABEL - voorbeeld 2: 74HC161 (CTR4)
MODULE HC161Cnt TITLE '74HC161 4-bit Counter Todd Morton, 11/21/02’ //Inputs CLK,LD_L,CLR_L,ENP,ENT pin; A,B,C,D pin; //Output QA,QB,QC,QD pin istype 'reg'; RCO pin istype 'com'; //Sets LOADIN = [D,C,B,A]; COUNT = [QD,QC,QB,QA]; //Level Conversions LOAD = !LD_L; CLEAR = !CLR_L; EQUATIONS COUNT.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

17 ONTWERP-SOFTWARE voor CPLD en FPGA
Complexere componenten vragen ook een ontwerp-omgeving met een hogere complexiteit we gaan een FPGA met 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

18 PLD fabrikanten PLD-software

19 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

20 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 !!!

21 VHDL DESIGN ENTITY ARCHITECTURE a b c ENTITY xor2 IS
PORT(a,b : IN bit; c : OUT bit); END xor2; poort naam poort-type entity naam datatype xor2 a b c ARCHITECTURE 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 naam entity naam signaal declaratie body expressie signaal-assignment

22 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

23 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


Download ppt "CONFIGUREREN VAN DE FPGA"

Verwante presentaties


Ads door Google