CONFIGUREREN VAN DE FPGA

Slides:



Advertisements
Verwante presentaties
Vincent Poté Nelis Vandermeiren Simen Akkermans Kevin De Neef
Advertisements

De zin en onzin van escrow
Hoe werkt een rekenmachine?
Serieel naar parallel omzetting
Programmeren van een humanoid robot
CODEERELEMENTEN DECODERS BCD naar 7-SEGMENT
Embedded systemen Embedded software.
™.
Reeds behandelde PLD-soorten:
Nieuwe componentenfamilie : GAL
PROS2 Les 2 Programmeren en Software Engineering 2.
Installatie & beheer Jonathan Mohnen Martijn Wolfs.
gebouw applicaties binnen een gebouwbesturingssysteem
Parallel naar serieel omzetting
HM-ES-th1 Les 4 Hardware/Software Codesign with SystemC.
Didactisch bord: Led RGB
Par. 3.1 Computers zijn overal
Kennismaking met de computerconfiguratie
Inhoudstafel Inleiding De basis van digitaal ontwerp
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 4(2): Digitale.
Verdere uitbreiding van de GAL
Hoofdstuk 8: Recursie.
Ronde (Sport & Spel) Quiz Night !
Digitale Elektronica en Processoren
Arduino project.
Welkom Voorstellen Bustechnologie ASI Actuator-Sensor-Interface
Ontwikkeling van autonome robots met microcontrollers
Logische schakelingen
Auteursomgeving voor Digitale Componenten
Computerarchitectuur
F. Rubben NI Lookout 1 06/RIS/05 - NI Lookout VTI Brugge F. Rubben, ing.
Steven Van Acker. Transmeta Crusoe - Steven Van Acker - Mei Overzicht  Inleiding  Het Idee  De Technologie  CodeMorphing  LongRun  NorthBridge.

Phoenix Contact ILC150ETH F. Rubben, Ing.. Phoenix Contact ILC150ETH F. Rubben, Ing.
Cursus VHDL Aansturing van een stappenmotor Peter Slaets KHLim.
VHDL Peter Slaets KHLim Functies en procedures Functies –type conversie functies »bit vector to integer en omgekeerd –verkorte componenten met maar 1 output.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Interaction diagrams: Sequence Diagram
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen April 2005.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
1Ben Bruidegom A Harvard Machine Calculator Calculator  Computer.
Auteursomgeving voor Digitale Componenten
Complexe schakelingen
Een USB 2.0 oscilloscoop Bossuyt Frederick De Bock Steven
Werken aan Intergenerationele Samenwerking en Expertise.
Title VHDL Introductie FirstName LastName – Activity / Group.
PROM = niet altijd ideaal
SPLD : Simple Programmable Logic Devices Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica DIA 1 DIA 1 Logische functie n Elke logische.
Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Verdere FPGA-producten Discontinued!
Hoe werkt een rekenmachine?
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
1/1/ /e/e eindhoven university of technology OGO 1.2 project Startbijeenkomst Een microprocessor… …om warm voor te lopen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau klokken en geheugens.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau: “systeem-architectuur” cpu-chips.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 2: IDaSS.
MICROCONTROLLERS.
HAN-University Inleiding tot VHDL, 2010 Bron: Fraunhofer for Integrated Circuits.
Combinatorische logica
Het timing model in VHDL
De financiële functie: Integrale bedrijfsanalyse©
Les 2: Zaterdag 24 mei 2014 Wim Peeters
April Slide 2"Insert" Date via Date & Time Sales product training Amsterdam, the Netherlands Lennart van Houwelingen Fallbrook Technologies.
Stromen bij digitale signalen
Inhoud Analyse van sequentiële netwerken Sequentiële bouwblokken
BIOS en Opstarten.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 6 - onderwerpen Uitleg.
Onderwerp: PIC assembler programmeren
Les 1: Zaterdag 10 mei 2014 Wim Peeters
1 XSLT processing & control Datamodellering 2006.
Transcript van de presentatie:

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

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)

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

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

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 03/02/01 CHIP DECODER PAL16L8 ; ------PIN Declarations ------ PIN 2 X ; INPUT PIN 3 Y ; INPUT PIN 4 Z ; INPUT PIN 10 GND ; POWER PIN 12 A COMBINATORIAL ; OUTPUT PIN 13 B COMBINATORIAL ; OUTPUT PIN 14 C COMBINATORIAL ; OUTPUT PIN 15 D COMBINATORIAL ; OUTPUT PIN 16 E COMBINATORIAL ; OUTPUT PIN 17 F COMBINATORIAL ; OUTPUT PIN 18 G COMBINATORIAL ; OUTPUT PIN 19 H COMBINATORIAL ; OUTPUT PIN 20 VCC ; POWER PAL16L8

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 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 oorspronkelijke PALASM-versie

PALASM voorbeeld : 3-naar-8 decoder Vergelijkingen ; ------PIN Declarations ------ PIN 2 X ; INPUT PIN 3 Y ; INPUT PIN 4 Z ; INPUT PIN 10 GND ; POWER PIN 12 A COMBINATORIAL ; OUTPUT PIN 13 B COMBINATORIAL ; OUTPUT PIN 14 C COMBINATORIAL ; OUTPUT PIN 15 D COMBINATORIAL ; OUTPUT PIN 16 E COMBINATORIAL ; OUTPUT PIN 17 F COMBINATORIAL ; OUTPUT PIN 18 G COMBINATORIAL ; OUTPUT PIN 19 H COMBINATORIAL ; OUTPUT PIN 20 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

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

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 PAL16L8 DECODER* QP20* QF2048* G0*F0*

PALASM voorbeeld : 3-naar-8 decoder Resulterende JEDEC-file L0000 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

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

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 03/02/01 CHIP CTR4 PAL22V10 ; ------PIN Declarations ------ PIN 1 CLK ; INPUT PIN 2 /CLR ; INPUT PIN 3 /SET ; INPUT PIN 12 GND ; POWER PIN 13 /OE ; INPUT PIN 14 S0 REGISTERED ; OUTPUT PIN 14 S1 REGISTERED ; OUTPUT PIN 15 S2 REGISTERED ; OUTPUT PIN 16 S3 REGISTERED ; OUTPUT PIN 20 CE ; INPUT PIN 24 VCC ; POWER NODE 1 GLOBAL ; INTERNAL

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

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)

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

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

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

PLD fabrikanten PLD-software

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

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

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

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

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