INF3430 Kretsteknologier Programmeringsteknologier VHDL-Access datatyper
l l l Programmable Read Only Memory a b c Predefined link Programmable link a b c Predefined link Programmable link Address 0 Address 1 Address 2 Address 3 Address 4 Address 5 Address 6 Address 7 a!a b!b c!c!a!b!c!a!b c!a b!c!a b c a!b!c a!b c a b!c a b c Programmable OR array Address 0 Address 1 Address 2 Address 3 Address 4 Address 5 Address 6 Address 7 a!a b!b c!c!a!b!c!a!b c!a b!c!a b c a!b!c a!b c a b!c a b c l l l Programmable OR array Predefined AND array w x y Predefined AND array w x y w = (a b) x =!(a b) y = (a b) ^ c INF3430-Kretsteknologier 2
Programmable Logic Array (PLA) Gir ikke full dekoding (har færre enn 2 n mintermer). Antall produktledd må minimaliseres, men ikke antall input variable. INF3430-Kretsteknologier 3
PLA eksempel l l l Programmable OR array Programmable a b c Predefined link Programmable link a b c a c!b!c a!a b!b c!c Predefined AND array w x y w = (a c) (!b!c) Programmablex = (a b c) (!b!c) y = (a b c) INF3430-Kretsteknologier 4
Programmable Array Logic (PAL) Som PLA, men med fast OR array Kan ikke dele produktledd mellom flere OR Mindre programmering (kun AND-array) Mindre fleksibilitet Re-programmerbare utgaver finnes (GAL) l l l Predefined OR array INF3430-Kretsteknologier 5
Programmerbar logikk arkitekturer Utvikling/Størrelse Krets med inn/ut-linjer, logikk, vipper og programmerbare forbindelseslinjer. Familier: SPLD - Simple Programmable Logic Device CPLD - Complex Programmable Logic Device FPGA - Field Programmable Gate Array CSoC - Configurable System-on-Chip INF3430-Kretsteknologier 6
SPLD - Simple Programmable Logic Device Kjennetegn: Minste og billigste typen av programmerbar logikk. Kort pin-to-pin delay Andre betegnelser: PROM (Programmable Read Only Memory) PLA (Programmable Logic Array) PAL (Programmable Array Logic, Vantis) GAL (Generic Array Logic, Lattice, Lattice) Programmering: Fuses eller ikke-flyktig minne som EPROM, EEPROM eller FLASH. INF3430-Kretsteknologier 7
PLD programmerer INF3430-Kretsteknologier 8
Eksempel: GAL22V10 (Lattice) INF3430-Kretsteknologier 9
Eksempel: GAL22V10 (Lattice) INF3430-Kretsteknologier 10
CPLD - Complex Programmable Logic Device Kjennetegn: En typisk CPLD har 2 til 64 ganger så mye logikk som en SPLD. Kort pin-to-pin delay Andre betegnelser: EPLD (Erasable Programmable Logic Device) PEEL EEPLD (Electrically-Erasable Programmable Logic Device) MAX (Multiple Array matrix, Altera) Programmering: Ikke-flyktig minne som EPROM, EEPROM eller FLASH (også SRAM er nå tilgjengelig). Vanlig nå med ISR (In-System Re-programable) gjennom JTAG interface. INF3430-Kretsteknologier 11
CPLD INF3430-Kretsteknologier 12
Eksempel-Max7000S (Altera) INF3430-Kretsteknologier 13
Eksempel-Max7000 (Altera) INF3430-Kretsteknologier 14
FPGA -Field Programmable Gate Array Kjennetegn: Tilbyr typisk en større mengde logikk på en krets enn det CPLD gjør. Andre betegnelser: LCA (Logic Cell Array) pasic (programmable ASIC), Cypress FLEX, APEX (Altera) ACT (Actel) ORCA (Lucent) Virtex (Xilinx) pasic (QuickLogic) Programmering: Statisk minne (SRAM) eller anti-fuse teknologi (også noen med EEPROM eller FLASH finnes). INF3430-Kretsteknologier 15
FPGA INF3430-Kretsteknologier 16
Eksempel på logikk blokk/celle (FPGA) Kombinatorisk logikk Sekvensiell logikk INF3430-Kretsteknologier 17
Look-Up Table (LUT) 0 0 INF3430-Kretsteknologier 18
Utvikling programmerbare kretser INF3430-Kretsteknologier 19
ASIC: Application Specific Integrated Circuit ASIC: Brukerutviklet IC INF3430-Kretsteknologier 20
Når bør en bruke FPGA (CPLD)? Status: Førstevalg for digital logikk design med unntak av: Enkle eller tidskritiske design (ASIC/PAL/diskret logikk bedre) Produkt skal produseres i stort antall (ASIC bedre) Veldig komplekse design (ASIC) Design der minimalisering av effektforbruk er kritisk (mobile applikasjoner) ASIC vs FPGA (2003) 1500 4000 nye ASIC prosjekter hvert år 450 000 nye FPGA prosjekter hvert år INF3430-Kretsteknologier 21
Fordeler med FPGA vs. ASIC Kortere utviklingstid på grunn av enkel reprogrammering. Kan re-programmeres i system ute i felt. Mindre økonomisk risiko (produksjon av en ASIC-krets er dyrt og den kan ikke reprogrammeres). INF3430-Kretsteknologier 22
Programmeringsteknologier for programmerbar logikk (Kap 2 og 4) Technology Symbol Predominantly associated with... Fusible-link SPLDs Antifuse FPGAs EPROM SPLDs and CPLDs E 2 PROM/ FLASH SPLDs and CPLDs (some FPGAs) SRAM SRAM FPGAs (some CPLDs) Alle teknikker trenger ekstra utstyr Varierer i overhead og kompleksitet INF3430-Programmeringsteknologier 23
Fusable link (sikringer) Fuses Logic 1 a F at Pull-up resistors F af b NOT F bt AND y = 0 (N/A) F bf NOT INF3430-Programmeringsteknologier 24
Antifuse Prinsipp: Konfigurasjon lagres i FPGA ved at det lages kortslutninger ved bruk av høy spenning. Fordeler Lav impedans når sikring er on (liten forsinkelse) Lavt strømforbruk Kompakt teknologi (tar lite plass) Ekstra pålitelig teknologi (relativt strålingsimmune) Ulemper Må programmeres i en egen programmeringsenhet Høy programmeringsspenning og -strøm Permanent programmering (kan kun programmeres en gang) INF3430-Programmeringsteknologier 25
Antifuse Unprogrammed antifuses Logic 1 a Pull-up resistors b NOT AND y = 1 (N/A) NOT Programmed antifuses Logic 1 a Pull-up resistors b NOT AND y =!a b NOT INF3430-Programmeringsteknologier 26
Antifuse Programmed antifuses Logic 1 a Pull-up resistors b NOT AND y =!a b NOT INF3430-Programmeringsteknologier 27
Floating-gate ((E)EPROM/FLASH) Prinsipp: Konfigurasjon lagres i krets i form av offset på gateinngangene til pass-transistorer. 3 typer programmering/sletting: UV-lys (EPROM) Høy spenning (EEPROM) Logisk spenning (FLASH) Fordeler Kan reprogrammeres Permanent, men re-programerbar Mer kompakt teknologi enn SRAM Ulemper Tidkrevende programmering INF3430-Programmeringsteknologier 28
EPROM INF3430-Programmeringsteknologier 29
Prinsipp: SRAM SRAM-minne inne i FPGA lagrer kretsens konfigurasjon Fordeler Kan programmeres uendeling mange ganger Kan lett deles mellom flere design Trenger ikke spesiell prosess Ulemper Plassoverhead (SRAM-celle med 5 transistorer) Flyktig minne (må lagre konfigurasjonen i eksternt permanent minne) INF3430-Programmeringsteknologier 30
Programmeringsteknologier for programmerbar logikk Technology Symbol Predominantly associated with... Fusible-link SPLDs Antifuse FPGAs EPROM E 2 PROM/ FLASH SRAM SRAM SPLDs and CPLDs SPLDs and CPLDs (some FPGAs) FPGAs (some CPLDs) Hvilke prog. logikk familier anvender typisk teknologiene? INF3430-Programmeringsteknologier 31
Programmeringsteknologier Feature SRAM Antifuse E2PROM / FLASH Technology node State-of-the-art One or more generations behind One or more generations behind Reprogrammable Yes (in system) No Yes (in-system or offline) Reprogramming speed (inc. erasing) Fast ---- 3x slower than SRAM Volatile (must be programmed on power-up) Yes No No (but can be if required) Requires external configuration file Yes No No Good for prototyping Yes (very good) No Yes (reasonable) Instant-on No Yes Yes Acceptable IP Security Very Good Very Good Size of configuration cell Power consumption (especially when using bitstream encryption) Large (six transistors) Medium Very small Low Medium-small (two transistors) Medium Rad Hard No Yes Not really INF3430-Programmeringsteknologier 32
Access datatyper Benyttes der størrelsen av data ikke er kjent på forhånd Dynamisk allokering av data Definerer pekere til data Benyttes for å lage en kompleks sammenheng mellom datatyper Scalare og composite datatyper ikke tilstrekkelig F.eks. lenka lister Benyttes i modellering/testbenker INF3430-Access datatyper 33
Deklarering og allokering count 0 count 10 INF3430-Access datatyper 34
Bruk av record datatyper INF3430-Access datatyper 35
Bruk array datatyper INF3430-Access datatyper 36
Lenka lister INF3430-Access datatyper 37
Lenka lister INF3430-Access datatyper 38
Lenka lister INF3430-Access datatyper 39
Lage stimuli ved lenka lister INF3430-Access datatyper 40
Søking i lenka lister INF3430-Access datatyper 41
Søking i lenka lister INF3430-Access datatyper 42
De-allokering Når vi definerer en accesstype får vi automatisk dannet en procedyre deallocate INF3430-Access datatyper 43
De-allokering INF3430-Access datatyper 44