Jsem v FPGA nováčkem a v současné době používám třídu HDL (zejména Verilog). Mám dostatečné znalosti v digitálním designu jako kombinační a sekvenční obvody.

Chci vytvořit projekt podobný projektu uvedenému v tomto videu YouTube .

Vím také, že Xilinx ISE může zpracovávat logické signály a simulovat křivky. Má další možnosti, jako je získávání vstupních signálů přes USB, fotoaparát atd. A jejich výstup do vašeho počítače.

Je možné spustit tento projekt (jako simulace v počítači) bez zakoupení skutečné desky FPGA? Co tím myslím, mohu tento projekt vytvořit, kódovat a spustit v počítači a jednoduše připojit kameru přes USB a poté nechat příchozí video signály zpracovány HDL simulátory, jako je Xilinx ISE atd. (bez skutečného nákupu desky FPGA a syntézy vašeho projektu tam, v současné době nemám rozpočet na to mít)

( Skutečně myslím propojením designu HDLl se zdroji reálného světa, C kódem atd.)

Komentáře

  • Nemám ‚ nevíte, jestli to dokážete pomocí simulátoru Xilinx ‚, ale něco jako Icarus Verilog umožní vašemu simulačnímu rozhraní kód C, který by mohl získat data z zdroje ze skutečného světa; je však pravděpodobné, že bude řádově běhat pomaleji než v reálném čase, takže zpracování zdroje živého videa by bylo obtížné.
  • no, to je fráze im finding, interfacing to real world sources
  • @vvavepacket hlasoval za komentáře / příspěvky a poděkoval komentátorovi / plakátu.
  • FPGA ve videu vypadá jako Altera DE2. ‚ s mezi 200 a 600 USD v závislosti na licenci a čipu. ‚ jsou simulátory na csc.kth.se/~emille/niisim
  • Terasic DE0-nano je řádově 80 $ a může komunikovat s fotoaparáty a LCD; ve skutečnosti mají ukázky z toho na svých webových stránkách. Není s nimi spojen, ale DE0-nano ‚ s má docela pěkné malé FPGA na desce za slušnou cenu. Vždy jsem nenáviděl, jak drahé jsou dev dev desky.

odpověď

iv class = „answer“, vždy jsem ‚ nenáviděl >

Nástroje Xilinx nemohou „komunikovat v reálném čase, pokud vím, nemůže ani ModelSim (používaný společností Actel Libero IDE)
Nevím o open source simulátorech, existují některé spíše exotické projekty, takže je možné, že existuje něco, co by to mohlo udělat.

Může to být ale vaše odpověď, o kterou jste nepožádali (pokud to není užitečné, vymažu ji), ale uvažoval bych o tom, že k tomu uděláte vlastní FPGA desku nebo alespoň začněte na cestě k tomu. Vyleptal jsem svou první desku FPGA a přestože to bylo velmi jednoduché (deska není proces ;-)), naučilo mě to strašně rychle.

Pros:

  • Levné
  • Skočte přímo na konec a dozvíte se vše, co potřebujete vědět o úvahách o hardwaru. Nutí vás nejprve si přečíst většinu datových listů a napsat vlastní startovací kód, který je IMHO často lepší než přístup k učení plug-and-dev pro vývojáře.
  • Na tabuli vložte pouze to, co potřebujete.
  • Dostanete se dále k vašemu cíl skutečného funkčního designu s možná stejným úsilím / výzkumem, jako je zjištění, jak to všechno simulovat v reálném čase.

Nevýhody:

  • Stále je třeba kupovat programátora, i když na eBay najdete levné verze programátorů Xilinx / Altera.
  • Pokud design a problémy integrity PCB / signálu nejsou něco, na co byste se chtěli zaměřit, pak vás možná nebude zajímat většina znalostí, které lze získat tímto způsobem.

Chápu, že leptání vaší vlastní desky je pravděpodobně zbytečné, udělal jsem to jen proto, že jsem tam měl FPGA, byl jsem netrpělivý a nechtěl jsem čekat 2 týdny, než dorazí PCB. U dvouvrstvých desek jsou zde extrémně levné nabídky, které by přinejmenším umožnily spuštění vašeho návrhu (možná při nižších rychlostech, než je nakonec požadováno – obvykle by minimální počet vrstev pro vysokorychlostní návrh FPGA byl 4, ale to jsou mnohem dražší)

Každopádně společnost Spirit Circuits nabízí zcela bezplatnou nabídku dvouvrstvých desek plošných spojů s „holými kostmi“ (jeden za měsíc, jeden design, žádná maska nebo sítotisk), což se hodí pro jednorázový design .
ITead a Seed Studio také pro levné 2 a 4vrstvé levné prototypové desky klesají na 10 $ za 10 desek (nebo možná 5 za tuto cenu).

Komentáře

  • velmi zajímavý přístup k tomuto! a povzbudivé také

odpověď

Standardní Xilinx ISE Webpack (bezplatná verze, která si můžete stáhnout z xilinx.com) obsahuje simulátor s názvem iSim. Není to skvělý simulátor, ale je plně funkční a jeho cena je správná.

Ačkoli jsem dosud nepoužíval nástroje Altera, překvapilo by mě, kdyby nebyl zahrnut simulátor.

Ale … Musíte vědět, co simulátor může a co nemůže dělat . Pro začátek nemůže simulovat FPGA běžící na plnou rychlost. Ve skutečnosti jsou poměrně pomalé. V závislosti na složitosti simulovaného FPGA by mě nepřekvapilo, kdyby mi trvalo 1 minutu simulovat 1 ms simulovaného time „. Pokud chcete simulovat hodinu“ simulovaného času „, vyžadovalo by to 1000 hodin reálného času.

Simulované FPGA také nemůže komunikovat přímo s věcmi, jako je váš USB port. Simulované FPGA komunikuje s „testbench“. Testbench je část kódu VHDL nebo Verilog, která napájí vstupy FPGA (nebo jejich částí FPGA) a ověřuje výstup vašeho FPGA. V testbench můžete dělat poměrně složité věci , jako je používání čísel s plovoucí desetinnou čárkou, čtení a zápis souborů a logika, kterou nelze syntetizovat.

Komentáře

  • A ltera ‚ s dostala bezplatná vydání Quartusu, která zahrnují ModelSim. Bezplatná verze ModelSim omezuje vaši simulační rychlost a bezplatná verze Quartusu omezuje počet jader CPU použitých k syntéze, ale jinak jsou plně funkční.
  • Altera ModelSim nepodporuje společnou simulaci VHDL a Verilog ve stejném designu.

Odpovědět

Nevím o žádném simulátoru, který bude přímo komunikovat na signály přicházející na port USB (nebo jiný hardware).

Alespoň teoreticky by bylo možné napsat nějaký software, který by přijímal signály přicházející na port, a převádět je do souboru testbench, který simulátor mohl zpracovat. Bohužel nevím o žádném existujícím softwaru, který by to dokázal, a jeho vlastní psaní by bylo rozhodně netriviální.

Komentáře

  • nejlepší způsob je pak získat vstupní úroveň, nízkonákladovou fpga desku pro n00bs jako já
  • ve skutečnosti nemusíte ‚ projít soubor testbench, pokud máte simulátor h podporuje rozhraní k vlastnímu kódu, jako je VPI, avšak vzhledem k tomu, že simulátor bude řádově běhat pomaleji než v reálném čase, může být snazší zacházet se zachycenými daty v souboru, který lze číst rychlostí simulace.
  • @ChrisStratton Mám zájem o představu o zachycených datech v souboru. Máte k tomu nějaké zdroje? Díky
  • Zcela by to záleželo na periferiích, které chcete použít jako zdroje dat.

Odpovědět

Budete muset použít co-simulační rozhraní (DPI, VPI, VHPI, FLI), které vám umožní psát kód, který se připojí k simulátoru, a tak přemostit mezi RTL běžícím v simulaci a skutečným hardwarem na vašem počítači .

Mezi významné problémy, se kterými se setkáte (kromě špatně zdokumentovaných rozhraní), souvisí synchronizace a načasování. Běh RTL v simulaci je mnohem pomalejší než skutečný hardware – budete muset být schopni procházet interakcemi s externím rozhraním, aby odpovídaly rychlosti simulace. Některá hardwarová rozhraní se to nebudou líbit! Například pokud používáte TCP, možná budete muset fušovat časovače v zásobníku jádra, abyste se vyhnuli nežádoucím opakovaným přenosům atd.

Icarus podporuje VPI a je zdarma, takže můžete experimentovat bez utrácení peněz za licence. Možná budete chtít nahlédnout do existujících rámců, které provádějí některé koimulační těžké zvedání a poskytují simulátoru čistší abstrakci. Jedním z takových rámců je Cocotb , knihovna open-source, která poskytuje rozhraní Pythonu k simulátoru. ( Zřeknutí se odpovědnosti: Jsem jedním z vývojářů Cocotb.)

Příklad, který může být relevantní: včera jsem vyřadil několik RTL, abych odpověděl na požadavky ping, a vytvořil testbench , které otevírá rozhraní TUN. Potom můžete provést ping na rozhraní pomocí příkazu ping a RTL spuštěný v simulaci obdrží ping a odpoví. Celý testbench má méně než 50 řádků Pythonu! Zdrojový kód tohoto příkladu je na Github a běží na Icarusu pod Linuxem.

Odpovědět

V naprosté většině případů vše, co děláte v simulaci, zůstává v simulaci. Z ní nemáte přístup ke skutečnému hardwaru – musíte mít simulační model skutečného hardwaru.

Pokud jste však ochotni vynaložit určité úsilí, většina simulátorů má rozhraní k libovolnému kódu. Ve Verilogu je to docela standardní rozhraní, jak tomu rozumím, takže Verilogská stránka věcí se bude přenášet mezi simulátory. Ve VHDL-zemi existuje standardní způsob, jak to udělat, ale alespoň jeden z velkých prodejců má svůj vlastní způsob Děláme to!

Mějte také na paměti, že propojení v reálném čase (tj. rychlostí, jakou by to dokázalo FPGA) je velmi nepravděpodobné – a zbytek vaší simulace (HDL) nebude fungovat v reálném čase – buď čas.Jak je uvedeno v komentářích, simulované zpracování videa v reálném čase není tímto způsobem proveditelné.

Osobně jsem to nikdy nemusel zkoušet, shledávám, že jsem produktivnější modely psaní hardware a běží vše ve VHDL.

Ale nepřehlédněte výhody provádění simulace – je to mnohem rychlejší způsob, jak zjistit, zda věci fungují (kompilace trvají sekundy), pak vytváření bitstreamů desítky minut až hodin) a vyzkoušet je v hardwaru.

Komentáře

  • Nespravedlivé, viz komentáře k otázce.
  • Dobře, měl bych být ‚ jasnější – omezil jsem svou odpověď na “ I ‚ m nový na FPGA “ úrovni 🙂 Odpověď aktualizována

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *