fpga intimn e - installfest fileobsah i uvod do fpga i open-source nastroje pro praci s fpga i...

28
FPGA intimnˇ e Marek Vaˇ sut <[email protected]> March 6, 2016 Marek Vaˇ sut <[email protected]> FPGA intimnˇ e

Upload: others

Post on 30-Aug-2019

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

FPGA intimne

Marek Vasut <[email protected]>

March 6, 2016

Marek Vasut <[email protected]> FPGA intimne

Page 2: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Marek Vasut

I Custodian at U-Boot bootloader

I Linux kernel hacker

I oe-core contributor (Yocto/OE/Poky)

I FPGA enthusiast

Marek Vasut <[email protected]> FPGA intimne

Page 3: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Obsah

I Uvod do FPGA

I Open-Source nastroje pro praci s FPGA

I Podrobnosti technologie FPGA

I Reverse-engineering FPGA prakticky

Marek Vasut <[email protected]> FPGA intimne

Page 4: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

FPGA

I Zkratka pro Field-Programmable Gate ArrayI Programovatelny obvod umoznujıcı implementovat

uzivatelskou logickou funkciI Y = f (A0, . . . ,An) A0, . . . ,An ∈ {0, 1};Y ∈ {0, 1}∗

Marek Vasut <[email protected]> FPGA intimne

Page 5: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Motivace

Co lze s PLD delat?

I Blikat LED :-)

I Samplovanı rychlych deju (napr. z ADC)

I Generovani rychlych deju (napr. pro DAC)

I Implementace obskurnıch sbernic a protokolu

I Rychle paralelnı transformace (napr. obrazu)

I . . .

I Syntetizovat CPU a nabootovat napr. Linux

I Existuje model ARM (arm7tdmi, arm9, . . . )I Existuje model SuperH2 (J-core, J2)I Existuje model OpenRISC, RISC-V, . . .I Existuje model m68k, Z80, MOS6502I Existuje model i486SX (ao486), Pentium (v586) . . .

Marek Vasut <[email protected]> FPGA intimne

Page 6: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Historie PLD v kostce

I 196x: Uzitı PROM pro implementaci logicke funkce

I 1970: TMS2000 – programovanı pri vyrobe pomoci masky

I 197x: Signetics 82S100 PLA

I 1978: MMI PAL

I 1984: Altera EP300 / 1985: Xilinx XC2064

I 1985: Lattice GAL

Marek Vasut <[email protected]> FPGA intimne

Page 7: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Struktura FPGA

I Zalozeno na LUT a SRAM:

I Nejmensı blok je LE(logic element)

I Sdruzeno do LAB(logic array block)

I LAB propojeny pres PI(programmableinterconnect)

I Komunikace s FPGA presIOB (I/O block)

I Specialnı bloky:I Block RAMI DSPI SerDes, PCIe, . . .

W.T.Freemanhttp://www.vision.caltech.edu/CNS248/Fpga/fpga1a.gif

CC BY 2.5: http://creativecommons.org/licenses/by/2.5/

Marek Vasut <[email protected]> FPGA intimne

Page 8: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

FPGA design flow

Synteza bitstreamu pro FPGA se sklada z nekolika kroku:

I Analysis and synthesis

I Place and route

I Assembler

I Timing analysis, . . .

Marek Vasut <[email protected]> FPGA intimne

Page 9: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

FPGA bitstream

I Primarni imageI Mnoho informaciI Muze byt velmi odlisny od FPGA image

I Sekundarni imageI Vetsinou blizky technologiiI Hlavicka + raw bitstreamI Mnoho ruznych sekundarnich formatu

I Lze konvertovat primarni na sekundarni

Marek Vasut <[email protected]> FPGA intimne

Page 10: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Lattice iCE40

iCE40 IceStick

I Open-Source toolchain – Project IceStorm

I iCE40-LP1K. . . 8K , iCE40-HX1K. . . 8K

Lattice IceStick Olimex iCE40HX1K-EVB

Marek Vasut <[email protected]> FPGA intimne

Page 11: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Projekt IceStorm

Open-Source toolchain pro Lattice iCE40 FPGA

I Yosys – Verilog synthesishttp://www.clifford.at/yosys/

I Arachne PnR – Place and routehttps://github.com/cseed/arachne-pnr

I IceTools – Assembler, timing analysis, . . .http://www.clifford.at/icestorm/

Marek Vasut <[email protected]> FPGA intimne

Page 12: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Yosys

I Verilog (2005) synthesis suite

I Konvertuje Verilog/BLIF/. . . na BLIF/EDIF/Verilog/. . .

I Obsahuje nastroje pro formalnı verifikace designu

I Obsahuje nastroje pro optimalizace designu

I Podporuje mapovanı na standardnı ASIC bunky

I Podporuje mapovanı na Xilinx 7. generace

I Podporuje mapovanı na Lattice iCE40

Marek Vasut <[email protected]> FPGA intimne

Page 13: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Arachne PnR

I Place and Route pro iCE40

I Vstup je BLIF netlist(Berkeley Logic Interchange Format)

I Vystup je konfigurace iCE40 v ASCII formatu

I Mapovanı vstupu na technologii iCE40

I Pouzıva se navıc PCF soubor pro I/O

Marek Vasut <[email protected]> FPGA intimne

Page 14: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

IceStorm tools

I Nastroje a dokumentace pro iCE40 FPGA

I Konverze bitstreamu mezi binarnı a textovou reprezentacı

I Konverze textove reprezentace na netlist

I Ruzne pomocne nastroje

I Assembler pro iCE40

Marek Vasut <[email protected]> FPGA intimne

Page 15: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Ostatni FPGA – Xilinx

I DeBit – https://code.google.com/archive/p/debit/

I Dekoder bitstreamu pro starsi Xilinx FPGA

I Chybi dokumentace bitstreamu

I Tragicka kvalita kodu

Marek Vasut <[email protected]> FPGA intimne

Page 16: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Ostatni FPGA – Altera

I DeBit – https://code.google.com/archive/p/debit/

I Rudimentarni podpora pro Cyclone II

I Projekt nejevi znamky zivota

Marek Vasut <[email protected]> FPGA intimne

Page 17: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

RE FPGA

Jak na to?

I Pripravte se na zdlouhavy proces

I Proces je vypocetne narocny

I Radeji pouzijte male a levne FPGA

I FPGA je mozne znicit

I Vzdy rozebirat pouze jednu komponentu flow

Marek Vasut <[email protected]> FPGA intimne

Page 18: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Altera FPGA

I Analysis and Synthesis lze pomoci gHDL

I Place and Route lze pomoci VPR

I Assembler neexistuje

Marek Vasut <[email protected]> FPGA intimne

Page 19: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Structura FPGA

Altera Cyclone II EP2C20 Floor Plan

Marek Vasut <[email protected]> FPGA intimne

Page 20: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Structura FPGA – Detail

Altera Cyclone II detail

LAB – Logic Array Block M9K – Memory BlockDSP – DSP Block I/O – I/O BlockPP – Controller Block empty – Empty block

Marek Vasut <[email protected]> FPGA intimne

Page 21: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Structura LAB

Altera Cyclone LAB

Marek Vasut <[email protected]> FPGA intimne

Page 22: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Structura LAB

Altera Cyclone IV LAB

LE – LE slice CTL – Control logic

Marek Vasut <[email protected]> FPGA intimne

Page 23: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Structura LE

Altera Cyclone II LE

Marek Vasut <[email protected]> FPGA intimne

Page 24: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Structura LE

Altera Cyclone IV LE

Marek Vasut <[email protected]> FPGA intimne

Page 25: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

RE LE

I LUT je velmi snadno lokalizovatelna

I Design tools obsahuji nastroje pro ECO(Engineering Change Order)

I n-krat zkompilovat design, hledat zmeny

I Lze si vytvorit predstavu o organizaci bitstreamu

I Pomoci ECO lze take najit muxy

I Lze odhadnout velikost LE slice a LAB slice

I Control block lze RE podobne jako LE

Marek Vasut <[email protected]> FPGA intimne

Page 26: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

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

[...]

Marek Vasut <[email protected]> FPGA intimne

Page 27: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

RE Interconnect

I O interconnectu existuje mnoho paperu

I Aktivni research v oblasti konektivity v FPGA

I FPGA obsahuji mnoho specialnich propojeni

I Mnoho driveru se specialnima vlastnostma

I Presne identifikovat bity konfigurujici interconnect je problem

I Spatna konfigurace muze poskodit FPGA

Marek Vasut <[email protected]> FPGA intimne

Page 28: FPGA intimn e - InstallFest fileObsah I Uvod do FPGA I Open-Source nastroje pro praci s FPGA I Podrobnosti technologie FPGA I Reverse-engineering FPGA prakticky Marek Va sut

Konec

Dekuji za pozornost!

Kontakt: Marek Vasut <[email protected]>

Marek Vasut <[email protected]> FPGA intimne