Gast
#2029965
Hallihallo zusammen, ich hab mal ein kleines SoC (System-on-a-Chip) auf die Beine geworfen. Die Basis ist ein AtMega103 softcore von opencores.org. (8-Bit AVR) Dem habe ich ein Wishbone-interface verpasst, sodass man damit jegliche wishbone-basierte Peripherie steuern kann. Das Projekt implementiert eine relativ einfache Ausbaustufe des SoC, es ist als Grundbaustein gedacht, falls man mal auf die Schnelle einen pflegeleichten und eventuell schon vertrauten (AVR) softcore in seinem FPGA-Design braucht. Damit entfällt jegliches "Gebastel" z.B. mit Picoblazes etc. etc. Als Beispiel wird im Projekt im Anhang ein UART-Core angesteuert und die LEDs und Schiebeschalter meines "Xilinx Spartan-3E Starer Kits" werden ebenfalls verwendet. Dank des Wishbone-Interfaces (http://en.wikipedia.org/wiki/Wishbone_%28computer_bus%29) kann weitere Peripherie rasch und ohne Probleme angestöpselt werden. Es werden sowohl der IO- als auch der RAM-Bus des AVR als Wishbone-Bus hinausgeführt. Die firmware für den AVR wird wie jede normale firmware eines AtMega103 entwickelt, z.B. mit WinAVR. Mittels eines speziellen tools von Xilinx (data2mem, das jeder ISE-Installation beiliegt) muss nicht jedes Mal, wenn man die firmware updaten will, der ganze core neu implementiert werden. Das tool kann nämlich direkt einen vorhanden Bitstream mit einem entsprechenden .elf-file zu einem neuen Bitstream modifizieren, welcher dann die BRAMs des Programmspeichers korrekt lädt beim Initialisieren des FPGA. Man muss also nur den Bitstream mit dem Tool neu erzeugen und schwupps ist die neue firmware im FPGA. Dauert keine 5 Sekunden. Weitere Infos gibts in der Doku im .zip des Projekts Anhang. Ich bin jetzt auch nicht der VHDL-Profi, falls also jemand Verbesserungsvorschläge hat, bin ich gerne offen dafür! Herzlichen Gruss und viel Spass damit! Mario