FPGA intimně. Marek Vašut March 6, 2016

Podobné dokumenty
Open-Source nástroje pro práci s FPGA

Programovatelná logika

FPGA + mikroprocesorové jádro:

Když procesor nestačí, FPGA zaskočí

MODERNÍ TRENDY V PROGRAMOVATELNÉ LOGICE, APLIKACE V AUTOMATIZAČNÍ A MĚŘICÍ TECHNICE

PROGRAMOVATELNÉ LOGICKÉ OBVODY

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

XC3000(A) / XC3100(A)

Návrh. číslicových obvodů

Zákaznické obvody 1. ASIC 2. PLD 3. FPGA. Ondřej Novák O. Novák: CIE9 1

PROGRAMOVATELNÁ LOGICKÁ POLE

Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o.

KOEVOLUČNÍ ALGORITMUS V FPGA

6. Programovatelné struktury. PLA, PAL, PROM, GAL struktury

Profilová část maturitní zkoušky 2014/2015


Metody návrhu systémů na bázi FPGA

Integrované obvody. Obvody malé, střední a velké integrace Programovatelné obvody

SPARTAN - 3 Xilinx FPGA Device


Vysoká škola chemicko-technologická v Praze Fakulta chemicko-inženýrská Ústav fyziky a měřicí techniky

Profilová část maturitní zkoušky 2013/2014

SYSTÉMY NAČIPU MI-SOC

Profilová část maturitní zkoušky 2015/2016

Digitální návrh. Postup návrhu digitálních IO. Co to jsou HDL jazyky? Příklad Verilog kódu pro D klopný obvod

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

DMA jednotka pro BCE v systémech s AXI sběrnicí Zdeněk Pohl.

REKONFIGURACE FPGA. Božetěchova 1/2, Brno.

Systémy pro sběr a přenos dat

Softwarové rádio. Zpracoval: Ing. Jiří Sehnal

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ DIPLOMOVÁ PRÁCE

9. Praktická verifikace

PicoBlaze lekce 4: Aplikace pro výuku asembleru procesoru PicoBlaze Jiří Svozil, Jaroslav Stejskal, Leoš Kafka, Jiří Kadlec

Profilová část maturitní zkoušky 2017/2018

Miroslav Flídr Počítačové systémy LS /21- Západočeská univerzita v Plzni

Dělení pamětí Volatilní paměti Nevolatilní paměti. Miroslav Flídr Počítačové systémy LS /11- Západočeská univerzita v Plzni

Řadiče periferií pro vývojovou desku Spartan3E Starter Kit Jaroslav Stejskal, Jiří Svozil, Leoš Kafka, Jiří Kadlec.

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Workshop. Vývoj embedded aplikací v systému MATLAB a Simulink. Jiří Sehnal sehnal@humusoft.cz. info@humusoft.cz.

Technická univerzita v Liberci

PK Design. MB-S2-150-PQ208 v1.4. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 ( )

Témata profilové maturitní zkoušky

VŠB Technická Univerzita Ostrava Fakulta Elektrotechniky a Informatiky Katedra Informatiky. Srovnání vývojových prostředí pro návrh pomocí VHDL

Obsah ZÁKLADNÍ DESKA. O autorech 11 Úvod 13

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Téma 32. Petr Kotál

Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer

1. Seznamte se s výukovou platformou FITkit (

Vestavný modul pro počítačové vidění využívající hradlové pole

MSP 430F1611. Jiří Kašpar. Charakteristika

Principy činnosti sběrnic

Algoritmická syntéza. Rychlý návrh DSP systémů. Ing. Jakub Št astný, Ph.D.

Obvody Xilinx řady XC3000

Programování LEGO MINDSTORMS s použitím nástroje MATLAB a Simulink

Local Interconnect Network - LIN

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systém přerušení. České vysoké učení technické Fakulta elektrotechnická

VINCULUM VNC1L-A. Semestrální práce z 31SCS Josef Kubiš

VYHLEDÁNÍ NEJDELŠÍHO SHODNÉHO PREFIXU V FPGA

Novinky u zařízení pro sériovou komunikaci. Michal Kahánek

GENERÁTOR HLÍDACÍCH OBVODŮ PRO KOMUNIKAČNÍ PROTOKOLY XILINX FPGA

RTU jednotky a Ethernetové I/O. Program. Distribuované I/O moduly iologik E1200. Přehled vstupně výstupních jednotek Moxa

TIA na dosah Advanced Engineering System. SIMATIC PCS 7 Verze 8.01

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Systémy pro měření, diagnostiku a testování prototypů II. Odůvodnění vymezení technických podmínek podle 156 odst. 1 písm. c) ZVZ

Universální CNC stolní vrtačka

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)

Odporúčaná literatúra k predmetu PIO

Integrovaná střední škola, Sokolnice 496

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

Hardwarová realizace konečných automatů

Pohled do nitra mikroprocesoru Josef Horálek

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

... sekvenční výstupy. Obr. 1: Obecné schéma stavového automatu

FEL ČVUT Praha. Semestrální projekt předmětu X31SCS Struktury číslicových systémů. Jan Kubín

Integrované obvody. Obvody malé, střední a velké integrace Programovatelné obvody

METODY ČÁSTEČNÉ REKONFIGURACE PROGRAMOVATELNÝCH STRUKTUR PARTIAL RECONFIGURATION METHODS BASED ON PROGRAMMABLE STRUCTURES

IM151-8 PN/DP CPU 6ES7151-8AB00-0AB0

Zprovoznění kitu Xilinx Spartan-6 FPGA Industrial Video Processing Kit

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

PK Design. MB-ATmega16/32 v2.0. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (21.12.

7. Pracovní postupy. Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt

PŘÍLOHY. PRESTO USB programátor

karet Analogové výstupy (AO) (DIO) karty Zdroje informací

Převodník Ethernet ARINC 429

Prezentace do předmětu Architektury a použití programovatelných obvodů 2

Soft-PLC systémy ICP DAS se softwarem ISaGRAF

Popis programu: Popis přípon důležitých souborů: *.qpf projektový soubor Quartusu

eské vysoké u ení technické v Praze Fakulta elektrotechnická

Testování sekvenčních obvodů Scan návrh

Aplikovaná informatika

Cíl přednášky: Obsah přednášky:

TEMPO průmyslový panelový počítač

Petr Holášek / 1 of 21

NEXCOM Factory Řešení pro Automatizaci

Základní uspořádání pamětí MCU

VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU "HOST PC - TARGET PC" PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ

Virtuální přístroje. Matlab a Instrument Control Toolbox. J.Tomek, A.Platil

Transkript:

March 6, 2016

Marek Vašut Custodian at U-Boot bootloader Linux kernel hacker oe-core contributor (Yocto/OE/Poky) FPGA enthusiast

Obsah Úvod do FPGA Open-Source nastroje pro praci s FPGA Podrobnosti technologie FPGA Reverse-engineering FPGA prakticky

FPGA Zkratka pro Field-Programmable Gate Array Programovatelný obvod umožnující implementovat uživatelskou logickou funkci Y = f (A0,..., A n ) A 0,..., A n {0, 1}; Y {0, 1}

Motivace Co lze s PLD dělat? Blikat LED :-) Samplování rychlých dějů (např. z ADC) Generováni rychlých dějů (např. pro DAC) Implementace obskurních sběrnic a protokolů Rychlé paralelní transformace (např. obrazu)... Syntetizovat CPU a nabootovat např. Linux Existuje model ARM (arm7tdmi, arm9,... ) Existuje model SuperH2 (J-core, J2) Existuje model OpenRISC, RISC-V,... Existuje model m68k, Z80, MOS6502 Existuje model i486sx (ao486), Pentium (v586)...

Historie PLD v kostce 196x: Užití PROM pro implementaci logické funkce 1970: TMS2000 programování při výrobě pomoci masky 197x: Signetics 82S100 PLA 1978: MMI PAL 1984: Altera EP300 / 1985: Xilinx XC2064 1985: Lattice GAL

Struktura FPGA Založeno na LUT a SRAM: Nejmenší blok je LE (logic element) Sdruženo do LAB (logic array block) LAB propojeny přes PI (programmable interconnect) Komunikace s FPGA přes IOB (I/O block) Speciální bloky: Block RAM DSP SerDes, PCIe,... W.T.Freeman http://www.vision.caltech.edu/cns248/fpga/fpga1a.gif CC BY 2.5: http://creativecommons.org/licenses/by/2.5/

FPGA design flow Syntéza bitstreamu pro FPGA se skládá z několika kroků: Analysis and synthesis Place and route Assembler Timing analysis,...

FPGA bitstream Primarni image Mnoho informaci Muze byt velmi odlisny od FPGA image Sekundarni image Vetsinou blizky technologii Hlavicka + raw bitstream Mnoho ruznych sekundarnich formatu Lze konvertovat primarni na sekundarni

Lattice ice40 ice40 IceStick Open-Source toolchain Project IceStorm ice40-lp1k... 8K, ice40-hx1k... 8K Lattice IceStick Olimex ice40hx1k-evb

Projekt IceStorm Open-Source toolchain pro Lattice ice40 FPGA Yosys Verilog synthesis http://www.clifford.at/yosys/ Arachne PnR Place and route https://github.com/cseed/arachne-pnr IceTools Assembler, timing analysis,... http://www.clifford.at/icestorm/

Yosys Verilog (2005) synthesis suite Konvertuje Verilog/BLIF/... na BLIF/EDIF/Verilog/... Obsahuje nástroje pro formální verifikace designu Obsahuje nástroje pro optimalizace designu Podporuje mapování na standardní ASIC buňky Podporuje mapování na Xilinx 7. generace Podporuje mapování na Lattice ice40

Arachne PnR Place and Route pro ice40 Vstup je BLIF netlist (Berkeley Logic Interchange Format) Výstup je konfigurace ice40 v ASCII formátu Mapování vstupu na technologii ice40 Používá se navíc PCF soubor pro I/O

IceStorm tools Nástroje a dokumentace pro ice40 FPGA Konverze bitstreamu mezi binární a textovou reprezentací Konverze textové reprezentace na netlist Různé pomocné nástroje Assembler pro ice40

Ostatni FPGA Xilinx DeBit https://code.google.com/archive/p/debit/ Dekoder bitstreamu pro starsi Xilinx FPGA Chybi dokumentace bitstreamu Tragicka kvalita kodu

Ostatni FPGA Altera DeBit https://code.google.com/archive/p/debit/ Rudimentarni podpora pro Cyclone II Projekt nejevi znamky zivota

RE FPGA Jak na to? Pripravte se na zdlouhavy proces Proces je vypocetne narocny Radeji pouzijte male a levne FPGA FPGA je mozne znicit Vzdy rozebirat pouze jednu komponentu flow

Altera FPGA Analysis and Synthesis lze pomoci ghdl Place and Route lze pomoci VPR Assembler neexistuje

Structura FPGA Altera Cyclone II EP2C20 Floor Plan

Structura FPGA Detail Altera Cyclone II detail LAB Logic Array Block M9K Memory Block DSP DSP Block I/O I/O Block PP Controller Block empty Empty block

Structura LAB Altera Cyclone LAB

Structura LAB Altera Cyclone IV LAB LE LE slice CTL Control logic

Structura LE Altera Cyclone II LE

Structura LE Altera Cyclone IV LE

RE LE LUT je velmi snadno lokalizovatelna Design tools obsahuji nastroje pro ECO (Engineering Change Order) n-krat zkompilovat design, hledat zmeny Lze si vytvorit predstavu o organizaci bitstreamu Pomoci ECO lze take najit muxy Lze odhadnout velikost LE slice a LAB slice Control block lze RE podobne jako LE

Vysledek...EZ...BAAABBBBBAA......BAAABBBBBAA......QLLLLLLLLMDCDDDDDCCCC......SO..LLLLLLLLNDCDDDDDCCCC... +-----------------------------------+...so..llllllllnbaaabbbbbaa......qllllllllmbaaabbbbbaa......dcdddddcccc......ez...dcdddddcccc... L - top-side LUT table l - bottom-side LUT table [...] M/m - C input mux configuration (combinatorial mux #1) 0... input from external port 1... input from REGOUT signal [...] Z/Z - aclr signal enable -- 0:disabled 1:enabled [...]

RE Interconnect O interconnectu existuje mnoho paperu Aktivni research v oblasti konektivity v FPGA FPGA obsahuji mnoho specialnich propojeni Mnoho driveru se specialnima vlastnostma Presne identifikovat bity konfigurujici interconnect je problem Spatna konfigurace muze poskodit FPGA

Konec Děkuji za pozornost! Kontakt: