Open-Source nástroje pro práci s FPGA

Podobné dokumenty
FPGA intimně. Marek Vašut March 6, 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

FPGA + mikroprocesorové jádro:

Když procesor nestačí, FPGA zaskočí

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Návrh. číslicových obvodů

SYSTÉMY NAČIPU MI-SOC

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

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

1. Seznamte se s výukovou platformou FITkit (

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

9. Praktická verifikace

7. Popis konečného automatu

Vytvoření nového projektu ve vývojovém prostředí Quartus II Version 9.1 Servise Pack 2

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

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


Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů:

Programovatelná logika

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

12. VHDL pro verifikaci - Testbench I

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

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y. Rovnicí y = x 1. x 0. Přiřazení signálů: ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

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

Číslicové obvody a jazyk VHDL

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

Simulace číslicových obvodů na hradlové úrovni: model návrhu Jakub Šťastný ASICentrum, s.r.o. Katedra teorie obvodů FEL ČVUT Praha

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

Vývoj a testování elektronických řídicích jednotek pro automobily

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

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

VÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

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

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

OPERAČNÍ PROGRAM PRAHA ADAPTABILITA & EU:

PROGRAMOVATELNÉ LOGICKÉ OBVODY

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Organizace předmětu, podmínky pro získání klasifikovaného zápočtu

Linux na prapodivných deskách. LinuxDays 2017, Lenka Kosková Třísková Technická univerzita v Liberci

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Základní logická hradla, Booleova algebra, De Morganovy zákony Student

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE

Příklady popisu základních obvodů ve VHDL

XC3000(A) / XC3100(A)

Inteligentní řízení strojů s portfoliem u-mation Řešení pro automatizaci a digitalizaci Let s connect. Automatizace a digitalizace

Vývoj zařízení Modbus TCP na technologii FPGA

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

PicoBlaze lekce 1: assembler, C překladač a simulační prostředí Jiří Svozil, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

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

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém


MATLAB a Simulink R2015b

Úvod do jazyka VHDL. Jan Kořenek Návrh číslicových systémů

Návrh ovládání zdroje ATX

GENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK)

Návod k obsluze výukové desky CPLD

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

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

Boundary scan Testování SoC a NoC

Násobičky, Boothovo překódování. Demonstrační cvičení 7

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2

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

Digitální technika. Jazyk VHDL, základy návrhu. Ing. Jakub Št astný, Ph.D. 1

Processing, p5.js a HomeLESS. Ladislav Hagara, Miroslav Lábr, Nikola Fečo

Odporúčaná literatúra k predmetu PIO

Návrh obvodů založených na programovatelných hradlových polích

První kroky s METEL IEC IDE

11. Přehled prog. jazyků

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

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

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

Návod na použití programu 8051 IDE

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Matematika v programovacích

Maturitní témata - PRT 4M

Centrum kompetence automobilového průmyslu Josefa Božka - AutoSympo a Kolokvium Božek až , Roztoky -

Paměti Flash. Paměti Flash. Základní charakteristiky

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

Virtuální ověřování výroby Robotika Process Simulate Virtual Commissioning Virtuelle Inbetriebnahme

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

Příloha č. I: Schéma zapojení vývojové desky PVK-PRO

Tlačítka. Konektor programování

Honeywell & Masarykova univerzita v Brně

DYNAMICKÁ REKONFIGURACE S ATMEL FPSLIC

Virtuální instrumentace v experimentech jaderné fyziky - Seznam přístrojů zakoupených z projektu FRVŠ č. 1516/2011

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

Řídicí systém pro každého

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

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.

VY_32_INOVACE_INF.19. Inkscape, GIMP, Blender

Kryptoanalýza šifry PRESENT pomocí rekonfigurovatelného hardware COPACOBANA

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Moderní nástroje pro vývoj elektronických řídicích jednotek

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

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

Transkript:

6. Listopad, 2016

Marek Vasut Software engineer at DENX S.E. since 2011 Embedded and Real-Time Systems Services, Linux kernel and driver development, U-Boot development, consulting, training Versatile Linux kernel hacker Custodian at U-Boot bootloader oe-core contributor

Struktura přednášky Úvod do technologie FPGA Generování obsahu FPGA, od HDL k bitstreamu: Nástroje pro Analýzu a Syntézu Place and Route Assembler Simulace a visualizace Ukázka Problém open-source nástrojů pro FPGA

FPGA Field Programmable Gate Array Vysokorychlostní programovatelná logika Mnoho různých I/O Extrémně paralelní architektura Často se používá pro: Digital Signal Processing (DSP) Paralelní zpracování dat Speciální hardwarová rozhraní Prototypování ASICů... Výrobci Xilinx, Altera, Lattice, Microsemi...

Vintřní struktura BLUE Global interconnect GREEN Local interconnect RED Logic element

Programování FPGA Každý výrobce má vlastní nástroje: Altera Quartus, Xilinx Vivado/ISE, Lattice Diamond,... Nástroje jsou obecně closed-source Flow je velmi podobný: Analysis and Synthesis Pack, Place and Route Assembler Timing Analysis Simulation and Visualisation HDL Netlist Netlist Technology Technology Bitstream Analýza časování designu Test požadavků na časování Simulace a analýza designu na stanici

Analýza a syntéza HDL Netlist Model chování Schéma obvodu Analýza Parsování HDL, validace,... Synthesis Naparsované HDL do Netlistu Nástroje: Icarus Verilog Odin II Yosys

Icarus Verilog Nástroj pro simulaci/překlad/syntézu HDL GPL licence (s vyjímkou pro pluginy) Podpora pluginů Vstup: Verilog 2005 Většina standardu implementována Aktivně se používá Aktivní vývoj System Verilog Podobná podpora jako Verilog 2005 VHDL Omezená podpora Výstup: VVP Mezikód pro simulaci Verilog Minimalizace/zjednodušení VHDL Překlad Gate-level netlist odebráno ve verzi 0.9.1 Website: http://iverilog.icarus.com/

Odin II Framework pro syntézu HDL s podporou visualizace MIT licence Vstup: Verilog BLIF netlist z následujících fází Výstup: BLIF Netlist Funguje přímo s VPR Použitelné pro syntézu ASICů i FPGA Odkazy: Website: https://code.google.com/archive/p/odin-ii/ Git: https://github.com/verilog-to-routing/ vtr-verilog-to-routing/tree/master/odin_ii

Berkeley abc Optimalizace/minimalizace množství logiky Většinou součást nástroje pro syntézu Vstup: BLIF netlist Výstup: BLIF netlist

Yosys Soubor nástrojů pro syntézu HDL ISC licence Vstup: Verilog 2005 BLIF netlist Výstup: Zjednodušený Verilog BLIF/EDIF/... netlist Vestavěná minimalizace/optimalizace s abc Podporuje namapování (překryv s PnR): Knihovny ASICových buněk Xilinx 7-series FPGA Lattice ice40 FPGA Website: http://www.clifford.at/yosys/

Place and Route Netlist Technology-mapped netlist Skládá se z více podkroků: Pack Elementy netlistu sdruženy do větších bloků Place Bloky umístěny do FPGA Route Naroutování interconnectu mezi bloky Nástroje: Arachne PnR VPR

Arachne PnR Place and Route nástroj pro ice40 FPGA Spolupracuje přímo s Yosys Vstup: Technology mapped netlist z Yosys Výstup: Textová reprezetace bitstreamu Website: https://github.com/cseed/arachne-pnr

VPR Versatile Placement and Routing Nástroj pro Pack, Place, Route Nyní součást VtR (Verilog to Routing) Velmi flexibilní Funguje s jakoukoli FPGA technologii Intenzivně se využívá ve výzkumu FPGA Funguje i s komerčními FPGA nástroji Website: http://www.eecg.toronto.edu/~vaughn/vpr/vpr.html

Assembler Placed/Routed netlist Bitstream Technologie nemá dostupnou dokumentaci Tento krok má nejméně nástrojů Nástroje: IcePack

IcePack Open-Source assembler pro ice40 FPGA Součást projektu IceStorm Textová reprezentace bitstreamu binární bitstream Website: http://www.clifford.at/icestorm/

Celé design flows Zmíněné nástroje lze sestavit do kompletního flow Flow které přeloží HDL to bitstreamu: IceStorm

IceStorm Flow z Verilogu do Bitstreamu Specifické pro Lattice ice40 FPGA Nástroje: Yosys Analysis and Synthesis Arachne PnR Place and Route IcePack Bitstream generation Další nástroje: IceProg Programování FPGA IceTime Timing analysis Website: http://www.clifford.at/icestorm/

IceStorm demo 1 Použití IceStorm, Gray counter, Top module 1 module top ( 2 input hwclk, 3 output led1, 4 output led2, 5 output led3, 6 output led4, 7 output led5, 8 output led6, 9 output led7, 10 output led8 11 );

IceStorm demo 2 Použití IceStorm, Gray counter, Top module 1 /* Counter register */ 2 reg [7:0] count = 8'b0; 3 /* Grey counter implementation */ 4 assign led1 = count[0] ^ count[1]; 5 assign led2 = count[1] ^ count[2]; 6 assign led3 = count[2] ^ count[3]; 7 assign led4 = count[3] ^ count[4]; 8 assign led5 = count[4] ^ count[5]; 9 assign led6 = count[5] ^ count[6]; 10 assign led7 = count[6] ^ count[7]; 11 assign led8 = count[7]; 12 /* Increment counter */ 13 always @(posedge hwclk) 14 count <= count + 1; 15 endmodule

IceStorm demo 3 Použití IceStorm, Gray counter, Mapování pinů 1 set_io --warn-no-port led1 B5 2 set_io --warn-no-port led2 B4 3 set_io --warn-no-port led3 A2 4 set_io --warn-no-port led4 A1 5 set_io --warn-no-port led5 C5 6 set_io --warn-no-port led6 C4 7 set_io --warn-no-port led7 B3 8 set_io --warn-no-port led8 C3 9 set_io --warn-no-port hwclk J3

IceStorm demo 4 Použití IceStorm, Sestavení a programování 1 $ yosys -p "synth_ice40 -top top -blif top.blif" top.v 2 $ arachne-pnr -d 8k -P ct256 \ 3 -o top.txt -p pinmap.pcf top.blif 4 $ icepack top.txt top.bin 5 $ iceprog top.bin

Simulace a visualizace HDL je simulováno na vývojové stanici Lze aplikovat triggery pro různé podmínky Nástroje: ghdl Icarus Verilog Verilator

ghdl Simulátor VHDL Překládá VHDL do nativního kódu Používá GCC/LLVM/vestavěný backend pro generování kódu Rychlejší než interpretovaný simulátor Výstup: VCD (Value Change Dump) Vhodný pro Verilog ghdl waveform Nativní formát, vhodnější pro VHDL Website: http://ghdl.free.fr/

Verilator Syntéza Verilogu do C++ Verilator provádí optimalizace během syntézy Vstup: Verilog Verilog 2005 Podporuje pouze podmnožinu System Verilog Podporuje pouze podmnožinu Website: http://www.veripool.org/wiki/verilator

Icarus Verilog Primárně simulátor a překladač HDL je přeloženo do mezikódu VVP Nástroj vvp interpretuje VVP Extrémně užitečný pro psaní testbenchů Vizualizace výstupu: GTKWave Website: http://iverilog.icarus.com/

Icarus Verilog Demo 1 Použití iverilog, Gray counter, Testbench 1 module top_tb (); 2 3 reg clk; 4 wire led1; 5 wire led2; 6 wire led3; 7 wire led4; 8 wire led5; 9 wire led6; 10 wire led7; 11 wire led8;

Icarus Verilog Demo 2 Použití iverilog, Gray counter, Testbench 1 top top ( 2.hwclk(clk), 3.led1(led1), 4.led2(led2), 5.led3(led3), 6.led4(led4), 7.led5(led5), 8.led6(led6), 9.led7(led7), 10.led8(led8) 11 );

Icarus Verilog Demo 3 Použití iverilog, Gray counter, Testbench 1 initial begin 2 $dumpfile("top_tb.lxt"); 3 $dumpvars(0, top); 4 clk = 1'b0; 5 repeat(1000) begin 6 #1 clk = ~clk; 7 #1 clk = ~clk; 8 end 9 end 10 11 endmodule

Icarus Verilog Demo 4 Použití iverilog, Gray counter, spuštění testu: 1 iverilog -o top.vvp top_tb.v top.v 2 vvp top.vvp -lxt2 3 gtkwave top_tb.lxt

GTKWave Nástroj pro visualizaci Podpora mnoha formátů VCD, LXT, FST,... Funguje s ghdl, Icarus Verilog... Website: http://gtkwave.sourceforge.net/

Proč jsou open-source FPGA nástroj problém? Neexistující dokumentace Neochota vypustit proprietární algoritmy Nevole a strach ze strany výrobců IP

DeBit Pokus o dokumentaci Altera (CII) a Xilinx FPGA Neaktivní Chybí textová dokumentace, pouze kód Mnoho kryptického C Podporuje stará FPGA Částečná podpora dumpování obsahu bitstreamu

Konec Děkuji za pozornost! Kontakt: Marek Vasut <marex@denx.de>