Open Source nástroje pro FPGA
Moderátor: Moderátoři
Open Source nástroje pro FPGA
Ahoj. Vždycky mě štvalo, že kvůli práci s FPGA musím rebootovat z Linuxu na Windows a používat tu několika GB obludu s uzavřeným kódem a od určitého vydání free verze záměrně zpomalenou.
Když jsem se snažil najít Open Source variantu nástrojů objevil jsem jen několik zmínek v diskusním fóru, že se tím zabývají na univerzitách v rámci výzkumu, ale pro běžné použití to není, protože výrobci tají popis bitstreamu a vnitřního uspořádání a než se reverzním inženýrstvím potřebné informace získají, daný čip se přestane vyrábět.
V posledních letech se ledy hnuly a nemožné se stává skutečností. Našel jsem spoustu odkazu a videí. Některá jsou v češtině. Nejlépe jsou podporovány FPGA od Lattice a částečně některé řady od Xilinx. Trochu mi kazí radost jen to, že preferovaným jazykem je Verilog na úkor VHDL, které jsem se kdysi učil a mám k němu literaturu a tutoriály. Jak se zdá, Verilog se stává použávanějším jazykem v praxi, tak mi asi nezbyde než se jej naučit.
Nejdříve videa v češtině
FPGA: Nebojte se hradlových polí (Tomáš Mudruňka)
LinuxDays 2015 - FPGA pro BFU - Marek Vašut
FPGA intimne (Marek Vašut)
Martin Hubáček: Jak na FPGA s open-source nástroji (horší kvalita zvuku)
Genetické vylepšování a aproximace hardware a software - Lukáš Sekanina
Zlepšení evolučními výpočty - Lukáš Sekanina
Anglicky
Open-Source Tools for FPGA Development - Marek Vašut
Open-Source FPGA tools, how and why?
35C3 - Snakes and Rabbits
Timothy Ansell - Xilinx Series 7 FPGAs Now Have a Fully Open Source Toolchain!
Taking nextpnr to the next level! - David Shah - ORConf 2019
Open Source FormalVerification in VHDL - Pepijn de Vos
Web
yosys
symbiflow.github.io
icestudio.io
icestorm
Icarus Verilog
GHDL
Migen
nMigen
Amaranth HDL (ex. nMigen)
enjoy-digital.fr
LiteX
Pepijn de Vos - Web
nightly builds of open source FPGA tools
MyHDL
Silice
VHDL <--> VERILOG translator
Open Source
ocean-logic vhd2vl
github vhd2vl
vhd2icestorm
github vhdlpp
Komerční
Synapticad V2V
I don’t often convert VHDL to Verilog but when I do
Will SymbiFlow ever run VHDL as it does Verilog and if not why?
Open Source IP jádra
opencores
LiteDRAM
Když jsem se snažil najít Open Source variantu nástrojů objevil jsem jen několik zmínek v diskusním fóru, že se tím zabývají na univerzitách v rámci výzkumu, ale pro běžné použití to není, protože výrobci tají popis bitstreamu a vnitřního uspořádání a než se reverzním inženýrstvím potřebné informace získají, daný čip se přestane vyrábět.
V posledních letech se ledy hnuly a nemožné se stává skutečností. Našel jsem spoustu odkazu a videí. Některá jsou v češtině. Nejlépe jsou podporovány FPGA od Lattice a částečně některé řady od Xilinx. Trochu mi kazí radost jen to, že preferovaným jazykem je Verilog na úkor VHDL, které jsem se kdysi učil a mám k němu literaturu a tutoriály. Jak se zdá, Verilog se stává použávanějším jazykem v praxi, tak mi asi nezbyde než se jej naučit.
Nejdříve videa v češtině
FPGA: Nebojte se hradlových polí (Tomáš Mudruňka)
LinuxDays 2015 - FPGA pro BFU - Marek Vašut
FPGA intimne (Marek Vašut)
Martin Hubáček: Jak na FPGA s open-source nástroji (horší kvalita zvuku)
Genetické vylepšování a aproximace hardware a software - Lukáš Sekanina
Zlepšení evolučními výpočty - Lukáš Sekanina
Anglicky
Open-Source Tools for FPGA Development - Marek Vašut
Open-Source FPGA tools, how and why?
35C3 - Snakes and Rabbits
Timothy Ansell - Xilinx Series 7 FPGAs Now Have a Fully Open Source Toolchain!
Taking nextpnr to the next level! - David Shah - ORConf 2019
Open Source FormalVerification in VHDL - Pepijn de Vos
Web
yosys
symbiflow.github.io
icestudio.io
icestorm
Icarus Verilog
GHDL
Migen
nMigen
Amaranth HDL (ex. nMigen)
enjoy-digital.fr
LiteX
Pepijn de Vos - Web
nightly builds of open source FPGA tools
MyHDL
Silice
VHDL <--> VERILOG translator
Open Source
ocean-logic vhd2vl
github vhd2vl
vhd2icestorm
github vhdlpp
Komerční
Synapticad V2V
I don’t often convert VHDL to Verilog but when I do
Will SymbiFlow ever run VHDL as it does Verilog and if not why?
Open Source IP jádra
opencores
LiteDRAM
Naposledy upravil(a) Zmije dne 09 bře 2023, 11:02, celkem upraveno 21 x.
Další literatura
P. Lafata, Úvod do jazyka VHDL I
P. Lafata, Úvod do jazyka VHDL II
P. Lafata, Úvod do jazyka VHDL III
Bruno Levy learn-fpga
Bastian Loher learn-fpga (Amaranth - nMigen version)
RTL Design with VHDL
Project-F
SURF VHDL
fpga4fun
fpga4student
Dipl. Implementace výpočtu FFT v obvodech FPGA a ASIC
Cosimulating Verilog and VHDL with CXXRTL
Linux on RISC-V with Open Hardware
Linux on RISC-V with Open Source Hardware (OSSummit Japan 2020)
Alchitry
FPGA Design Elements
FPGA Design Elements Github
Návrh číslicových filtrů
pyFDA
filterbuilder
Litex
Building a SoC with Litex
Litex - Le framework opensource
Jak přidat Avnet AES-KU040-DB-G do Litexu
Migen-Litex tutorial
LiteDRAM
LiteDRAM slides
P. Lafata, Úvod do jazyka VHDL I
P. Lafata, Úvod do jazyka VHDL II
P. Lafata, Úvod do jazyka VHDL III
Bruno Levy learn-fpga
Bastian Loher learn-fpga (Amaranth - nMigen version)
RTL Design with VHDL
Project-F
SURF VHDL
fpga4fun
fpga4student
Dipl. Implementace výpočtu FFT v obvodech FPGA a ASIC
Cosimulating Verilog and VHDL with CXXRTL
Linux on RISC-V with Open Hardware
Linux on RISC-V with Open Source Hardware (OSSummit Japan 2020)
Alchitry
FPGA Design Elements
FPGA Design Elements Github
Návrh číslicových filtrů
pyFDA
filterbuilder
Litex
Building a SoC with Litex
Litex - Le framework opensource
Jak přidat Avnet AES-KU040-DB-G do Litexu
Migen-Litex tutorial
LiteDRAM
LiteDRAM slides
Naposledy upravil(a) Zmije dne 09 bře 2023, 11:08, celkem upraveno 3 x.
Cokoliv, co může obsahovat vysokorychlostní přenos dat (>1Gb), tcp/ip stacky, PCI-E-like sběrnice, DSP zpracování.
Co vím v naší firmě, tak jakékoliv pokusy tohoto typu kvůli plnění termínů totálně shořeli.![Very Happy :D](./images/smilies/icon_biggrin.gif)
Prostě se jede Xilinx Vivado a pokud se dá koupit nějaké řešení, tak se to vezme, i když ten support stojí často dost na hovno.
Jsi ochotný tu tvoji sbírku materiálů nasdílet?
Co vím v naší firmě, tak jakékoliv pokusy tohoto typu kvůli plnění termínů totálně shořeli.
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Prostě se jede Xilinx Vivado a pokud se dá koupit nějaké řešení, tak se to vezme, i když ten support stojí často dost na hovno.
Jsi ochotný tu tvoji sbírku materiálů nasdílet?
Jenže vy víte, že za svoje úsilí ty prachy dostanete zpátky.
Tuhle jistotu běžný bastlíř nemá.
A proto se dodnes používaj orloje s deseti pouzdry 74xx.
(Pamatuj, tohle je Bastlírna !)
Tuhle jistotu běžný bastlíř nemá.
A proto se dodnes používaj orloje s deseti pouzdry 74xx.
(Pamatuj, tohle je Bastlírna !)
Sháním hasičák s CO2 "sněhový", raději funkční.
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
Záleží na tom, čemu říkáš profesionální použítí. Každý výrobek nutně nepotřebuje nejvyšší řady FPGA se speciálními bloky, navíc se bude dostupnost otevřených IP jader zlepšovat. Pokud s těmito nástroji jsou schopni udělat RISC-V procesor a rozjet na tom Linux, tak je to perfektní výsledek, na hranici toho co umožní free verze nástrojů od výrobců.
Před deseti lety nebylo z těchto nástrojů opensource nic. Možná se za několik (10, 15, ..) let výrobci FPGA vzpamatují a akceptují Open Source nástroje tak jak to to před 15 lety udělali výrobci procesorů s podporou překladače GCC a Linuxu.
Před deseti lety nebylo z těchto nástrojů opensource nic. Možná se za několik (10, 15, ..) let výrobci FPGA vzpamatují a akceptují Open Source nástroje tak jak to to před 15 lety udělali výrobci procesorů s podporou překladače GCC a Linuxu.
Naposledy upravil(a) Zmije dne 31 led 2023, 12:01, celkem upraveno 1 x.
Vysokorychlostní periferie to pravděpodobně nezvládá, DSP možná částečně. Myslím že je jen otázka času, kdy to bude umět.
Pro studenty a bastlíře je to ideální.
Že je FPGA pro bastliřské projekty overkil? Možná je, ale když je cena za desku se středně velkým FPGA méně než 100$, vývojové prostředí zdarma, tak proč se nenaučit něco nového a zajímavého. Oni ti "profíci" nepadají z nebe.
Open Source nástroje mají přidanou hodnotu v tom, že se člověk může podívat i pod kapotu, tam kam ho komeršní SW kvůli své uzavřenosti nepustí, tím získat hlubší vhled do problematiky než má majitel super drahého profi klikátka.
Pro studenty a bastlíře je to ideální.
Že je FPGA pro bastliřské projekty overkil? Možná je, ale když je cena za desku se středně velkým FPGA méně než 100$, vývojové prostředí zdarma, tak proč se nenaučit něco nového a zajímavého. Oni ti "profíci" nepadají z nebe.
Open Source nástroje mají přidanou hodnotu v tom, že se člověk může podívat i pod kapotu, tam kam ho komeršní SW kvůli své uzavřenosti nepustí, tím získat hlubší vhled do problematiky než má majitel super drahého profi klikátka.
Naposledy upravil(a) Zmije dne 31 led 2023, 12:46, celkem upraveno 10 x.
GHDL se zdá být použitelný alespoň na simulace kódu ve VHDL.
Na Ubuntu 18.04 bohužel není v repozitářích. Zkompiloval jsem ho podle skriptu a ještě doinstaloval GTKWave a editor Atom, který měl uvedený v prezentaci Martin Hubáček.
Našel jsem web FPGA simulace, blog Using GHDL to simulate VHDL a video Getting Started with VHDL on Linux (GHDL & GTKWave). Nevýhoda je špatná čitelnost kódu v malém oknu. Když už jsem to přepisoval, tak to dávám k dispozici.
ha.vhdl
ha_tb.vhdl
Příkazy
Na Ubuntu 18.04 bohužel není v repozitářích. Zkompiloval jsem ho podle skriptu a ještě doinstaloval GTKWave a editor Atom, který měl uvedený v prezentaci Martin Hubáček.
Kód: Vybrat vše
sudo apt install gtkwave atom
ha.vhdl
Kód: Vybrat vše
library ieee;
use ieee.std_logic_1164.all;
entity ha is
port (
a: in std_ulogic;
b: in std_ulogic;
o: out std_ulogic;
c: out std_ulogic
);
end ha;
architecture behave of ha is
begin
o <= a xor b;
c <= a and b;
end behave;
Kód: Vybrat vše
library ieee;
use ieee.std_logic_1164.all;
entity ha_tb is
end ha_tb;
architecture test of ha_tb is
component ha
port (
a: in std_ulogic;
b: in std_ulogic;
o: out std_ulogic;
c: out std_ulogic
);
end component;
signal a, b, o, c : std_ulogic;
begin
half_adder: ha port map(a => a, b => b, o => o, c =>c);
process begin
a <= 'X';
b <= 'X';
wait for 1 ns;
a <= '0';
b <= '0';
wait for 1 ns;
a <= '0';
b <= '1';
wait for 1 ns;
a <= '1';
b <= '0';
wait for 1 ns;
a <= '1';
b <= '1';
wait for 1 ns;
assert false report "Reached end of test";
wait;
end process;
end test;
Kód: Vybrat vše
# Kontrola syntaxe
ghdl -s ha.vhdl
ghdl -s ha_tb.vhdl
# Analýza
ghdl -a ha.vhdl
ghdl -a ha_tb.vhdl
# Build simulace
ghdl -e ha_tb
# Spuštění simulace
ghdl -r ha_tb
# Vytvoření vcd
ghdl -r ha_tb --vcd=ha.vcd
# Zobrazení
gtkwave ha.vcd
Celý problém s uzavřenými nástroji pro FPGA vězí v "zadním konci", tedy ve fyzickém návrhu. Ve Vivadu se tomu říká Place and Route a generování bitstreamu. Tohle totiž potřebuje hodně detailní informace o tom, jak je FPGA udělané, tolik, že by se prý ten obvod dal podle toho okopírovat. To nám aspoň tvrdili lidi z vývoje Xilinxu. Teď už asi architektura a obvodová technika jednotlivých výrobců zkonvergovaly natolik, že výrobci ty informace uvolňují. Následkem toho se hodně pracuje na různých alternativních návrhových systémech. Pokud já vím, poskytované informace jsou komplet snad právě jen u Lattice.
Že existují otevřené simulátory a "přední konec", tedy syntéza z RTL, není až takové překvapení. Algoritmy se vyvíjejí od osmdesátých let. Nicméně vrtat se v tom není příliš snadné, jsou to navrstvené heuristiky na problémy, které se exaktně nedají řešit ani náhodou.
Vivado funguje pod linuxem OK, aspoň nám ano. Je to hrozná obluda, ale to je hodně dáno právě knihovnami informací o jednotlivých čipech. A existují volné omezené licence, které by pro menší nekomerční projekty mohly stačit.
FPGA pro amatérské projekty vůbec nemusí být overkill. Jakékoli zpracování rychlejších signálů, třeba z kamery, vyjde podstatně lépe. Problém jsou samozřejmě počáteční investice (čas, sádlo
).
Že existují otevřené simulátory a "přední konec", tedy syntéza z RTL, není až takové překvapení. Algoritmy se vyvíjejí od osmdesátých let. Nicméně vrtat se v tom není příliš snadné, jsou to navrstvené heuristiky na problémy, které se exaktně nedají řešit ani náhodou.
Vivado funguje pod linuxem OK, aspoň nám ano. Je to hrozná obluda, ale to je hodně dáno právě knihovnami informací o jednotlivých čipech. A existují volné omezené licence, které by pro menší nekomerční projekty mohly stačit.
FPGA pro amatérské projekty vůbec nemusí být overkill. Jakékoli zpracování rychlejších signálů, třeba z kamery, vyjde podstatně lépe. Problém jsou samozřejmě počáteční investice (čas, sádlo
![Smile :-)](./images/smilies/icon_smile.gif)
Lattice ice40, Lattice ecp5 by mělý být blízko 100%, stejně tak QuickLogic EOS S3 a QuickLogic QLF K4N8.
Xillinx 7 jen základ.
Altera je zatím bez podpory.
Edit: Už se pracuje i na Alteře (projekt Mistral)
Xillinx 7 jen základ.
Altera je zatím bez podpory.
Edit: Už se pracuje i na Alteře (projekt Mistral)
- petula
- Příspěvky: 836
- Registrován: 22 kvě 2016, 02:00
- Bydliště: Čelákovice / Brandýs n.L / Stará Boleslav
- Kontaktovat uživatele:
FPGA má smysl u projektů, kde se zaplatí náklady na vývoj. Jestliže budu dělat projekt, kde prodám 100 kusů desek a obvodové řešení dokážu udělat s 20 digitálními obvody bez procesoru nebo s pěti digitálními obvody a jedním procesorem, pak nemá smysl řešit FPGA.
Další případ, kdy se FPGA nechá použít, jsou ustálené a známé FPGA řešení pro bridge ke sběrnicím (PCI, VME). Zde netřeba již nic vyvíjet, vezme se hotové řešení.
Další případ, kdy se FPGA nechá použít, jsou ustálené a známé FPGA řešení pro bridge ke sběrnicím (PCI, VME). Zde netřeba již nic vyvíjet, vezme se hotové řešení.
V čem je vývoj s FPGA/CPLD složitější než s logickými obvody? Podle mě se u obojího řeší stejný typ problému. U FPGA s řešením pomůže vývojové prostředí, u log. obvodů je více ruční práce.
Jestli máš řešení s CPU a 20 log. obvody, tak tam nech CPU a místo 20 log. obvodů dej jedno CPLD, ve výsledku to bude menší, flexibilní s menší spotřebou a levnější.
Jestli máš řešení s CPU a 20 log. obvody, tak tam nech CPU a místo 20 log. obvodů dej jedno CPLD, ve výsledku to bude menší, flexibilní s menší spotřebou a levnější.