Open Source nástroje pro FPGA
Moderátor: Moderátoři
Open Source nástroje pro FPGA
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
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
Co vím v naší firmě, tak jakékoliv pokusy tohoto typu kvůli plnění termínů totálně shořeli.
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?
Tuhle jistotu běžný bastlíř nemá.
A proto se dodnes používaj orloje s deseti pouzdry 74xx.
(Pamatuj, tohle je Bastlírna !)
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
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.
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.
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 atomNaš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
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;
ha_tb.vhdl
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;
Příkazy
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Ž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
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: 828
- Registrován: 22 kvě 2016, 00:00
- Bydliště: Čelákovice / Brandýs n.L / Stará Boleslav
- Kontaktovat uživatele:
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í.
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ší.