Elindult az Open Source FPGA Foundation

Címkék

A napokban bejelentette létezését a non-profit Open Source FPGA Foundation (OSFPGA Foundation). Célja az open source FPGA technológia népszerűsítése. Részletek a bejelentésben. Az alapítvány weboldala: https://osfpga.org/

Hozzászólások

Szerkesztve: 2021. 04. 14., sze – 10:03

~10 ev alvas utan, ujra elkezdtem FPGA -val foglalkozni.
Eleg sok minden valtozott.
Valamivel tobb HDL nyelv lett, amik tobbnyire verilog-ra forditanak koztes lepesben.
A legtobb dologra van open megoldas barati licensel a githubon, nem csak opencores -van.

Az opensource toolok eleg kozel allnak ahhoz, hogy akkar Xilinx kozep ketegorias FPGA -ra bitstreamet allitsanak elo,
lehet nehany even belul hasznalhato is lesz.

A bistream vissza fejtes valoszinuleg legalis, az USA -ban ugy mondjak hogy biztonsagi kutatas,
hogy menyire lehet gonosz dolgokat rejteni bele, EU-ban es mas orszagokban compatibilitas miatt legalis lehet.
Lattice egyszer megprobalta a bitstream visszafejtest licensel tiltani, de a community rosszalasa miatt, kivetek ezt a reszt.

Xilinx megha nem is adott ki dokumentaciot egy jo ideje, https://github.com/Xilinx/RapidWright talan nehany reszletre fenyt derithet.

FPGA gyartok sajat szoftverben gyakran tartanak IP catalogust ami tobblet bevetlet jelenthet nekik,
de nem hinnem, hogy software es IP bol tobbet nyernek mint az FPGA eladasbol.
Ami miatt veszejes lehet egyes gyartoknak egy cel platform fuggetlen toolchain lete,
az az hogy uj cegek konyebben lephetnek be a piacra, sajat tool fejlesztese nelkul.

Mindenesetre en orulok ennek a bejelentesnek.

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

Artani biztos nem art egy ilyen kezdemenyezes, kerdes hogy mire lesz ez eleg. Ugy latom hogy a szuk keresztmetszet meg mindig es/vagy már a gate level => place'n'route => bitstream folyamat, a tobbire (szimulaciok, szintezes, register transfer level => gate level, clocking becslesek, bitstream programozas, ...) mar nagyon jo es sok esetben tenyleg kiforrott free and open source eszkozok vannak. De amig csak egy szuk keresztmetszet is van addig marad a szivas es/vagy egy erosen limitalt hw-kinalat :/ De a jo hir az tenyleg hogyha ebbol a limitalt kinalatbol valasztunk akkor viszont tenyleg szuperul klappol a minden, a legelejetol a legvegeeig. 

Konkret soft IP core-ok eseten az lehet max az erdekes hogy az adott gyarto a sajat hardverenek ismereteben mar RTL szinten is tud a nyilt variaciokhoz kepest jobb hatasfoku logikat adni.   

A fo hianyossag a specialis elemek tamogatasa:
https://symbiflow.readthedocs.io/en/latest/prjtrellis/docs/dsp_support/…

- szorzo / dsp
- clock  -al kapcsolatos elemek
- memory controllers
- Pcie
- Serdes
- block ram

A gyarto tooloknal is sokszor explicit primitive keres van. Ez ma is jelemzo,
mert magatol nem mindig teszi be a legjobbat.

A gyarto IP/core -ok (regebben) nemi rasegitessel keszultek, ahol `hand made` modositasok voltak,
es eleg specialis placement megoldasok, nem sima design rulok (timing constrain).

A gyarto toolok tamogatnak specialis megszoritasokat 'pragama' ami neha szinten kell, ill gyakran gyarto specifikus .
Regen volt olyan megszoritas amit VHDL -ben be tudtal tenni, de verilogba nem.
Ugy latszok most verilog lett a default ott is ahol VHDL volt, remelhetoleg mar nem lesz ilyen problema.

Kenyes reszeknel valoszinuleg, lesznek `if gyarto` reszek,
ill. megszoritas hegyek, de kenyes resz altalban a kod kis resze.
Es ha modjuk memoria controllert akkarod hasznalni, az magatol nem igen
kerul be explicit keres nelkul. De lehetnek majd olyan libek/toolok,
amik egyseges interfacen (mondjuk valami AXI valtozat)
tobb gyartonal is megtalaljak a legjobb ismert megoldast.

Regen a dual port ramot magatol betette egyszeru esetben, de amikor tenyleg dual portot akartam,
akkor nem jott ra , ugyhogy explicte ment.

A LUT/MUX/switch/reg tema eleg ismert,
ha valami nem a legjobb az nem a reszletek ismeretenek hianya IMHO.
Ha a tool nem jott ra mi neked a fontos es megszoritassal rajon akkor jo,
ha nem akkor sokaig fog tartani. Az nyilvan tudja minden tool, ha az elem a
die masik vegen van az tovabb fog tartani, illetve tobb routing eroforasba kerul elerni.
Ami meg tetszett, hogy neha a gyarto mondjuk a kozeli mux elemeket creativan felhasznalta
logikahoz, LUT -ok helyett. IMHO mar az FPGA tervezekor gondolkoztak a creative elem hasznalton.

Elobb jussunk el odaig, hogy minden elem hasznalhato kezzel irott FPGAasm -nel kenyelmesebb modon,
aztan egyszerubben es hateknyobban mar lehet a 2dik lepes.
 

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

Sosem volt világos számomra, hogy valójában mi is a termék: az FPGA eladás, vagy a szintézer.
Talán az FPGA maga inkább fejlesztői eszköz, és legtöbb esetben a végén úgyis ASIC kerül a végleges hardverbe.
Ilyenkor el tudom képzelni, hogy valójában a tool a termék. De az ASIC meg másfajta szintézist kíván, így végül mégse értem, miért a zárt gondolkodás.

Hat, jo kerdesek ezek. Az szinte biztos hogyha az FPGA workflow ugy en bloc annyira egyszeru lenne mint egy atlagos mikrokontrollernel, akkor a kismilliofele mikrokontrollerek kismilliofele piaca erosen bezuhanhat (legalabbis ha a mixed signal alkalmazasokkal nem foglalkozunk). Nyilvan tobbmindenre kell figyelni egy FPGA-nal, de a "kismillio periferia, kismillio^2 fele szopas, de azert jo lenne meg egy UART ha lenne" jellegu dolgokat pl kapasbol kihuzhatjuk a listarol. Meg sok mas egyebet is ;)

Az a része megvan, hogy a szintézer elkészítése és optimalizálása nem kis munka. De a saját hardverükhöz készítik. Ha a hw eladás lenne az üzlet, a szintézer ingyen lenne.

Azt is értem, hogy nagy darabszámú késztermékbe ritkán megy FPGA. Csak ha valamiért nagyon fontos az update-elhetőség (ez nem a firmware, hanem egy hardverelem az áramkörben). Vagy ha eleve kicsi a széria és nem éri meg legyártani hozzá ASIC-et.

A vaskos licenszdíjakból arra  következtetek, hogy magát a fejlesztés menetét akarják megsarcolni: ha FPGA-zni akarsz, ennyi a belépő. Tudják, hogy hw-t úgyse sokat fogsz venni.

Ergo az FPGA tulajdonképpen nem más, mint egy fejlesztőeszköz. Nem pedig végberendezésbe szánt elem.

Ergo az FPGA tulajdonképpen nem más, mint egy fejlesztőeszköz. Nem pedig végberendezésbe szánt elem.

Azert a "fejlesztoeszkoz" es a "minden istenbarma kezebe oksytelcsyket adunk" kozott is vannak fokozatok ;) Kis-kozepes peldanyszamu, elegge specialis hardverekbe miert ne tennel FPGA-t? Birja? Birja. Eleg? Eleg. Olcso? Az. Megoldhato polcrol leveheto MCU-val/ASIC-cal? Nem. Sok ilyet lattam en is sajat szememmel - hasznalok is szinte napi szinten olyan celhardvereket, amikbe FPGA-t tett a gyarto, illetve sajat fejlesztesu projektek is mar vannak szepszammal. Sot, neha mar azt erzem hogy egyszerubb (azaz olcsobb, lasd ido=penz) egy faek egyszeru processzor melle tenni egy-ket celperiferiat, raaggatni ezeket az I/O buszra es/vagy a priority encoder-re (hogy megszakitasokat generaljon), es ezt betenni egy FPGA-ba - mintsemhogy atnyalazunk a vegtelen/2 MCU-doksit, vegigragjuk magunkat az osszes nyigon, herkenteni valami baromi bonyolult programot ami kieroszakolja a periferiabol azt amit szeretnenk, es akkor az vagy mukodik, vagy nem. Vagy legrosszabb esetben ugy nez ki mintha mukodne, de elesben derul ki hogy nem. 

>=10000 dodo -s panelok is vannak ..

Es igen >=10000 dodos FPGA -s belekerulhet egy termekbe, amit az ipar , tudomany (cern) vagy a tavkozles megvesz,
es meg adott estben orulnek is hogyha "csak" 10000 dodo volt..

Van olyan FPGA ami 1$   ami kb arra jo hogy egy nagy ~tucat digitalis IC helyett berakod.

Meg egyszerubb esetben FPGA-k kisebb testvere CPLD:
https://www.digikey.com/en/products/detail/lattice-semiconductor-corpor…

`Az igazi FPGA` -nak  latszo targyak ("kisker" lista aron 1db) ~50$ korul vannak, ezek mar sok mindenre jok akkar onmagukban is,
ebbe az ar kateregoriba mar befer olyan FPGA is ami hard-core CPU is tartalmaz.
(random zynq: https://www.ebay.com/itm/274561376044, ismertebb board https://www.parallella.org/)

szerk:
https://github.com/xjtuecho/EBAZ4205 Nem tudon honnan vesznek kinaiak olcson alkatreszt,
lehet ~50$ FPGA valami 5$ -ert ..

Nem tudom lattal -e mar high-end mero/vezerlo eszkozoket,
de >=10000 dodo -s arba egy >=500 dollaros FPGA siman elfer.

360000 dodos dologban tobb is elfer:
https://www.signaltestinc.com/product-p/dpo77002sx.htm (nem tudom ebbe van -e csak az ara miatt linkeltem,
amibe tudom hogy, van arrol inkabb nem beszelnek )

Amibol lezuznak 100 000 darabot, ott valoszinuleg csak az olcsokkal (<100$) talalkozik az ember.

ASIC -ot gyartani draga,
130nm teljes wafer 100kUSD maskot gyartani, 28nm 400 000. Utana csak par ezere /wafer + tokozasi koltseg(passz) + tesztelesi koltseg (passz).
Ha az FPGA feljeszto eszkozoket draganak talaltad, ASIC -tol dobsz ket hatast es meg jopar NDA -is var rad.

A nagy gyartok nem veszik fel a telefont, ha kell 2 db 3mm^2 -es chip, ezert
ha ASIC proto typus gyartas megy, akkor tobb ceg ossze ul (vannak erre szakosodott szervezok),
es osszedobjak egy prototypus mask arat es gyartanak egy-egy tucatot mindbol.
Merettol es technologoatol fuggoen az ar valtozik, nagyon. Ill. minimum meret/ar is van (pl. ~2mm^2).

Ha 130nm -el megelegszel (talan legolcsobb, egyetlen NDA mentes):
https://github.com/google/skywater-pdk

Az egyik proto szervezo:
https://europractice-ic.com/prices-2021/

Egy chip araba, szakertok a mask gyartasi koltseget par szazalekra teszik,
ugyhogy a tenyleges  koltseg dollar milliokra rughat.
1000 termek esten, nem biztos, hogy megeri, ha az FPGA eleg gyors.
Ha nem, van olyan helyzet amikor tenyleg par ezert chipert sokat perkalnak,
ha tenlyeg nincs mas megoldas.
A kesz termekekek egy haz araval vetekedenek, ha
egyaltalan eladjak masnak . !high-end, amire semmi mas nem lenne jo,
es csak nagyon keves kell,  analog reszel vegyitve!

Ha FPGA-t sikerult ossze hozni, mintha lenenek olyan cegek ami
>=50000 dodo kurul segitenek kisebb (130nm, par mm^2)  ASIC -ot csinali belole.

Roviden,
par ezer dodo-s FPGA -val rendelkezo termeket, nem
az egyszeru halondo vesz, de vannak termekek evi. 1000~10000 darab szam per tipus.

Az ilyen "ipari/tudamonayos" kutyuknel, nem az sokkolo hogy menyi az FPGA -ara, hanem hogy
menyit kernek olyan dologert amibe semilyen specialis/draga alkatresz sincs.
 

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

`Az igazi FPGA` -nak  latszo targyak ("kisker" lista aron 1db) ~50$ korul vannak, ezek mar sok mindenre jok akkar onmagukban is,

Viszont egy ~6 tallerosba mar bele tudsz tenni egy komplett soft processzort amire GCC-vel tudsz fejleszteni es meg boven marad is hely (kb 40%-at eszi meg a processzor), plusz hozza tudsz csapni 15kbyte prog. memoriat a bitstream reszekent es plusz 128kbyte RAM is akad ott a kornyeken, azaz a tokon belul. Oke, ezeket a szamokat tenyleg a ~6$ / egy darab ar melle kell nezni.

Ha ar csokentes lenyeg akkor lehet hogy egy soft-core nem kell, PL.:
https://www.intechopen.com/books/advances-in-pid-control/pid-controller…
Ill sok egyszeru feladat megoldhato egyszeru state machinokal.
Ha feladat egyszeru, az FPGA adott esetben olcsobban es gyorsabban is
meg tudja oldani a feladatot mint egy MCU.

soft-core altalaban munka megosztas miatt jon elo, vagy ha complex protocol state-machinokkal
valo oszerakasa jelentosen nagyobb teruletet igenyelne mint egy soft-core es nics szukseg a tobblet teljesitmenyre.
 

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

210db nagyon lassu risc-v egy 265 USD panelon.
https://youtu.be/xjIxORBRaeQ?t=304

Es mint modottam, egy soft-core az nagy meg igy butitva is,
gyakran FPGA eseteben lehet okkosabban csinalni,
tenyleges altalanos celu core nelkul.

8-bites MCU szerintem mar csak az aruk miatt vannak eletben,
eleg eslyetelen hogy 0.3 USD MCU -t valami FPGA le tudna cserelni.
Fogyasztasban mar 32 bites MCU -k is el tudnak uzemeleni egy szeles gomb elemrol,
10 evig, mikozben meg akkar BLE -en jelentgetnek is...
De ahol az ar a fo szempont, 8/16 bittes MCU meg mindig
jatekban vannak es lesznek is vagy 10 evig.
A trendek szerint megha pitebol kisebb szelet is az ovek, absolute ertekben
novekszik 8/16 bit MCU eladas,
egyes forrasok szerint, nem hogy lejebb,
meg inkabb feljebb ment az aruk az utobbi 3 evben.

Ha tobb >=5$ MCU is elofordul egy panelon, elkepzelheto hogy egyetlen
FPGA -val tobb is lecserelheto a vegeredmenyben olcsobban.

Ami erdekes a PID -es peldaban, hogy <100ns -es valasz idot nyujt amit, <5$ (8 bit) MCU nem fog tudni.
Illetve a logika nem fugg mindenfele megszakitas-tol, tehat ha mondjuk cel ertek bellitasa
kell valamilyen soros port kezeles, azt meg lehet tenni a fo PID aramkor "futasanak" megszaktisa nelkul is.
(Manapsag <10ns is celozhato lenne)
A "draga" $50 FPGA -ba tobb is elfer, valoszinuleg hamarabb futsz ki pinekbol (tobb szaz)
mint, hogy a logika ne birna. Egy valoszinuleg megoldhato ~5$ FPGA-ba is (lattice cuccait erdemes nezni, ha olcso kell).

Lattam olyan projektet ahol egy DSP + 32 bittes MCU + egy cel codec chip + nehany 8 bittes MCU melle beraktak egy FPGA-t
csak ezert mert kellett egy gyors es szelles MUX.
Ebben az estben (vagy barmikor amikor mar FPGA kellett valamire),
el lehet gondolkozni azon, hogy mit lehetne kidobni , megha kicsivel dragabb FPGA is
kell valoszinuleg olcsobb novelni az FPGA koltseget, mint az egyszerubb elemeket bent tartani.
(Ez meg zynq elotti idokbol volt.)

Ha tenyleg nagyon egyszeru, nem sebbeseg critikus dolog kell, valoszinuleg a legolcsobb MCU jo lesz,
ha egyszeru dolog kell, de sebbeseg szamit, vagy specialis (digitalis) perfiria kell FPGA eslyes.
Ill. ha tobb MCU,DSP,Codec ... whatever van egy boardon, lehe hogy FPGA  megoldas olcsobb.
Az FPGA -t nem zavarja, ha tobb feladatot kell egyszerre ellatni, csak legyen eleg nagy ,
fuggetleneul elmukodnek ..

En nem javaslom a legolcsobb FPGA megvetlet hobby celra.
Ki tudja mi jut az ember eszebe, jobb ha van erroforras mintha nincs ..

Ha hobby projektbol, sorozat targy lesz, eleg egyszeru kisebb FPGA -t berakni.
Azonos gyartonal meg egyszerubb, eleve ugy lett kigondolva.

Amit nem lehet megirni assemblyben, azt nem lehet megirni.