Új vagyok az FPGA számára, és jelenleg HDL (különösen a Verilog) osztályt veszek igénybe. Elegendő ismerettel rendelkezem a digitális tervezéshez kombinációs és szekvenciális áramkörök.

Szeretnék létrehozni egy olyan projektet, amely hasonló a hez, mint amely ebben a YouTube-videóban látható .

Azt is tudom, hogy a Xilinx ISE képes logikai jeleket feldolgozni és hullámformákat szimulálni. Van-e olyan extra képessége, mint például a bemeneti jelek USB-n, kamerán stb. Keresztül történő lekérése és a számítógépen történő kimenet.

Lehetséges futtatni ez a projekt (például egy számítógépes szimuláció) anélkül, hogy megvennék egy tényleges FPGA kártyát? Úgy értem, hogy felépíthetem, kódolhatom-e és futtathatom-e a projektet a számítógépemen, és csak csatlakoztathatom-e a fényképezőgépemet USB-n keresztül, majd hagyjam, hogy a bejövő videojelek olyan HDL szimulátorok dolgozzák fel, mint a Xilinx ISE stb. (ha valóban nem vásárolnak FPGA kártyát, és ott szintetizálják a projektet, jelenleg nincs költségvetésem ehhez)

( Valójában arra gondolok, hogy a HDLl-terveket valós világú forrásokba, C-kódba stb. Illesztem.)

Megjegyzések

  • Nem ‘ nem tudom, hogy ezt megteheti-e a Xilinx ‘ s szimulátorral, de valami hasonló, mint az Icarus Verilog, lehetővé teszi a szimulációs interfészét C kódra, amely adatokat nyerhet valós világ forrásai; valószínűleg azonban nagyságrendekkel lassabban fog futni, mint a valós idejű, ezért az élő videó források feldolgozása nehéz lenne.
  • Ó, ez az im megtalálás kifejezés, kapcsolódva a valós világ forrásaihoz
  • @vvavepacket frissítse a megjegyzéseket / bejegyzéseket, hogy köszönetet mondjon a hozzászólónak / posztolónak.
  • A videóban szereplő FPGA úgy néz ki, mint az Altera DE2. ‘ 200 és 600 USD között van, a licenctől és a chiptől függően. ‘ szimulátorok vannak a csc.kth.se/~emille/niisim
  • A Terasic DE0-nano 80 dolláros nagyságrendű, és képes a kamerákhoz és az LCD-khez kapcsolódni; valójában a weboldalukon vannak ennek bemutatói. Nem áll kapcsolatban velük, de a DE0-nano ‘ ek elég szép kis FPGA-t kaptak egy tisztességes árú táblán. Én ‘ mindig is utáltam, hogy mennyire drágák a fejlesztői táblák.

Válasz

Ha jól tudom, a Xilinx eszközök nem tudnak valós időben kapcsolódni, a ModelSim sem (az Actel Libero IDE által használt).
a nyílt forráskódú szimulátorokról nem tudok, vannak inkább egzotikus projektek odakint, így lehetséges, hogy van valami, ami ezt megteheti.

Ez azonban lehet, hogy Ön egy olyan válasz, amelyet nem kért (törlöm, ha nem hasznos), de fontolóra veszem, hogy erre felépítené saját FPGA alaplapját, vagy legalábbis kezdjem el az utat felé. Bevontam az első FPGA-alaplapomat, és bár nagyon egyszerű volt (az alaplap nem a folyamat ;-)), nagyon sok mindent megtanított.

Előnyök:

  • Olcsó
  • Ugorjon közvetlenül a mélypontra, és mindent megtanuljon a hardver szempontjairól. Kényszeríti, hogy először olvassa el az adatlapok nagy részét, és írja meg saját kezdőkód, amely az IMHO gyakran jobb, mint a plug and play dev board megközelítés a tanulásban.
  • Csak azt tegye a táblára, amire szüksége van.
  • Vigye tovább a egy valódi működő tervezés célja, valószínűleg ugyanolyan erőfeszítéssel / kutatással, mint annak kitalálása, hogyan lehet mindezt valós időben szimulálni.

Hátrányok:

  • Még mindig meg kell vásárolni egy programozót, bár az Xilinx / Altera programozók olcsó verziói megtalálhatók az eBay-en.
  • Ha a PCB / jel integritásának megtervezése és kérdései nem kívánnak összpontosítani, akkor előfordulhat, hogy nem érdekli az így megszerzett ismeretek nagy része.

Tudomásul veszem, hogy a saját táblád marása valószínűleg felesleges, csak azért tettem, mert ott voltak az FPGA-k, türelmetlen voltam és nem akartam 2 hetet várni a PCB megérkezésére. Rendkívül olcsó ajánlatok vannak itt a kétrétegű táblákra vonatkozóan, amelyek legalább a terved futtatásához (esetleg alacsonyabb sebességnél, mint amire végül vágynak) – általában a nagy sebességű FPGA kialakítás minimális rétegszáma 4 lenne, de ezek sokkal drágább)

Mindenesetre a Spirit Circuits teljesen ingyenes kétrétegű “csupasz csont” PCB üzletet köt (havonta egyet, egy kivitelben, nincs maszk vagy selyemképernyő), ami jól jön az egyszeri tervezéshez .
A megfelelő 2 és 4 rétegű olcsó prototípus táblákért az ITead és a Seed Studio 10 dollárért (esetleg 5 árért) 10 dollárért jár.

Megjegyzések

  • nagyon érdekes ezt vállalni! és biztató is

válasz

A szokásos Xilinx ISE Webpack (az ingyenes verzió letöltheti a xilinx.com oldalról) tartalmaz egy iSim nevű szimulátort. Ez nem egy nagyszerű szimulátor, de teljesen működőképes, és az ára is megfelelő.

Bár még nem használtam az Altera eszközöket, meglepne, ha nem lenne szimulátor.

De … Tudnod kell, mit tehet és mit nem egy szimulátor A kezdőknek nem tudja szimulálni a teljes sebességgel futó FPGA-t. Valójában meglehetősen lassúak. A szimulált FPGA összetettségétől függően nem lepne meg, ha 1 percet veszek igénybe, amikor 1 ms “szimulált” szimulációt végzek. idő “. Ha egy órányi” szimulált időt “szeretne szimulálni, akkor 1000 órányi valós időre van szükség.

Továbbá, egy szimulált FPGA nem képes közvetlenül kommunikálni olyan dolgokkal, mint az USB port. A szimulált FPGA nem kommunikál egy “testbench” -nel. A tesztbench egy darab VHDL vagy Verilog kód, amely táplálja az FPGA (vagy az FPGA részeinek) bemeneteit, és ellenőrzi az FPGA kimenetét. A testben néhány meglehetősen összetett dolgot megtehet. , például használjon lebegőpontos számokat, olvasson és írjon fájlokat, és futtasson logikát, amelyet lehetetlen szintetizálni.

Megjegyzések

  • A ltera ‘ s a Quartus ingyenes kiadásait kapta, amelyek tartalmazzák a ModelSim-et is. A ModelSim ingyenes verziója korlátozza a szimulációs sebességet, a Quartus ingyenes verziója pedig a szintetizáláshoz használt CPU-magok számát, de egyébként teljesen működőképes.
  • Az Altera ModelSim nem támogatja a VHDL együttes szimulációját. és a Verilog ugyanabban a kialakításban.

Válasz

Nem ismerek olyan szimulátort, amely közvetlenül kapcsolódik az USB-portra (vagy más hardverre) érkező jelekhez.

Legalábbis elméletileg lehetséges lenne olyan szoftvereket írni, amelyek felvennék a portra érkező jeleket, és lefordítanák azokat egy tesztbench fájlba, amely egy szimulátor feldolgozhatta. Sajnos nem ismerek semmilyen létező szoftvert ehhez, és saját maga írása egyértelműen nem triviális lenne.

Hozzászólások

  • akkor a legjobb módszer egy belépő szintű, alacsony költségű fpga tábla beszerzése az olyan n00bs-hez, mint én
  • Önnek nem kell ‘ valójában testbench fájlt, ha van egy szimulátorod, amelyhez h támogatja az interfészt az egyedi kódokhoz, például egy VPI-hez, azonban tekintettel arra, hogy a szimulátor nagyságrendekkel lassabban fog futni, mint a valós idejű, könnyebb lehet kezelni a rögzített adatokat egy fájlban, amely a szimuláció sebességével olvasható.
  • @ChrisStratton Érdekel a fájlban rögzített adatok ötlete. Van valamilyen forrás ehhez? Köszönet
  • Ez teljes mértékben az adatforrásként használni kívánt perifériáktól függ.

Válasz

Szimulációs interfészeket kell használnia (DPI, VPI, VHPI, FLI), amelyek lehetővé teszik a szimulátorba akasztott kód beírását, és így áthidalják a szimulációban futó RTL és a gép valódi hardverei között .

A jelentős problémák, amelyekkel találkozni fog (a rosszul dokumentált felületeken kívül) a szinkronizáláshoz és az időzítéshez kapcsolódik. A szimulációban futó RTL sokkal lassabb , mint a valódi hardver – képesnek kell lennie arra, hogy a külső interfésszel való interakciókon keresztül lépjen át, hogy megfeleljen a szimulációs sebességnek. Néhány hardveres interfész nem tetszik! Például, ha TCP-t használ, akkor előfordulhat, hogy el kell mozdítania az időzítőket a kernelben, hogy elkerülhető legyen a hamis újraküldések stb.

Icarus támogatja a VPI-t ingyenes, így kísérletezhet anélkül, hogy pénzt költene licencekre. Érdemes megvizsgálni a meglévő keretrendszereket, amelyek elvégzik a ko-szimuláció nehéz emelését, és tisztább absztrakciót nyújtanak a szimulátor számára. Az egyik ilyen keretrendszer a Cocotb , egy nyílt forráskódú könyvtár, amely Python felületet biztosít a szimulátorhoz. ( Jogi nyilatkozat: A cocotb egyik fejlesztője vagyok.)

Példa, amely releváns lehet: tegnap felütöttem néhány RTL-t, hogy válaszoljak a ping kérésekre, és létrehoztam egy tesztpultot amely megnyitja a TUN felületet. Ezután pingelheti az interfészt a ping paranccsal, és a szimulációban futó RTL fogadja a pinget és válaszol. A teljes tesztasztal kevesebb, mint 50 sor Python! Ennek a példának a forráskódja a Github és Icarus rendszeren fut Linux alatt.

Válasz

Az esetek túlnyomó részében bármi, amit a szimulációban csinál, a szimulációban marad. Nem férhet hozzá valódi hardverhez – rendelkeznie kell a valódi hardver szimulációs modelljével.

Ha azonban hajlandó némi erőfeszítést tenni, a legtöbb szimulátor rendelkezik egy tetszőleges kódú interfésszel. A Verilog-ban ez meglehetősen szabványos interfész, ahogy értem, így a dolgok Verilog-oldala a szimulátorok között fog portolni. A VHDL-landban van egy szokásos módszer erre, de legalább az egyik nagy eladónak megvan a maga módja csináld!

Ne felejtsd el azt is, hogy a valósidejű interfész (azaz olyan sebességgel, amilyet az FPGA csinálna) nagyon valószínűtlen – és a többi szimulációd (HDL) nem fog valós időben futni -időben sem.Amint a megjegyzésekben megjegyeztük, a videó valós idejű szimulált feldolgozása ilyen módon nem kivitelezhető.

Személy szerint nekem soha nem volt szükségem ezt kipróbálni, produktívabb írási modelleknek találom. a hardver és az egész VHDL-ben fut.

De ne hagyja figyelmen kívül a szimuláció előnyeit – sokkal gyorsabb módja annak kiderítésére, hogy működnek-e a dolgok (a fordítások másodpercekig tartanak), majd a bitfolyamok létrehozásához több tíz perctől óráig), és hardveresen próbálják ki őket. OK, ‘ tisztábbnak kellene lennem – a válaszomat a ” I ‘ m új az FPGA ” szinten 🙂 A válasz frissítve

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük