Tomáš Martínek martinto@fit.vutbr.cz Technologie FPGA Tomáš Martínek martinto@fit.vutbr.cz.

Slides:



Advertisements
Podobné prezentace
HRADLOVÁ POLE REKONFIGUROVATELNÁ ZA PROVOZU ZAŘÍZENÍ Soběslav Valach Ústav automatizace a měřicí techniky, FEKT, VUT Brno, Czech Republic.
Advertisements

Digitální učební materiál
ALTERA Cyclone II 4608 – LE až 1152 Kbitů RAM konfigurace pomocí sériového rozhraní podpora více I/O standardů až 4 PLL až 16 globálních hodin podpora.
Otázky k absolutoriu HW 1 - 5
Hardwarová implementace Petriho sítí Vlastní HW implementace a syntéza.
Klopný obvod JK.
Tato prezentace byla vytvořena
Tato prezentace byla vytvořena
Obchodní akademie, Ostrava-Poruba, příspěvková organizace
16 - Binární logika Logické operace v dvouhodnotové algebře. Přípustné hodnoty proměnných jsou teda pouze logická 0 (FALSE - nepravdivý) a logická 1 (TRUE.
Václav Bartoněk, 6. G MěVG Klobouky u Brna
LOGICKÉ ŘÍZENÍ GEORGE BOOLE
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
PicoBlaze, MicroBlaze, PowerPC
Základy mikroprocesorové techniky
UČÍME V PROSTORU Název předmětu: Název a ID tématu: Zpracoval(a): Automatizační technika Programovatelné automaty – technické vybavení (EL52) Ing. Zuzana.
Tato prezentace byla vytvořena
Diagnostika počítačů DGP_09 Prof. Ing. Karel Vlček, CSc. Katedra Informatiky, FEI, VŠB - TUO.
Klopné obvody pro realizaci čítačů a registrů
KOMBINAČNÍ LOGICKÉ FUNKCE
Informatika / …o počítači (základní pojmy, jednoduché představy) 2006.
Kombinační logické obvody
FPGA Actel – PLICE based Semestrální práce z předmětu AP Vypracoval: Zdeněk Suchomel
Provedení logických obvodů
Jan Hrabal ME4B Kombinačně logické obvody. Kodér Kodér má …………. Kdy má okamžité hodnoty na vstupech ? Chování lze popsat …………….. 1) 2) To lze zapsat do.
Kombinační logické obvody
Von Neumannovo schéma.
Název školyIntegrovaná střední škola technická, Vysoké Mýto, Mládežnická 380 Číslo a název projektuCZ.1.07/1.5.00/ Inovace vzdělávacích metod EU.
Logické funkce Vojtěch Dědek Vojtěch Dědek. Jména funkcí základní:základní: Not,AND,OR,XORNot,AND,OR,XOR Předpony :Předpony : N když je funkce negovaná,N.
Jaroslav Krahula.  OSC - ? ROM - ? RAM - ? Č/Č - ? CPU - ? ŘS - ? SP - ? LPT -?
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Kombinační logické obvody
Systém prioritních front pro vysokorychlostní síťová zařízení Jan Pazdera 2005.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Popis obvodu 8051 Ondřej Šebesta.
Popis obvodu 8051.
Marek Malík a František Černý, ME4A, 2012
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_ENI-2.MA-17_Číslicový obvod Název školyStřední odborná škola a Střední odborné učiliště,
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
5.7 Druhy elektrotechnických schémat
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Milan Ptáček, Robert Lufinka, Oldřich Nič 2. projekt - sběrnice.
David Rozlílek Me4B. ? ? ? ?? Jaká paměť tvoří paměť programu ………… ? EA … kde je logická 1 a kde logická 0 ……….? ? ….. Kde je vnější a kde vnitřní paměť……….?
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Mikroprocesor.
Kombinační logické obvody
ALTERA Stratix – LE až 7427 Kbitů RAM tři bloky RAM pamětí rychlé DSP bloky až 12 PLL (4+8 rychlých) až 16 globálních hodin a 22 zdrojů podpora.
Poloviční a úplná sčítačka
XILINX 3000, 4000 Obvody 2. generace FPGA 0,25  m technologie až hradel frekvence do 100 MHz Minule:
Kombinační logické obvody
ALTERA Flex – 1960 LE − hradel třístavový I/O standard Napájení 3,3V nebo 5V přehled:
Programovatelné automaty Popis PLC 02
Přenosové soustavy VY_32_INOVACE_pszczolka_ Synchronní čítač Tento výukový materiál byl zpracován v rámci projektu EU peníze středním školám -
Digitální signálový procesor (DSP) Digitální signálový kontrolér (DSC) Blokové schéma mikroprocesroru.
Programovatelná logická pole. Pokud chceme realizovat určité funkce, pak se vždy jedná o nějakou předem specifikovanou součást či součásti, které jsou.
VY_32_INOVACE_CIT_10 Multiplexery.
Výukový materiál zpracován v rámci projektu
Kombinační logické obvody
ALU Aritmeticko-logická jednotka
Aritmetickologická jednotka
Petr Fodor.
Číslicová technika.
Logické funkce a obvody
Prezentace flash FPGA firmy ACTEL Vladimír Měsíček
VY_32_INOVACE_pszczolka_ Registry – paralelní, sériový
Číslicová technika.
Tato prezentace byla vytvořena
Tato prezentace byla vytvořena
Číslicová technika.
Informatika / …o počítači
Transkript prezentace:

Tomáš Martínek martinto@fit.vutbr.cz Technologie FPGA Tomáš Martínek martinto@fit.vutbr.cz

Obsah Hlavní výrobci FPGA Architektura Xilinx Spartan 3 CLB – Configuration Logic Block Block RAMs Embedded Multipliers Clock Management IOB Architecture Ostatní architektury Xilinx: Virtex II, Virtex II Pro, Virtex 4

Hlavní výrobci FPGA Xilinx Altera Ostatní Spartan, Spartan II, Spartan 3E, Spartan 3 (FIT kit) Virtex, Virtex E, Virtex II, Virtex II Pro Virtex 4 Altera Stratix, Stratix II, Stratix GX Ostatní Atmel

Obsah Hlavní výrobci Architektura Xilinx Spartan 3 CLB – Configuration Logic Block Block RAMs Embedded Multipliers Clock Management IOB Architecture Ostatní architektury Xilinx: Virtex II, Virtex II Pro, Virtex 4

Architektura Xilinx Spartan 3 Matice konfigurovatelných logických bloků (CLB) Vestavěné blokové paměti BlockRAM a násobičky Obvody pro řízení hodinového signálu (DCM)

CLB – Konfigurovatelný blok logiky Obsahuje 4 x SLICE (menší logické elementy) 2 x nezávislé „carry“ řetězce pro konstrukci rychlých sčítaček Rychlé připojení k sousedním členům a připojení ke globální propojovací matici 192 - 8,320 CLB ve Spartan3

Architektura SLICE Obsahuje 2x Funkční generátor (FG) 2x Registr/Latch LUT RAM16 SRL16 2x Registr/Latch Multiplexory MUXF5, MUXFx “Carry” logiku Pomocná logika pro aritmetiku 768 - 33,280 SLICE ve Spartan3 => 1536 - 66,560 FG a registrů ORCY MUXF5 MUXFx CY Arithmetic Logic

FG jako Look-Up Table (LUT) Logické hradlo: 4 vstupy, 1 výstup Realizuje obecnou binární funkci čtyř proměnných Příklad:

FG jako Look-Up Table (LUT) Pomocí multiplexerů MUXF5 a MUXFx lze jednoduše vytvářet složitější funkce MUXFx je potom označován jako MUXF6 nebo MUXF7

LUT – komponenta ve VHDL Lze instancovat jako komponentu ve VHDL, ale obvykle se to neprovádí => Syntezátor je automaticky vytváří na základě behaviorálního nebe strukturálního popisu ve VHDL. Například z rovnice: Y <= A xor B and (C or D); se při syntéze může využít LUT se zadanou funkcí Existují 4 varianty podle počtu využitých vstupů: LUT1, LUT2, LUT3, LUT4 Knihovní prvek ve VHDL component LUT4 generic( INIT : bit_vector(15 downto 0) ) port( I0 : in std_logic; I1 : in std_logic; I2 : in std_logic; I3 : in std_logic; O : out std_logic ); end component;

FG jako paměťový prvek (RAM16) Paměť o velikosti 16x1 bitů Asynchronní čtení: po vystavení adresy jsou na výstup vystavena data, není potřeba čekat na hodinový signál Synchronní zápis: data jsou do paměti zapsána na vzestupnou hranu hodinového signálu WCLK Vhodná pro konstrukci menších pamětí RAM16

FG jako paměťový prvek (RAM16) Tvoření větších paměťových celků Pomocí MUXF5 a MUXFx lze jednoduše tvořit paměti 32x1 bit, 64x1 bit, atd. Paměti lze paralelně řadit vedle sebe a tvořit paměti o libovolné šířce dat

RAM16D – dvou-portová paměť Port A asynchronní čtení synchronní zápis Port B Vhodná např. pro konstrukci: FIFO pamětí (jeden zápisový port, druhý čtecí port) Registrového pole procesoru (pro jednu instrukci je potřeba načíst dva operandy z reg. pole) Jedna RAM16D je vytvořena ze dvou FG ! RAM16D

RAM16 – komponenta ve VHDL Paměť lze ve VHDL zapsat i behaviorálně například pomocí pole: type mem_type is array (mem_depth - 1 downto 0) of STD_LOGIC_VECTOR (d_width - 1 downto 0); signal mem : mem_type; Různé typy syntezátorů však nemusí být schopny rozpoznat správný typ paměti. Je potřeba nastudovat dokumentaci ke konkrétnímu syntezátoru nebo použít přímo komponentu RAM16 Single Port RAM16X1S, RAM32X1S, RAM64X1S, RAM128X1S Dual Port RAM16X1D, RAM32X1D, RAM64X1D component RAM16X1S port ( D : in std_logic; WE : in std_logic; WCLK : in std_logic; A0 : in std_logic; A1 : in std_logic; A2 : in std_logic; A3 : in std_logic; O : out std_logic ); end component;

FG jako posuvný registr (SRL16) Synchronní zápis, data v registru se posunou o jednu pozici Asynchronní čtení ze zadané pozice, výstup se objeví na Q Jednoduché rozšíření pomocí multiplexorů MUXF5 a MUXFx Vhodný například pro konstrukci zpožďovacích obvodů, generátorů náhodných čísel (LFSR), čítače libovolných sekvencí, apod. Velká úspora zdrojů oproti implementaci pomocí registrů umístěných ve SLICE SRL16

SRL16 – komponenta ve VHDL Lze zapsat také ve VHDL process (clk) begin if clk'event and clk = '1' then int_sig <= input & int_sig (0 to cycle - 2); end if; end process main; output <= int_sig(cycle -1); Některé typy syntezátorů opět nemusí tuto konstrukci rozpoznat správně Posuvný registr nesmí mít RESET, protože FG neumí resetovat svůj obsah. Posuvný registr s resetem bude automaticky sestrojen z běžných registrů Single SRL16, SRL16E, SRL16_1, SRL16E_1 Cascade SRLC16, SRLC16E, SRLC16_1, SRLC16E_1 component SRLC16E port ( D : in std_logic; CE : in std_logic; CLK : in std_logic; A0 : in std_logic; A1 : in std_logic; A2 : in std_logic; A3 : in std_logic; Q : out std_logic; Q15 : out std_logic ); end component;

„Carry“ logika Používá se pro konstrukci rychlých sčítaček, čítačů, komparátorů apod. Carry logika je v každém SLICE tvořena z: 2x multiplexor - MUXCY 2x hradlo xor - XORCY 1x hradlo or – ORY Příklad: Komparátor VHDL: Y <= ‘1’ when (A = B) else ‘0’; LUTy porovnávají části operandů MUXCY vytváří logický AND

„Carry“ logika – sčítačka, čítač Příklad: 4-bitová sčítačka VHDL: c <= a + b + cin; Tři stupně výpočet součtu bez znalosti výsledku z předchozího stupně (první XOR implementován v LUTu) přenos přenosového příznaku (implementován v MUXCY) výpočet koncového výsledku na základě předběžného výsledku a přenosu (implementován v XORCY) Implementace: 2 x SLICE Příklad: čítač vs. sčítačka argument B=0, CIN=1 výpočet bez prvního XORu

Block SelectRAM Paměťový blok o velikosti 18Kb Synchronní čtení i zápis (data jsou dostupná v následujícím hodinovém taktu) Jedno-portová i dvou-portová varianta, pro každý port lze nastavit jednu z následujících datových šířek: 16k x 1 bit 2k x 9 bits 8k x 2 bits 1k x 18 bits 4k x 4 bits 516 x 36 bits Vhodná pro: uložení většího objemu dat, paměť instrukcí pro procesor, konstrukce FIFO pamětí, FSM obvodů, apod. 4 – 104 BRAM ve Spartan3

BlockRAM – užitečné aplikace FIFO paměti zapisovací strana čtecí strana logika pro vyhodnocení stavu FULL, EMPTY FSM automaty v paměti je implementována logika následujícího stavu i výstupní funkce velký počet stavů, velká rychlost, jednoduchá možnost změny funkce

BlockRAM – komponenta ve VHDL Jedno-portová varianta RAMB16_S1 , RAMB16_S2, RAMB16_S4, RAMB16_S9, RAMB16_S18, RAMB16_S36 Dvou-portová varianta RAMB16_S1_S1, RAMB16_S1_S2, RAMB16_S1_S4, … , RAMB16_S2_S9, RAMB16_S36_S36 Lze nastavit počáteční obsah paměti pomocí parametru INIT_XX component RAMB16_S36 generic ( INIT_XX : bit_vector(255 downto 0)) port ( DI : in std_logic_vector(31 downto 0); DIP : in std_logic_vector(3 downto 0); ADDR : in std_logic_vector(8 downto 0); EN : in std_logic; WE : in std_logic; SSR : in std_logic; CLK : in std_logic; DO : out std_logic_vector(31 downto 0); DOP : out std_logic_vector(3 downto 0) ); end component;

Vestavěné násobičky Vestavěná násobička ušetří velké množství logiky a dosahuje vysoké rychlosti výpočtu 18 x 18 bitů vstupní operandy 36 bitů výstupní operand Podporuje znaménkové i neznaménkově operandy Lze kaskádně propojit pro vytvoření větších násobiček Vhodná pro DSP aplikace (operace konvoluce, multiple and acumulate) 4 – 104 MULT18x18 v Spartan3 VHDL komponenta component MULT18X18 port( A : in std_logic_vector (17 downto 0); B : in std_logic_vector P : out std_logic_vector (35 downto 0) ); end component;

Globální rozvod hodinového signálu Hodinový signál je přiváděn do FPGA skrze GCLK piny a rozváděn rovnoměrně po celém čipu pomocí speciálních hodinových rozvodů (rychlejší než běžné vodiče) Hodinový signál vstupuje přes BUFG/BUFGMUX komponent, které odstraní případné zkreslení a zákmity Hodiny lze upravovat pomocí speciálních DCM obvodů korekce zpoždění násobení, dělení fázový posun

DCM obvod DCM realizuje: Redukce zpoždění hod. signálu hod. signál distribuční sítě je převeden zpět na vstup CLKFB a je vyváženo jeho zpoždění Frekvenční syntézu násobení hodin. signálu dělení hodin. signálu obecný polynom M/N Fázový posun fixní fázový posun proměnný fázový posun 2 – 4 DCM ve Spartan3

Input/Output Block (IOB) Každý pin FPGA může být konfigurován jako vstup, výstup nebo obojí Jsou podporovány jednotlivé vodiče i diferenciální páry (pouze u dvou sousedních pinů) Je podporováno velké množství standardů: LVTTL, LVCMOS, PCI33, PCI66, PCI-X, GTL, HSTL, STTL, AGP LVDS, LDT, LVPECL Podpora Double data rate (DDR) Digitálně řízená impedance (DCI) – redukuje nutnost velkého množství ukončovacích rezistorů na desce 124 – 784 IOB ve Spartan3

Input/Output Block - DDR Každý IOB blok obsahuje 6 registrů pro podporu DDR 2 x pro vstup 2 x pro výstup 2 x pro řízení třístavového výstupu Příklad DDR komponenty ve VHDL: component FDDRRSE port ( Q : out std_logic; D0 : in std_logic; D1 : in std_logic; C0 : in std_logic; C1 : in std_logic; CE : in std_logic; R : in std_logic; S : in std_logic); end component;

Obsah Hlavní výrobci FPGA Architektura Xilinx Spartan 3 CLB – Configuration Logic Block Block RAMs Embedded Multipliers Clock Management IOB Architecture Ostatní architektury Xilinx: Virtex, Virtex II, Virtex II Pro, Virtex 4

Virtex, Virtex II Podpora třístavových sběrnic uvnitř FPGA - každý CLB blok obsahuje 2-3 třístavové budiče Možnost rekonfigurovat za běhu pouze část FPGA čipu Virtex - rekonfigurace řízena vnějším obvodem Virtex II – možnost řízení rekonfigurace čipu zevnitř FPGA – přístup pomocí ICAP (Internal Configuration Access Port) komponenty. Rekonfigurace nabízí nové možnosti – rozsáhlé aplikace lze rozdělit na několik částí a vykonávat je postupně. V čipu mohou běžet pouze ty části, které jsou v aktuální době potřeba – úspora zdrojů, energie.

Technologie Virtex II Pro RocketIO jsou speciální obvody, které umožňují multi-gigabitové připojení FPGA s externím zařízením nebo jiným FPGA Propustnost jednoho RocketIO až 3.125 Gbps Data z/do FPGA se v RocketIO serializují/deserialuzují, kódují pomocí kódování 8/10 a provádí se korekce hodinových signálů Podporuje velké množství standardů: 1Gb, 10Gb Ethernet Fibre Channel PCI Express 4-24 RocketIO obvodů na čipech s technologií Virtex II Pro

Technologie Virtex II Pro PowerPC procesorové jádro je umístěno přímo na čipu Architektura: 32-bitů RISC procesor od firmy IBM, 16kB datová a instrukční cache je uvnitř procesoru Pracovní frekvence až do 400 MHz Velmi výhodné pro aplikace, které kombinují hradlové pole s výkonným procesorem 1-2 PowerPC procesory na čipech s technologií Virtex II Pro

Technologie Virtex 4 Virtex 4 je vytváří 3 typy čipů podle cílového použití: Virtex-4 LX zaměřeno na aplikace vyžadující velké množství logiky, (obsahuje pouze logiku a paměti) Virtex-4 FX zaměřeno na komplexní vestavěné systémy (obsahuje PowerPC, RocketIO) Virtex-4 SX zaměřeno na DSP aplikace (rychlé násobičky, velké množství vestavěných multiply-acumulate bloků) 90 nm technologie, logika a paměti pracují až do 500MHz Vylepšené vlastnosti BlockRAM pamětí každých 8 bitů může mít svůj vlastní WE, podpora kaskádního zapojení paměti, vestavěná podpora pro konstrukci FIFO pamětí

Odkazy Xilinx: Spartan-3 FPGA Family: Complete Data Sheet, August, 2005 Xilinx: Virtex™Field Programmable Gate Arrays, April, 2001 Xilinx: Virtex-II Field-Programmable Gate Arrays, September, 2002 Xilinx: Virtex-II Pro™ Platform FPGAs: Complete Data Sheet, Aprip, 2004 Xilinx: Virtex-4 Family Overview, June 2005 Xilinx: Virtex-4 RocketIO Multi-Gigabit Transceiver, June 2005 Xilinx: XtremeDSP for Virtex-4 FPGAsUser Guide, October, 2005 Xilinx: PowerPC Processor Reference Guide, September, 2003 http://www.xilinx.com

Konec Děkuji za pozornost