Hi Zusammen, ich habe folgendes Problem und vielleicht kann mir jemand weiterhelfen. Ich habe mir blauäugig ein Bemicro SDK Board (Cyclone IV E) gekauft und mir mühevoll die Entwicklungsumgebungen installiert und erfolgreich ein paar kleinere Spielereien mit dem NIOS II angestellt. Nun wollte ich endlich mal das externe Mobile DDR RAM testen und stelle fest, dass die IP Cores zur Ansteuerung des Speichers lizenzpflichtig sind, was mich schon wieder tierisch aufregt. Nachdem ich nun etwas über die Lizenzpolitik von Altera gelesen habe, wird mir schlecht, aber dennoch würde ich ganz gerne ein Cyclone IV E mit einem externen Speicher koppeln und über Qsys zur Ansteuerung ein Core verwenden, der mich nicht dran hindert POF Files zu generieren oder die Zeitlimitierte Version kompiliert. Mich interessiert dabei, ob es Speicherbausteine gibt, die ich an das FPGA anbinden kann, einen Core (Speichercontroller) verwenden kann, wo ich nicht direkt eine Lizenz brauche und trotzdem mein Design kompilieren und auf ein EPCS laden kann, wo das FPGA sich später die Configs herholt und den NIOS lädt. Welche Speicherbausteine setzt ihr ein und mit welchem kostenlosen Core oder Komponente bei Qsys verwendet ihr? Da ich erst dabei bin, mich in die Thematik einzuarbeiten, bin ich nicht gewillt für den Kram direkt eine Lizenz zu holen, dennoch möchte ich nicht auf den Luxus verzichten ein Board über mehrere Tage laufen zu lassen (ohne Host oder Timelimited). Welche Möglichkeiten gibt es da? Was für Speicher benötigt man für ein kleines Nios Linux System? Besten Dank im voraus und Gruß Spice
:
Verschoben durch User
Du kannst die Speicheranbindung ja auch selbst schreiben ... eine Frage der Abwaegung. Wie lange dauert's wie viel kostet der Einkauf. Fuer einen Prototypen, fuer den Proof of Konzept kann man sich vielleicht eine Lizenz fuer ein Stueck kaufen. Falls nicht - selbst schreiben.
Shau noch mal in die PDFs rein, da wird ein Link zu einer Eval-Version eines IP-Cores angegeben. Ist zwar nur Eval, aber besser als nichts. Ausserdem gibt's im Netz sicherlich noch ein paar freie IP-Cores, einfach mal suchen.
Moin, bin mir nicht mehr sicher, weil's schon ca. 8 Jahre her ist, aber es koennte sein, dass damals der "SDR"-SDRAM Controller nix extra gekostet hatte, erst die DDR-SDRAM Cores... Gruss WK
Mir ist nooch eingefallen, dass bei einigen der Terasic-Booards DDR- und DDR2-RAMs verbaut sind. Entweder werden von QuartusII DDR-IPs angeboten (müssten dann im Qsys-Katalog sein) oder sie werden auf den zugeh. CDs zu finden sein. Such mal da weiter. Ich selbst habe ein NEEK-Board, da ist ebenfalls DDR-RAM verbaut. Fang da mal an zu suchen.
SDRAM Controller sind konstenfrei. DDR/DDR2/DDR3 Controller im Cyclone V sind teilweise als Hard-IP ausgeführt und sind ebenfalls frei. Als Software-IP allerdings nicht. Hast Du Cyclone iv, kannst Du trotzdem DDR Controller verbauen, allerdings musst Du, solange Du damit rumspielst, Altera-JTAG dran haben (Evaluation-Modus) Grüße Kest
Hallo Zusammen, vielen Dank an euch alle für die Antworten. Ich werde mich dahingehend mal schlau(er) machen :-) Eine Frage habe ich noch (speziell an Kest) weil er es anspricht. Ich habe heute erfolgreich die sof und elf-Files auf einen EPCS geschrieben und das Board konfiguriert sich auch von selbst... ABER... Sobald ich die Entwicklungsumgebungen schließe (also JTAG trenne), hört das Board irgendwann auf zu arbeiten --> Evaluation-Modus lese ich gerade... Ich will das Board auch autark ohne Rechner betreiben können, was muss ich da tun? Ich habe schon drauf geachtet, dass ich keine Cores verwende, die time limited sind, aber wieso brauche ich unbedingt ein JTAG-Adapter an dem System, damit es läuft? Ich verwende aktuell nur den NIOS II/e (da lizenzfrei und eine PLL). Wo ist da schon wieder eine Restriktion? Besten Dank nochmal Gruß Spice
edit: Ich benutze übrigens den BeMicro SDK, falls ich das noch nicht erwähnt habe... Gruß Spice
Ja, das ist die Lizenzgeschichte von QuartusII bzw. deren IPs. Deren Einschränkung ist nunmal, dass JTAG ständig verbunden sein muss. Unabhängiges "Laufenlassen" ist damit nicht möglich.
Na das ist ja mal echt miese. Damit schließt Altera also die kleineren Hobbyprojekte aus. Um also die Hardware autark laufen lassen zu können, benötigen wir also eine Lizenz. Welche? Quartus subscription oder ist dafür die NIOS Lizenz nötig? Wie hat man das zu verstehen, dass diese Lizenz nur ein Jahr läuft? Wenn man sich ein Atmeldevelopmentboard kauft, bekommt man die volle Funktionalität vom AtmelStudio doch auch kostenlos. Da wo es spannend wird, hört es für den Hobbyentwickler also auf... Ist das bei Xilinx und dem Microblaze anders? Danke und Gruß Spice
Hi Zusammen, ich verstehe es nicht... Der Nios II/e soll doch nun frei erhältlich sein? Heißt "frei" bei Altera etwa in Benutzung mit einem Rechner? Danke und Gruß Spice
Naja, ganz so kannst sehe ich das nicht. Die Hersteller leben ja nicht nur vom FPGA-Verkauf, sondern auch von Tools und IPs. Und wie soll der Hersteller denn zwischen Hobby- und prof. Projekt unterscheiden. Und man muss bedenken, dass FPGA-Tools bei weitem weniger verkauft werden als uC-Tools.
Hi, kann jemand bestätigen, dass der NIOS II/e ohne Lizenz auch nur mit JTAG läuft? Heisst das bei Altera "frei"? Oder benötigt man eine spezielle Version von Quartus, damit er NIOS II/e frei erhältlich ist? Danke nochmal an alle Gruß und schönen Sonntag Spice
Moin, muss deine CPU denn die Power bringen, d.h. muss es wirklich uClinux sein, oder tut es auch bare metal? Für letzteres gibt es eine Menge herstellerunabhängiger Lösungen, am Schluss musst Du aber selber wissen, wieviel Zeit Du in kleine Details stecken willst oder was sich für dich amortisieren muss. Es gibt da allerdings auch ein paar kleine Communities, die fertige und sehr robuste OpenSource-Lösungen haben, siehe z.B. Gadgetfactory. Eventuell ist ein Umstieg auf eine andere HW sehr viel günstiger, wo von vornherein kein Dauerärger mit versteckten Kostenfallen absehbar ist. Das fand ich bei Altera - abgesehen von der Schwerfälligkeit des Qsys - sehr intransparent und nervig.
Hi, danke für die Antwort. µCLinux brauche ich nur mal zum spielen, aber eigentlich reicht es mir, wenn ich konventionell programmiere, wie auf einem AVR/ARM & Co... Ich finde bei dem Nios sehr charmant, dass man z.b. ChibiOS portiert bekommt, mehr nicht... Eigentlich suche ich nach einem µC, der einfach schon bissl Peripherie mitbringt. UART, SPI, Timer, Interrupts und eventuell USB, Ethernet, SD-Card und Speicher... Dazu eine anständige Kommunikation mit dem Toplevel reicht mir eigentlich für kleinere Steuerungsaufgaben aus. Gibt es da irgendwas opensource-technisches? Danke und Gruß Spice
Suchst Du nun einen uC für das FPGA oder darf es auch was eigenständiges sein? Wie z.B. ein Evalboard mit einem Cortex-M3/M4?
Hi Spice, bei der Gadgetfactory findest du z.B. den ZPUino, der geniesst einiges an Popularität, gerade wenn Du aus der AVR-Ecke kommst. Das oft genannte OpenSource-Zeug von opencores.org hat mich bisher im Durchschnitt eher geärgert, viel davon ist nicht zu Ende gedacht und artet für den Anwender oft in Gefrickel aus. Was oft fehlt, sind die passenden Debug-Tools. Ansich hätte ich auch noch eine Lösung auf Basis der ZPU-Architektur, aber leider nur für Lattice und Xilinx und ausschliesslich für 'langsame' Minimalsysteme mit Programm im SPI-Flash. Beispielfilmchen: https://www.youtube.com/watch?v=Nyvf0xb7eVs Muss dafür aber noch etwas Doku machen, bevor es opengesourct (mein Gott, wat'n Deutsch) werden kann. Grüsse, - Strubi
Hallo Spice, ich habe das gerade nochmal mit dem Nios und externen SDRAM getestet. Ich habe hier keine Probleme wenn ich das USB Kabel vom Rechner abziehe. Dann läuft die Anwendung auf dem FPGA weiter. Hier ein NiosII(e) mit externen SDRAM und ChibiOS. Das Beispiel läuft auf einem Altera DE0-CV: http://www.emb4fun.de/fpga/examples/index.html Gruß, Michael
Wow besten Dank für die Nachrichten... Top Support muss ich sagen, besser als bei ALTERA :-D @Strubi: Schon oft davon gehört, aber noch nicht richtig angeschaut... werde ich nachholen... @Mifi: Besten Dank für die Info und den Test. Bei mir läuft das Programm erstmal auch weiter, jedoch nach etwa 5-15 Minuten bleibt alles einfach stehen ohne JTAG... Genau das macht mich halt stutzig, zumal ich in meiner Anwendung nur den NIOS ii/e verwende. Woran könnte das liegen? Quartus sagt beim synthetisieren, dass zwar keine Lizenz gefunden wurde, jedoch für den nios e auch keine Lizenz erforderlich ist und synthetisiert auch normal durch. Auf dem BeMicro SDK ist leider nur ein Mobile DDR RAM drauf, wo ich erstmal eine Evaluation Lizenz runterladen muss mit dem entsprechenden Controller Core. Soweit bin ich aber noch nicht, da ich eigentlich erstmal eine standalone Applikation ohne JTAG ans laufen bekommen will (mit dem lizenzfreien!??!? Nios ii/e) --> Daran scheitert es momentan Gruß Spice
@mifi: Welche Version von Quartus benutzt du, wenn ich fragen darf? hast du ein License.dat file irgendwo auf den Rechner? Meine Version 12.1 meckert, dass ich keine Lizenz habe (ist ja auch ok für die web Edition) aber warum der Nios irgendwann ohne Jtag aussteigt ist mir nicht klar. Lasse ich den Prommer dran (also USB_Blaster) bleibt der (Nios ii/e) irgendwann stehen. :-(
Ich hatte eben die 15.0.2 benutzt, und habe definitive keine Lizenz da ich nur die WebEdition verwende. Kannst Du das "irgendwann" noch genauer spezifizieren? Ich würde dann hier nochmal einen Test machen wollen.
Du schreibst: >Meine Version 12.1 meckert, dass ich keine Lizenz habe >(ist ja auch ok für die web Edition) Das verstehe ich nicht, bei mir meckert hier nichts! Hast Du evt. die "Subsciption Edition" verwendet? Wenn ja, installiere mal die "Web Edition". Oder benutzt Du zum Nios II/e doch das DDR RAM? Wenn das so ist dann bricht dein Design nicht wegen dem Nios sondern wegen der Lizenz für das DDR RAM ab. Kann das sein? Mein Beispiel läuft jetzt schon 20 Minuten, und ich vermute das es auch noch länger laufen wird.
Hey Milfi, also ich verwende die 12.1 Webedition, nios II/e, pio, altpll, flash_controller, on_chip_memory und spi... Ich packe gleich nochmal die Ausgabe in ein paar screenshots... Gruß Spice
Hi, irgendwas ist gerade passiert und ich habe in Qsys folgende Fehlermeldung... Anbei die Bilder... ich mache mal ein Neustart und versuche das Problem zu beseitigen :-) Grup Spice
Also, ich bin gerade wieder so weit, dass die Sachen wieder durchkompilieren und beim Testen habe ich festgestellt, dass die Applikation nach exakt 2048bytes auf dem JtagUart nach dem ausstecken des JTAG-USB-Steckers (oder dem Schließen des Terminals), stehen bleibt. Starte ich nach dem Hängenbleiben des Controllers ein nios2terminal neu, kommen die Daten aus dem puffer durch und der µC läuft wieder weiter. Ich hatte in der Mainloop noch eine JTAG_Debugausgabe mit einem Byte pro Sekunde, die mir irgendwann mein Puffer vollgeschrieben hat (nach relativ langer Zeit)... ISt das mein Cache was vollgeschrieben wird? Nachdem ich nun die JTAG-Ausgabe auf 1024 Bytes pro sekunde gestellt habe, konnte ich reproduzieren, dass es nach 2048bytes stehen bleibt, wenn kein JTAG-Debugger an der Schaltung hängt bzw kein Terminal läuft... Ich werde jetzt mal die JTAG-Ausgabe ausstellen und die Schaltung laufen lassen... vermute das war der Fehler... Wo bleiben die Daten hängen?? In welchem Puffer? Ich habe jeweils 1024 Bytes stacksizes (Exception, Interrupt) gewählt, kommt das daher? Danke nochmal Gruß Spice
Nur so mal so eine Idee auf die Schnelle. Tausch doch mal den JTAG Uart gegen einen echten UART aus. Ist das Verhalten dann auch so?
Ja, das habe ich auch schon so gehört, dass wenn der Puffer der JTAG UART voll ist, das dann die CPU stehen bleibt. Ich meine dass das damals auch von Altera bestätigt wurde. Selbst ist mir das verhalten aber noch nie aufgefallen. Wobei ich dazu sagen muss das ich schon lange keinen JTGA UART mehr verwendet habe. Kann man das verhalten evtl einfach im BSP einstellen?
Hi, der USB-Fifo-Chip hat 1024 Bytes, daher wundert es mich, dass nach 2kB die Schaltung ausfällt, aber wenn ich JTAG-Uart nicht benutze, ist alles grün... Danke nochmal für eure Hilfe... Gruß Spice
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.