www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Mikrocontroller in VHDL


Autor: VHDL Anfänger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
erstsmal zu meinem Background: Ich bin mit VHDL noch ein wirklicher 
Anfänger.
Habe ein kleines Demoboard mit dem CPLD XC9572 und habe damit meine 
ersten kleinen Binkereien gemacht... Ich hoffe, man wird mir meine etwas 
naiven Fragen verzeihen und mich nicht auf http://www.giyf.de/ verweisen 
:-)

Also ich habe irgendwo gelesen das man in so ein FPGA auch einen 
Mikrocontroller reinzaubern kann.

1. Gibt es da einen wirklich kleinen kostenlosen Core der vieleicht 
sogar in ein CPLD rein passt? Ich wäre auch mit einer 4-Bit-MCU wie 
GC49C501 schon glücklich... ;-)
GC49C501 ist eine 4-Bit-Version vom 8051

2. Wie wird so ein Mikrocontroller im FPGA programmiert? Assembler oder 
C?

3. Ist der Programmspeicher des Mikrocontroller's auf dem FPGA oder ein 
externes EPROM?

4. Gibt es den Quellcode für einen 8051-Core(bin ein alter 8051-Fan!) 
auch kostenlos zum runterladen?

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht auf ne CPLD schon, auf nem 9572 wirds aber versammt eng :)
Für eine 4bit CPU sollte es wohl noch reichen.
Programmiert wird im schlimmstenfall in bytecode es sei den du schreibst 
dir einen Assembler oder C-Compiler...

@8051 core: schau mal auf opencores vorbei... (Siehe Google ;)

Autor: R. Freitag (rfr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
www.opencore.ork ist dein Freund...
Robert

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VHDL Anfänger schrieb:

> 2. Wie wird so ein Mikrocontroller im FPGA programmiert? Assembler oder
> C?

Hängt rein vom Core ab.  Du findest bei opencores beispielsweise auch
einen ATmega103-Clone, der ließe sich problemlos in C programmieren.
Sollte bei den von dir bevorzugten 8051s aber auch möglich sein.

Die Programmierschnittstelle muss der Core natürlich selbst implemen-
tieren, beispielsweise als ISP-Schnittstelle.  Die spricht man dann
von außen genauso an, als wäre sie ein entsprechender Controller in
(festverdrahteter) Hardware.

Allerdings hat ein Controller ja mehr als eine CPU, und nicht jedes
Peripheriegerät wird sich in einem FPGA abbilden lassen -- denk nur
an Dinge wie Analog-Komparator oder ADC.

> 3. Ist der Programmspeicher des Mikrocontroller's auf dem FPGA oder ein
> externes EPROM?

Meist einfach RAM im FPGA, d. h. ist beim Ausschalten futsch.  Da
das FPGA aber sowieso aus einem Flash-ROM geladen wird, kann natürlich
das Flash-Image auch eine Vorbelegung für den Controller-Speicher
enthalten.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>  CPLD XC9572
Da hast du nur 72 Flipflops  :-/
Allein eine einzige Registerbank eines 8051 braucht 64 Bits. Da hat dann 
gerade noch der Akku Platz, dann ists aus, 72 FFs verbraten. Kein Platz 
mehr für PC, B, PSW, SP, DPTR ...

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ingrid meinte:

>> 3. Ist der Programmspeicher des Mikrocontroller's auf dem FPGA oder ein
>> externes EPROM?
>
> Meist einfach RAM im FPGA

Ähem, natürlich kann es auch ein externer RAM sein.

Autor: Fpga Kuechle (fpgakuechle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VHDL Anfänger schrieb:
> Hallo,
> erstsmal zu meinem Background: Ich bin mit VHDL noch ein wirklicher
> Anfänger.
> Habe ein kleines Demoboard mit dem CPLD XC9572 und habe damit meine
> ersten kleinen Binkereien gemacht... Ich hoffe, man wird mir meine etwas
> naiven Fragen verzeihen und mich nicht auf http://www.giyf.de/ verweisen
> :-)
>
> Also ich habe irgendwo gelesen das man in so ein FPGA auch einen
> Mikrocontroller reinzaubern kann.
>
> 1. Gibt es da einen wirklich kleinen kostenlosen Core der vieleicht
> sogar in ein CPLD rein passt? Ich wäre auch mit einer 4-Bit-MCU wie
> GC49C501 schon glücklich... ;-)
> GC49C501 ist eine 4-Bit-Version vom 8051
>
> 2. Wie wird so ein Mikrocontroller im FPGA programmiert? Assembler oder
> C?
>
> 3. Ist der Programmspeicher des Mikrocontroller's auf dem FPGA oder ein
> externes EPROM?
>
> 4. Gibt es den Quellcode für einen 8051-Core(bin ein alter 8051-Fan!)
> auch kostenlos zum runterladen?

Vergiss CPLD, mit einem kleinen FPGA hast du:
 -ausreichend Platz, auch für mehrere Controller in einem Chip
 -benötigst keinen exteren SRAM als Arbeitsspeicher
 -kanns on-Chip debug hardware einsetzen (z.B. Xilinx Chipscope)
 -kannst statt 8 bit auch locker 32 bit controller realisieren

Und es gibt FPGA-s mit on-Board EEPROM (Xilinx Spartan3 - NV 
(NonVolatile)), Das kommt einer Ein-Chip Lösung schon recht nahe. teile 
des on-Board PROMs kann man ich durch sein eigenes Design nutzen, 
vielleicht als Programmspeicher für den Controller.


Xilinx hat einen 8 bit controller für CPLD im Angebot, den Picoblaze, 
aber benötigt den dicksten CPLD (512 - nicht preiswert) und externen 
Speicher.

Für den picoblaze hat xilinx auch einen Assembler. Allerdings rate ich 
vom Picoblaze ab, da dessen VHDL-Code eine Netzliste aus LUT's und FF 
ist, da lernt man nicht wirklich wie ein mikrocontroller aufgebaut ist.

Xilinx hat auch eine Fix und Fertig 32 bit Lösung: Core, C-Compiler, 
debugger, SDK nennt sich Microblaze. Isse aber nich für ohne Euro, aber 
probiere kann man 30 Tage.

Gut Naechtle,

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fpga Kuechle schrieb:
> Für den picoblaze hat xilinx auch einen Assembler. Allerdings rate ich
> vom Picoblaze ab, da dessen VHDL-Code eine Netzliste aus LUT's und FF
> ist, da lernt man nicht wirklich wie ein mikrocontroller aufgebaut ist.
Es gibt aber eine Appnote wo der Aufbau und die herangehjensweise 
aufgeführt ist, ist recht informativ :)

Autor: berndl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
da der Poster ja sogar mit einer 4-bit CPU zufrieden waere, wuerde ich 
definitiv zum Picoblaze (unter Xilinx) oder zum Pacoblaze (fuer alle 
anderen FPGA Hersteller) raten. Der Assembler-Code ist recht einfach zu 
verstehen und das Teil kann schon eine ganze Menge...
Und es gibt bei Xilinx eine ganz gute Doku zu dem Teil.
Zum 'starten' genau richtig!

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mico32 ist ein open-source VHDL softcore processor.
Vielleicht hilft dir dieser Link weiter:
http://www.latticesemi.com/products/intellectualpr...

Hab ihn zwar noch nicht selber verwendet, aber dafür wirst du sicher 
einen FPGA benötigen, ein CPLD ist da definitiv zu klein.

lg
Rooney




-----------------------------------------
http://www.poms-engineering.at

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.