Hallo,
ich suche gerade einen passenden IP core für ein XC3S400 FPGA.
Am besten wäre der core in VHDL geschrieben - kann aber zur Not auch
Verilog sein.
Es soll vom gcc unterstützt werden - evtl. auch nach aufspielen eines
Toolchains.
Falls es einen anderen C-Compiler gibt, wäre es auch eine Möglichkeit.
Es sollen mindestens 64k Program Memory und 64k Data Memory unterstützt
werden.
Ich habe mir bei www.opercores.org z.B. den 8051 oder den OpenRISC 1000
angesehen - was haltet Ihr davon? Sollte es damit (in endlicher Zeit)
möglich sein, sich eine anständige Entwicklungsumgebung aufzubauen???
Oder mit welchen Softcore Prozessoren arbeitet Ihr (MIT C-Compiler)?
Beste Grüße,
Andreas
Hatte schon den LEON3 von Gaisler im einsatz.
http://www.gaisler.com/cms/
Laeuft gut, compiler ist ein gcc, debugging und ISP recht einfach ueber
verschiedene interfaces. Kann dir aber nicht sagen ob das in einem
XC3S400 gut Platz hat.
Arbeiten tu ich hauptsaechlich mit NiosII, aber das nuetzt dir wohl
nicht viel.
Der Microblaze wuerde deinen Anforderungen wohl am besten gerecht,
ausser es muss eine 'gratis' Loesung sein.
Cheers, Roger
Hallo Roger,
vielen Dank für Deine Antwort!
Den Microblaze habe ich mir auch schon angeschaut. Eine 'gratis' Lösung
(wie z.B. der zu kleine PicoBlaze) muss es nicht unbedingt sein - aber
unnötige Kosten möchte ich meiner Firma halt auch ersparen...
Wenn ich mir sicher wäre, dass MicroBlaze für meine Ansprüche gut
funktioniert, dann würde ich mir evtl. auch das EDK kaufen.
Oder würde ich dann auch das SDK von Xilinx brauchen???
Ich habe mir (vor längerer Zeit) schon mal eine Trial heruntergeladen.
Doch aus Zeitgründen konnte ich diese wahnsinnig mächtigen Tools gar
nicht ausprobieren. Und jetzt dürfte die Version abgelaufen sein :-(
Kann mir evtl. jemand sagen, was für Tools (wenn man einen C-Compiler
einsetzen will) für den MicroBlaze nötig sind?
Grüße,
Andreas
Mein letztes MicroBlaze Projekt ist schon etwa vier Jahre her.
Der gcc/gdb war dann schon Bestandteil des EDK.
Software Entwicklung ging damit ziemlich flott (Heute vermutlich noch
besser).
Alles in allem habe ich mit dem MicroBlaze sehr gute Erfahrungen
gemacht.
Cheers, Roger
Ein XC3S400 hat aber nur 288Kbits Block Ram, und diese sind zu 16 x 2Kx9
bit organisiert.
Du hast intern also nur 32 KByte Speicher.
Wenn Du 64 KByte Programmspeicher und 64KByte RAM brauchst, musst Du
externen Speicher ansprechen.
Also ich würde auch den MicroBlaze empfehlen. Da hat man alles aus einer
Hand. Das EDK ist bissl gewöhnungsbedürftig, aber nach etwas
Einarbeitung funktioniert es gut. Der Microblaze wird dann über
Eclipse/GCC/GDB programmiert und debuggt. Debuggen geht über das normale
JTAG Kabel von Xilinx. Musst halt schauen, dass du eventuell einen
größeren Spartan nimmst, mit mehr Blockram, der 400er ist da schon arg
klein.
Hallo,
vielen Dank für Eure Antworten.
Ich bin gerade dabei, mir das aktuelle EDK herunterzuladen.
Die ersten Tests werde ich wohl mit dem XC3S400 machen und mich mit
weniger Platz zufrieden geben.
Bei Erfolg muss ich dann wohl auf einen größeren umsteigen - ich wollte
allerdings dem Ball Grid Arrays so lange wie möglich ausweichen...
Damit habe ich halt noch keine Erfahrung...
Beste Grüße,
Andreas
> ich wollte allerdings dem Ball Grid Arrays so lange wie> möglich ausweichen..
Davor braucht man zumindest im professionellen Bereich keine Angst zu
haben.
Ein guter Dienstleister für die Leiterplattenfertigung schafft das ohne
Probleme.
Andreas N. wrote:
> Falls es einen anderen C-Compiler gibt, wäre es auch eine Möglichkeit.> Es sollen mindestens 64k Program Memory und 64k Data Memory unterstützt> werden.T51-Core. Wird vom sdcc unterstützt, Anleitung zum Einstieg findest
du im verlinkten Artikel.
Klaus Falser wrote:
>> ich wollte allerdings dem Ball Grid Arrays so lange wie>> möglich ausweichen..> Davor braucht man zumindest im professionellen Bereich keine Angst zu> haben.> Ein guter Dienstleister für die Leiterplattenfertigung schafft das ohne> Probleme.
Hallo Klaus,
das ist schon richtig.
Ich lasse z.B. bei MVPCB fertigen. Die kriegen das mit Sicherheit hin.
doch bisher habe ich nur in zwei Layern (mit Target) gearbeitet und bei
Bal Grids werde ich sicherlich mehrere Layer benötigen.
Das soll auch noch nicht das Problem sein.
Aber wenn ich jetzt eine für mich neue Prozessor-Technologie UND eine
neue Leiterplatten UND Bestückungstechnik beginne, dann wird mir halt
die Anzahl der Fehlerquellen langsam zu hoch...
Vielleicht sollte ich mich einfach mal mit unserem Bestücker
kurzschließen... Der hätte sicherlich ein paar Tips für mich.
Gruß,
Andreas
> bisher habe ich nur in zwei Layern (mit Target) gearbeitet
Für den Betrieb eines XC3S400 im professionellen Einsatz würde ich 4
Layer dringend empfehlen ...
Hallo,
ich habe nun meine ersten Schritte mit dem EDK (+SDK) gemacht.
Ich bin schon mal so weit, dass ich Daten auf der LCD ausgeben kann (war
ein Demoprojekt auf der Xilinx-Seite).
In einem von mir selbst erstellten Projekt kann ich Daten über die
RS232-Schnittstelle ausgeben und die LEDs ansteuern.
Ich denke, dass ist schon mal einiges.
Mein Problem:
Warum funktioniert z.B. der printf-Befehl nicht - der abgespeckte
xil_printf-Befehl aber schon?
Fehlermeldung des SDK für mein Programm MIT printf:
1
**** Full rebuild of configuration Debug for project MeineApplikation ****
ERROR:MDT - Section .text (0x50 - 0xEF53) does not fit completely into memory
16
ilmb_cntlr (0x0 - 0x7FFF).
17
ERROR:MDT - Section .init located at address 0xEFA4 does not map to any memory
18
found in the hardware design.
19
ERROR:MDT - Section .fini located at address 0xEFCC does not map to any memory
20
found in the hardware design.
21
ERROR:MDT - Section .ctors located at address 0xEFEC does not map to any memory
22
found in the hardware design.
23
ERROR:MDT - Section .dtors located at address 0xEFF4 does not map to any memory
24
found in the hardware design.
25
ERROR:MDT - Section .rodata located at address 0xEFFC does not map to any memory
26
found in the hardware design.
27
ERROR:MDT - Section .data located at address 0xF580 does not map to any memory
28
found in the hardware design.
29
ERROR:MDT - Section .eh_frame located at address 0xFAB0 does not map to any
30
memory found in the hardware design.
31
ERROR:MDT - Section .jcr located at address 0xFAB4 does not map to any memory
32
found in the hardware design.
33
ERROR:MDT - Section .bss located at address 0xFAB8 does not map to any memory
34
found in the hardware design.
35
ERROR:MDT - Section .stack located at address 0xFB24 does not map to any memory
36
found in the hardware design.
37
ERROR:MDT - elfcheck failed!
38
INFO:MDT - Try using the linker script generation tools to generate an ELF that
39
maps well to your hardware design.
40
make: *** [MeineApplikation.elf] Error 2
41
Build complete for project MeineApplikation
Wo anders im Netz habe ich gelesen, dass es wohl daran liegt, dass der
printf-Befehl nicht ins BRAM passt (ich benutze KEIN SRAM - um alles am
Anfang möglichst einfach zu halten...)
OK, selbst wenn es so ist, dass der printf-Befehl nicht passt - wo finde
ich eine Referenz mit den portierten Xilinx-C-Befehlen wie z.B.
xil_printf?
Wäre schön, wenn mir jemand ein paar Tips geben könnte.
Beste Grüße,
Andreas
Eine eigene Frage?
Dieser Thread ist über 17 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.