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
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
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
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
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