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 **** |
2 | |
3 | make clean all |
4 | rm -rf MeineApplikation_main.o MeineApplikation_main.d MeineApplikation.elf |
5 | mb-gcc -c -mno-xl-soft-mul -mxl-pattern-compare -mcpu=v7.10.a -I../../microblaze_0_sw_platform/microblaze_0/include -xl-mode-executable -g -O2 -oMeineApplikation_main.o ../../../MeineApplikation/src/MeineApplikation_main.c |
6 | |
7 | Building target: MeineApplikation.elf |
8 | mb-gcc -o MeineApplikation.elf MeineApplikation_main.o -mno-xl-soft-mul -mxl-pattern-compare -mcpu=v7.10.a -L../../microblaze_0_sw_platform/microblaze_0/lib -xl-mode-executable |
9 | Finished building: MeineApplikation.elf |
10 | |
11 | ************** Validating ELF File ************** |
12 | |
13 | Validating ELF Section Addresses with Hardware Address Map... |
14 | elfcheck -noheader -mhs C:/Workdir/Xilinx/Tests/meinTest/system.mhs -p xc3s500efg320-4 -xmpdir C:/Workdir/Xilinx/Tests/meinTest -pe microblaze_0 MeineApplikation.elf |
15 | 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
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.