mikrocontroller.net

Forum: FPGA, VHDL & Co. Terasic DE10-Nano & weitere Fragen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Dergute W. (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Bin so ein bisschen am gucken in Richtung FGPA mit eingebauten ARMen. 
Dabei ueber das DE10-Nano Kit gestolpert; das ist ja preislich noch so, 
dass man sich's auch mal daheim hinstellen kann. Bloss:
Das scheint's grad fast nirgends mehr zu geben: Nur noch der Mouser hats 
angeblich, bei Digikey gibts das hoechstens nur mit irgendwelchem 
Robotershice zusammen, Arrow hats grad nicht, Amazon nicht in 
Deutschland...hmm...Ist das schon zu alt, kommt da ggf. demnaex was 
neues? Irgendwas voellig danebengegangen?
Hier find' ich auch nicht allzuviel drueber...Was stimmt da nicht?

Dann noch so ein paar Fragen, getriggert durch Erlebnisse in der 
Vergangenheit:

Was ist denn sonst so das Board der Wahl fuer kleinen Geldbeutel? - FPGA 
mit Prozessor (kein Softcore, Linux sollt' drauf laufen) und moeglichst 
breit angebunden externem DDR[2..]-RAM, min. 1x GBit-Ethernet. Aufs DRAM 
sollte man auch vom FPGA breitbandig zugreifen koennen.
Wie siehts denn Lizenzmaessig aus, kann man mit der 
Webpack/Lite/whatever, also der KostNix Version von Quartus die 
"kleineren" FPGAs mit CPU beackern?

Wie gut laeuft Quartus unter Linux? Hab's hier grad mal probiert mit 
Quartus 18.1 auf einem BLFS-8.3 - da ging garnix, die libpng muss 
anscheinend uralt sein fuer Quartus, und wenn man das dann hat, merkt 
man, dass die anderen libs, incl. glibc auch hinten und vorne klemmen, 
sprich: zu neu sind fuer Quartus. Laeuft das tatsaechlich auf 
irgendeinem der empfohlenen Ubuntus besser und mit allen Faxen (kann 
mich mal an Xilinx ISE Versionen erinnern, wo's auch ganz gross hiess: 
Laeuft unter Linux und dann irgendwo ganz klein, naja aber der Teil, wo 
man gucken kann, wo die Gatter dann im Chip platziert werden, der laeuft 
natuerlich nicht...) und Treibern fuer die JTAG-Hardware?

Vor >10 Jahren gabs bei Quartus auch mal 'ne Version, wo intern bei den 
Tools irgendwas von Perl auf Java umgestellt wurde - war ein komplettes 
Desaster, eine NullPointerException nach der anderen, etc. Also 
unbenutzbar. Gab's sowas in letzter Zeit nochmal - Sprich: 
Quartusversionen, die man besser meiden soll?

Wie siehts mit der Lizenzpolitik aus fuer SignalTap, oder wie auch immer 
das Tool zum "reinglotzen" ins FPGA in Echtzeit und Aufzeichnen von 
Signalen derweilen heisst? Ist das bei der Kostnix-Quartus Version noch 
dabei? Bei Xilinx ja eher nicht :-(

Wie ist's mit dem DRAM-Controller, iirc gabs vor >10 Jahren bei Altera 
nur SDR-DRAM Controller IP-Cores fuer umme, die DDR1 und 2 gabs nur 
gegen extra Kohle oder fuer max. 1h Laufzeit ohne JTAG-Verbindung 
(Eval-Lizenz).

Sonst irgendwelche fiesen Fallstricke?

Gruss
WK

Autor: -gb- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Board kann man doch wunderbar kaufen. Mouser ist top! Bei Xilinx 
gibt es viele Boards mit Zynq.

Ja, die kann man mit der Gratisversion bespielen. Signaltap habe ich 
noch nicht gebraucht, dafür gibt es die Simulation.
Der Vivado MIG sollte auch mit dem Webpack funktionieren.
Vivado läuft problemlos unter Linux.

Autor: Sigi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dergute W. schrieb:
> DE10-Nano Kit

So nen Pech aber auch: Im Retro-Bereich (C64/Amiga/etc.
Nachbauten in FPGA) ist das Board im MISTer verbaut
(Board+Addon-Board für Joystick etc.), wahrscheinlich
deshalb komplett ausverkauft. Ob sich das in nächster
Zeit ändert wage ich mal zu bezweifeln. Aber ich würde
die Hoffnung nicht aufgeben.

Dergute W. schrieb:
> Wie siehts mit der Lizenzpolitik aus fuer SignalTap

SignalTap-II ist (seit immer??) in der freien WebEdition
verfügbar. Benutze ich für Hobbyprojekte schon seit
(>15?) Jahren.

Dergute W. schrieb:
> Wie ist's mit dem DRAM-Controller

Ich weiss jetzt nicht, wie es in den neusten Quartus-
Versionen aussieht, aber DDR-Controller gibt's in den
älteren Versionen schon in der WebEdition. Diese sind
aber nicht die hochperformanten Controller.

Auch solltest du darauf achten, wie die DRAMs an das
FPGA angeschlossen sind. Zum einen können sie an die
CPU (d.h. ARM) per HPS/HC angeschlossen sein, dann
ist der DRAM für die FPGA-Logik nicht sichtbar. Oder
sie sind von der FPGA-Logik ansteuerbar (SC oder HC),
dann stehen sie aber der CPU nicht mehr zur Verfügung.

Bei vielen DevBoards sind nur eine Bank (an CPU
angebunden) vorhanden. Teuerer Board haben deshalb
2 Bänke, je eine für FPGA und für CPU.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"The DE10-Nano Development Kit contains all the tools needed to use the 
board in conjunction with a computer that runs the Microsoft Windows XP 
or later."

Finde dich damit ab. Von 64 bit steht da übrigens auch nichts.

Quartus 11.1SP2 schafft eine komplette Synthese ca. 20 % schneller
als die Version 13.0.
Da ich auch gerne mal Cyclone I und II verwende, kann ich auf
die neueren Versionen gern verzichten.

Und es ist gerade der "plattformunabhängige" Java-Part der unter
aktuellen Umgebungen klemmt. Da findet er dann keine Debug-Umgebung.

Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verwende alle möglichen Versionen von Quartus von 13.0 aufwärts auf 
Linux (Debian und Ubuntu).

Außer dem initialen Gefummel, bis die älteren Versionen laufen, keine 
Probleme.

Sämtliche Lite-Versionen enthalten Signaltap. Für mich aber nicht das 
ultimative Debugging-Tool. Ich zieh's nur für die ganz harten Fälle 
raus.

Statt des abgestrippten Altera-Modelsim verwende ich meist ghdl + 
gtkwave, das ist deutlich schneller.

Autor: No Y. (noy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Quartus unter Manjaro ebenfalls kein Problem.

Nimm doch das DE0 Nano Soc.
Da fehlt dir glaub nur der HDMI dafür kleiner und günstiger. Und zur Not 
steckt man sich ein Display Board oben drauf...

Autor: L. C. (lcl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du auch an Xilinx Interesse hast:
Du könntest mal bei Trenz schauen, die haben auch einige günstigere 
Eigenentwicklungen mit Xilinx Zynq-SoCs. z.B. die "ZynqBerry" oder 
"ArduZynq" als RPi- bzw. Arduino-pinkompatible Dev-Boards.
Allerdings nur 100BaseT.

Ansonsten könnte vielleicht ein Z-Turn (z.B. MYS-7Z020-C-S) etwas für 
dich sein. Spontan sehe ich Gigabit, HDMI, USB-UART und den schon recht 
potenten Zynq-7020.

Ansonsten gibt es noch das Pynq-Z1, das ist recht verbreitet und 
entsprechend dokumentiert, da hast du auch den 7020 und 
Gigabit-Ethernet. Allerdings wird das ohne Studentenpreis schon 
unattraktiv preislich...

Bis hoch zum 7030 sind -wie ich es verstehe- alle Zynq-SoC mit der 
WebPack-Edition nutzbar, siehe 
https://www.xilinx.com/products/design-tools/vivado/vivado-webpack.html

Vivado läuft auch offiziell mit Ubuntu (lange bis 16.04, seit Vivado 
18.3 endlich auch Ubuntu 18.04).

: Bearbeitet durch User
Autor: Dergute W. (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Merci fuer die Infos; ich bin derzeit eher fuer Intel/Altera 
aufgeschlossen, mit Xilinx hab' ich so schon genug Spass, die brauch' 
ich nicht noch nach Feierabend ;-)
Nochdazu bin ich entweder so bloed oder die Designs so geartet, dass ich 
auf Signaltap/Chipscope keinesfalls verzichten will.
Aber das mit der Speicherzuordnung:

Sigi schrieb:
> Zum einen können sie an die
> CPU (d.h. ARM) per HPS/HC angeschlossen sein, dann
> ist der DRAM für die FPGA-Logik nicht sichtbar. Oder
> sie sind von der FPGA-Logik ansteuerbar (SC oder HC),
> dann stehen sie aber der CPU nicht mehr zur Verfügung.

hoert sich garnicht gut an. Wie strikt ist das denn tatsaechlich? Ich 
haett' jetzt in meinem jugendlichen Leichtsinn gedacht, ich flansch' an 
den ARM-Part irgendeinen DMA-Controller im FPGA an, und beschreibe/lese 
dann ueber den das DRAM des ARMs. Wenn ich da natuerlich ordentlich Gas 
gebe, wird's fuer den ARM halt dann laenglicher dauern, mal wieder ein 
paar Cachelines zu ziehen und er wird zunehmend vor sich hin idlen.
Mir schweben da aber schon mittlere Datenraten zwischen FPGA und RAM in 
der Groessenordnung 4..6 GBit/sec vor.
Das scheint mir der springende Punkt bei dem DE10-Nano zu sein: Das nur 
an den ARM angeflanschte DRAM. Hm...

Gruss
WK

Autor: Christophz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dergute W. schrieb:
> hoert sich garnicht gut an. Wie strikt ist das denn tatsaechlich? Ich
> haett' jetzt in meinem jugendlichen Leichtsinn gedacht, ich flansch' an
> den ARM-Part irgendeinen DMA-Controller im FPGA an, und beschreibe/lese
> dann ueber den das DRAM des ARMs.

Beim Zynq läuft das genau so, wie du das beschrieben hast.

Keine Ahnung wie das bei Intel/Altera aussieht aber wie du gehe ich 
davon aus, dass das wohl schon so vorgesehen ist. Hoffe, da kann hier 
noch jemand mehr Erfahrung beisteuern.

Autor: etaut (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab hier das Terasic de1-Soc board herumstehen. Das hat eigentlich 
alles was man so braucht, ist aber auch etwas teurer.
ein embedded Linux hab ich darauf schon am laufen gehabt.

Siehe hier:
https://www.mouser.at/new/terasic-technologies/terasic-de1-soc/
Lg

Autor: Dergute W. (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Hm, was haben die Terasics sich denn dabei gedacht, bei dem DE1-SoC 
Board da ein 16bit breites SDR-SDRAM an den FPGA-RAM-Controller 
anzuflanschen?
Kriegt man denn ueberhaupt noch SDRAM-Bausteine ausser vom Pollin?
Wieso macht man sowas? Und setzt nicht einfach genau den selben Typ 
DDR[234]-RAM ein, der schon am anderen Memoryinterface haengt? Wenn's 
mir bei Speicherzugriffen nicht pressiern wuerde, braeucht' ich kein 
FPGA, da tut's ein µProzessor auch.
Und dafuer soll ich dann 100 Ocken mehr als fuer's DE10-Nano locker 
machen?
Ueberzeugt mich noch nicht so ganz.

Nach dem Usermanual vom DE10-Nano scheints schon irgendwie zu gehen, vom 
FPGA auf's SDRAM des HPS zuzugreifen. In Kap. 5.4 behaupten sie, da ein 
Video rauszulesen. Im Kap. 5.5 erzaehlen sie was von "RTL code" - das 
klingt doch auch schon wieder irgendwie nach geheim/teuer.
Oder truegt mich da mein Instinkt und das klappt problemlos, prima und 
performant?

Gruss
WK

Autor: Sigi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dergute W. schrieb:
> Sigi schrieb:
>> Zum einen können sie an die
>> CPU (d.h. ARM) per HPS/HC angeschlossen sein, dann
>> ist der DRAM für die FPGA-Logik nicht sichtbar. Oder
>> sie sind von der FPGA-Logik ansteuerbar (SC oder HC),
>> dann stehen sie aber der CPU nicht mehr zur Verfügung.
>
> hoert sich garnicht gut an. Wie strikt ist das denn tatsaechlich?

Dergute W. schrieb:
> Nach dem Usermanual vom DE10-Nano scheints schon irgendwie zu gehen, vom
> FPGA auf's SDRAM des HPS zuzugreifen. In Kap. 5.4 behaupten sie, da ein
> Video rauszulesen. Im Kap. 5.5 erzaehlen sie was von "RTL code" - das
> klingt doch auch schon wieder irgendwie nach geheim/teuer.

Das Kapitel hatte ich mir gerade auch kurz angeschaut,
so wie es da beschrieben wird, ist HPS per buildin-Bridge
auch mit dem FPGA verbunden (wusste ich auch nicht:() und
kann dann z.B. per Avalon-Interface oÄ an deine Logik
angeschlossen werden.
Du musst dich also nur in die entsprechenden Builder-Tools
einlesen und dir anschauen, wie es im Beispiel gemacht wird.

Autor: FPGA zum Spass (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dergute W. schrieb:
> Moin,
>
> Hm, was haben die Terasics sich denn dabei gedacht, bei dem DE1-SoC
> Board da ein 16bit breites SDR-SDRAM an den FPGA-RAM-Controller
> anzuflanschen?
> Kriegt man denn ueberhaupt noch SDRAM-Bausteine ausser vom Pollin?
> Wieso macht man sowas? Und setzt nicht einfach genau den selben Typ
> DDR[234]-RAM ein, der schon am anderen Memoryinterface haengt? Wenn's
> mir bei Speicherzugriffen nicht pressiern wuerde, braeucht' ich kein
> FPGA, da tut's ein µProzessor auch.

Könnte daran liegen das 400 Mhz DDR (=effektiv 800Mhz mit 32 Bit) für so 
einen Cyclone ein bischen viel wird.
Schafft der das an den IOs überhaupt?

Ansonsten ist die Frage eh was du brauchst: Bandbreite sagt ja nicht 
viel, kommt immer drauf an ob wahlfreier Zugriff, ReadWrite gemischt, 
Burstlänge, minimale Zugriffzeit, etc...

Autor: Dergute W. (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

FPGA zum Spass schrieb im Beitrag #5815933:
> Schafft der das an den IOs überhaupt?

Ja, angeblich hat er ja 2 RAM-Controller als Spezialhardware. Und es 
gibt ja auch noch das "SoC System on Module Evaluation KIT", da siehts 
so aus als haetten sie da an beide Ports jeweils 32bit breit DDR3 
angeschlossen.
Kann nur sein, dass der FGPA-Speichercontroller nicht ganz auf die 
400Mhz kommt, irgendwas hab' ich da schonmal gelesen,mein ich. Waer' ja 
wurscht. Schneller als 16bit SDR ist's allemal.
Nur: Das Ding kost' dann fast 400.-- Da guckt der Osterhase sehr 
gequaelt, wenn er das ins Nest kacken soll :-)

FPGA zum Spass schrieb im Beitrag #5815933:
> ob wahlfreier Zugriff, ReadWrite gemischt,
> Burstlänge,
Reine 16er Bursts, sehr haeufig auch die 16er Bursts auf der selben 
Page, also eigentlich alles sehr RAM-freundlich.
Hatte sowas aehnliches schonmal vor >10 Jahren auf einem Cyclone3 mit 
32bit SDRAM (85MHz) am laufen. Da konnte man schoen sehen, dass es nach 
Anlegen der Adresse und des Schreib/Lesebegehrs immer minumum 12 Takte 
gedauert hat, bis der Burst losging. Also minimum 28 Takte fuer den 
Burst. Oft auch deutlich laenger. Also so ungefaehr eine Ahnung, wie 
weit weg ich von der PMPO-Bitrate bin, hab' ich.


Gruss
WK

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.