Forum: FPGA, VHDL & Co. Sipeed Lichee Tang FPGA mit RISC-V Core aus China unter 20€


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Steffen H. (avrsteffen)


Angehängte Dateien:

Bewertung
3 lesenswert
nicht lesenswert
Hallo Leute

Was soll ich sagen. Für knappe 17 Euro, inclusive Versand aus China, 
kann man nichts Falsch machen. Und so ist es!

Heute ist das kleine Board mit einem Anlogic FPGA angekommen. Die 
Entwickungsumgebung - Tang Dynasty - des chinesischen Herstellers ließ 
sich problemlos von der Sipeed Webseite herunterladen und auf Windows 10 
installieren. Diese gibt es auch für Linux. Die VHDL/Verilog 
Entwicklungsumgebung ist in englischer Sprache. Sie ähnelt wohl sehr der 
Altera/Intel QuartusII IDE.

Um die ersten Versuche mit dem RISC-V Cores zu machen gibt es sogar 
einen Port auf der Arduino Platform. Beschrieben hier:
https://www.programmersought.com/article/1775553752/

Nach ein wenig Foren lesen und suchen im WWW hab ich sogar die 
Dokumentation ebenfalls in englischer Sprache gefunden. Siehe hier:
https://github.com/kprasadvnsi/Anlogic_Doc_English

Was hat das kleine Board - wo ich wirklich verwundet war, wie klein es 
doch ist - alles on Board:
- Anlogic EG4S20BG256 mit 19600 LUT/FF
- Onboard 130KB SRAM / 64MBit SDRAM
- 3-channel DCDC power supply chip
- Onboard FPGA JTAG Download Debugger
- Onboard RGB LED
- FPC40P socket, can be connected to RGB LCD (mit Backlight Stromsenke)
- Resistive touch screen controller for I2C interface, used with RGB LCD
- FPC24P socket, can be connected to DVP camera, high speed ADC module
- FPGA configuration Flash, 8Mbit User Flash, nor/nand optional
- micro SD-Card Slot
https://www.fiyatgrafik.com/urun/lichee-tang-fpga-gelistirme-kurulu-risc-v-cekirdek.html


Es gibt auch das ein oder andere Beispiel zum Starten in Verilog:
https://github.com/Lichee-Pi/Tang_FPGA_Examples

Hier noch ein paar Webseiten wo der Einstieg/Start und die Installation 
der IDE sowie die die Verwendung der Beispiele beschrieben ist.
https://justanotherelectronicsblog.com/?p=470
https://tang.sipeed.com/en/hardware-overview/lichee-tang/

Also ich hab sehr schnell meine TFT Displays testen können.
Jetzt will ich den RISC-V ausprobieren. Über Arduino klappt noch nicht 
so richtig. Vielleicht liegt es an dem JTAG Adapter. Ich habe nicht den 
Originalen.

Was haltet Ihr von diesem kleinen Board?
Arbeitet oder experimentiert denn schon jemand damit?

MfG Steffen

-

: Bearbeitet durch User
von chris_ (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Was haltet Ihr von diesem kleinen Board?

Sieht ziemlich gut aus.
Ich habe mir gerade eben ein BeMicro MAX10 gekauft
Beitrag "Re: MAX1000 ADC Demo"
Das bekommt man für ~22€. Es ist etwas größer als das Lichee Tang. 
Dadurch kommt man besser an die Anschlüsse.
Das FPGA ist etwas kleiner als das Lichee:

    8,000 LEs
    414 Kbit (Kb) M9K memory
    256 Kbit (Kb) user flash memory
    2 phase locked loops (PLLs)
    24 18x18-bit multipliers
    1 ADC block – 1 MSa/sec, 12-bit, 18-channels
    17 analog inputs
    1 temperature sense diode
    250 general purpose input/output (GPIO)

Es hat noch etwas Peripherie mit drauf:

    8MB SDRAM (4Mb x 16) (ISSI IS42S16400)
    Accelerometer, 3-Axis, SPI interface (Analog Devices ADXL362)
    DAC, 12-bit, SPI interface (Analog Devices AD5681)
    Temperature sensor, I2C interface (Analog Devices ADT7420)
    Thermal resistor
    Photo resistor

Wie hast du den Monitoranschluss auf dem Bild gemacht? Ist das Flex-PCB 
Standard und kann man das irgendwo gleich mit bestellen?

>Arbeitet oder experimentiert denn schon jemand damit?

Ich würde gerne, stelle aber gerade wieder fest, dass man immer wieder 
in Probleme mit den unterschiedlichen Entwicklungsumgebungen läuft.

von FPGaaaaah (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mich würde mal interessieren, wo man die Bausteine herbekommen kann und 
was sie so ungefähr kosten.

von FPGaaaaah (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Und was schafft der FPGA denn so für Takte?

von Steffen H. (avrsteffen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
FPGaaaaah schrieb:
> Mich würde mal interessieren, wo man die Bausteine herbekommen
> kann und was sie so ungefähr kosten.

Meinst du nur die einzelne FPGA oder das Modul?
Wenn du das Modul meinst, hab ich es bei Seeed gesehen. Ich selber habe 
es dann bei ebay gekauft.
Ebay-Artikel Nr. 183427233975



chris_ schrieb:
> Wie hast du den Monitoranschluss auf dem Bild gemacht? Ist das Flex-PCB
> Standard und kann man das irgendwo gleich mit bestellen?

Wie meinst du das? Also der FPC Anschluss auf dem Board ist Standard 
belegt. Also
 1 - -LED Backlight
 2 - +LED Backlight
 3 - GND
 4 - Vcc Display
 5 - R0
 6 - R1
....
39 - XL Touchscreen
40 - YU Touchscreen

Siehe Bild oben
Die Adapterplatine hab ich mir wo anders bestellt. Ich musste dies 
machen, da das Display (640×480) nur ein 30Pin Interface besitzt und 
dazu diese speziellen Kabel mit Stecker dazu waren.

: Bearbeitet durch User
von Steffen H. (avrsteffen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
FPC40 Interface des Lichee Tang

von Steffen H. (avrsteffen)


Bewertung
0 lesenswert
nicht lesenswert
FPGaaaaah schrieb:
> Und was schafft der FPGA denn so für Takte?

Wenn ich das so richtig gelesen habe dann kann man über die 4 internen 
PLL's wohl zwischen 4..400 MHz erzeugen können.

Der schon vorinstallierte RISC-V arbeitet wohl mit 16MHz.

: Bearbeitet durch User
von Steffen H. (avrsteffen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal alle relevanten Auszüge aus dem Datenblatt zum Takt IN/OUT und 
den einzelnen Modulen.

Einen 12Bit 1MSPS ADC mit 8 analog Inputs und 29 DSP's mit 18x18 Bit 
Multiplier hat der FPGA übrigens auch an Bord.

von FPGaaaaah (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Steffen H. schrieb:
> Meinst du nur die einzelne FPGA oder das Modul?

Ich meinte schon ein einzelnes FPGA, so zum Auflöten.

Mir ist schon klar, dass der intern maximal mögliche Takt von der Logik 
abhängt aber kann man mit typischen State-machines so um die 100MHz 
schaffen, wie man es z.B. von den Xilinx Spartan FPGAs gewohnt ist?

Sind die PLLs vom Funktionsumfang ähnlich der DCMs von Xilinx oder 
bieten sie einen eher spärlichen Funktionsumfang wie die ice40 FPGAs von 
Lattice wo man gerade einmal einen die Phase um 90° drehen und einen 
maximalen Delay von 2.4ns draufpacken kann?

von Steffen H. (avrsteffen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
FPGaaaaah schrieb:
> Aber kann man mit typischen State-machines so um die 100MHz
> schaffen, wie man es z.B. von den Xilinx Spartan FPGAs gewohnt ist?
>
> Sind die PLLs vom Funktionsumfang ähnlich der DCMs von Xilinx oder
> bieten sie einen eher spärlichen Funktionsumfang wie die ice40 FPGAs von
> Lattice wo man gerade einmal einen die Phase um 90° drehen und einen
> maximalen Delay von 2.4ns draufpacken kann?

Dies gilt es zu erforschen. Also die PLL hat hat schon so einiges drin. 
Aber so tief steck ich ehrlich gesagt noch nicht drin bei den FPGA's um 
darüber Aussagen treffen zu können. Aber die Phase kann man von 0 .. 
315° in 45°-Schritten zur VCO drehen.

Ich hänge aber gerne mal das Datasheet des EG4S20 mit an. Da steht 
einiges ab Seite 32 zur PLL und auf Seite 76 die technischen Infos 
darüber.

von Tim  . (cpldcpu)


Bewertung
0 lesenswert
nicht lesenswert
Steffen H. schrieb:
> Was soll ich sagen. Für knappe 17 Euro, inclusive Versand aus China,
> kann man nichts Falsch machen. Und so ist es!

Doch, man kann bei dem günstigen Preis vergessen seinen eigenen 
Zeitaufwand zu berücksichtigen. Wie viel würdest Du dafür bezahlen, 
nicht Tage mit der Suche nach undokumentieren Fehler zu verbringen oder 
dich mit einer instabilen Toolchain herumzuschlagen? Oder dem Fakt dass 
man sich in eine Toolchain ohne Industrierelevanz einarbeitet?

Das ist das gleiche Thema wie mit den RPi clones, den $1 Linux SOCs, 
Bluepill clones usw.

Also, wie gut ist die Toolchain? Spannend wäre es wohl eher, wenn auch 
die OSS FPGA-Toolchains supported werden. Die sind zwar auch noch in 
ihren Anfängen, gegenüber der ganzen Vendor-Locked Monstersoftware aber 
wirklich ein frischer Wind.

Wenn die Beschäftigung mit einer exotischen Toolchain das das Ziel ist, 
dann bitte meinen KOmmentar vergessen :)

: Bearbeitet durch User
von Steffen H. (avrsteffen)


Bewertung
0 lesenswert
nicht lesenswert
Tim  . schrieb:
> Steffen H. schrieb:
>> Was soll ich sagen. Für knappe 17 Euro, inclusive Versand aus China,
>> kann man nichts Falsch machen. Und so ist es!
>
> Doch, man kann bei dem günstigen Preis vergessen seinen eigenen
> Zeitaufwand zu berücksichtigen. Wie viel würdest Du dafür bezahlen,
> nicht Tage mit der Suche nach undokumentieren Fehler zu verbringen oder
> dich mit einer instabilen Toolchain herumzuschlagen? Oder dem Fakt dass
> man sich in eine Toolchain ohne Industrierelevanz einarbeitet?

Ich hab das ja auch auf dem Preis bezogen und nicht auf irgendwelche 
folgenden Arbeitsleistungen. Und ja, du hast teils Recht. Leider ist es 
genau so, dass die Chinesen es noch nicht können Ihre Produkte 
ordentlich zu dokumentieren, zu validieren und verifizieren.

Allerdings bin hier doch schon etwas überrascht wie gut dokumentiert es 
doch  ist. Aber für industrielle oder kommerzielle Zwecke, wo ich 
Garantien als Hersteller geben muss, würde ich es jetzt wahrscheinlich 
nicht einsetzen. Aber zum rumexperimentieren und ein wenig mehr über 
Risc-V zu lernen doch schon.

von Duke Scarring (Gast)


Bewertung
2 lesenswert
nicht lesenswert
Tim  . schrieb:
> Wie viel würdest Du dafür bezahlen,
> nicht Tage mit der Suche nach undokumentieren Fehler zu verbringen oder
> dich mit einer instabilen Toolchain herumzuschlagen?
Eine Lizenz für Xilinx kostet ~$3500. Da bekommst Du mit jeder Version 
neue undokumentierte Fehler. Die Stabilität hängt gefühlt von der 
Mondphase ab...

Bei anderen großen FPGA-Herstellern sieht es nicht unbedingt besser aus. 
BTDT.

Duke

von Äfpegea (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Tim  . schrieb:
> Doch, man kann bei dem günstigen Preis vergessen seinen eigenen
> Zeitaufwand zu berücksichtigen. Wie viel würdest Du dafür bezahlen,
> nicht Tage mit der Suche nach undokumentieren Fehler zu verbringen oder
> dich mit einer instabilen Toolchain herumzuschlagen? Oder dem Fakt dass
> man sich in eine Toolchain ohne Industrierelevanz einarbeitet?

Prust...ich lach mir den Arsch ab, bzw. könnte ich wenn es nicht so 
traurig wäre. Du führst die Suche nach undokumentierten Fehlern bzw. 
generell instabile Toolchains in Feld wenn auf der anderen Seite Xilinx 
Vivado zur Auswahl steht? Witzbold.

Duke Scarring schrieb:
> Eine Lizenz für Xilinx kostet ~$3500. Da bekommst Du mit jeder Version
> neue undokumentierte Fehler. Die Stabilität hängt gefühlt von der
> Mondphase ab...

Den Preis würd ich ja akzeptieren, was Xilinx da aber als "Produkt" 
abliefert sollte in meinen Augen bestraft werden können. Selten war ich 
gezwungen, mit so einem Scheisshaufen an Software arbeiten zu müssen. Es 
hat eigentlich eine gewisse Komik, wenn ein Hersteller zwar absolute 
Hochtwchnologie beherrscht, aber dann daran scheitert nach dutzenden 
Iterationen eine funktionierende GUI um seine Toolchain zu packen.

von S. R. (svenska)


Bewertung
1 lesenswert
nicht lesenswert
Steffen H. schrieb:
> Leider ist es genau so, dass die Chinesen es noch nicht
> können Ihre Produkte ordentlich zu dokumentieren,
> zu validieren und verifizieren.

Ich habe voriges Jahr erfahren können, wie das in der Praxis aussehen 
kann... und da spielen die hier gefragten Datenblätter und 
Dokumentationen schlicht keine Rolle.

Firma A geht zu Firma B und fragt, ob Chip C die Funktion F beherrscht 
und bekommt eine (kompetente) Antwort. Wenn Initialisierungen oder 
Firmwares nötig sind, dann werden die zugeschnitten und geliefert. 
Funktioniert etwas nicht, hat man am anderen Ende jemanden, der genau 
die Informationen liefert, die man anfragt. Wenn alles läuft, kommt die 
große Bestellung.

Ich war recht beeindruckt, wie reibungslos das lief. Und nein, obwohl 
meine Aufgabe der Treiber für den Chip war, hatte ich kein Datenblatt. 
Nur eine Textdatei mit den paar wichtigen Registern (Hersteller X) bzw. 
eine Excel-Tabelle (Hersteller Y). In letztere klopfte man vorne die 
Randbedingungen rein und bekam hinten die korrekte Registersequenz raus.

Die Hardwareentwickler bekamen andere Informationen und spezielle 
Testfirmware, sowie fertige Entwicklerboards mit Referenzschaltung 
geliefert, um die Eignung zu prüfen und ins Produkt zu designen.

von Steffen H. (avrsteffen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
TFT 640x480 als Terminal Monitor mit dem Lichee Tang Primer FPGA.

Großen Dank an "Zigazou" aka Frédéric Bisson. Ich fand sein Project 
"MyTerminal" auf GitHub das für einen VGA Monitor 1280x1024 geschrieben 
ist und passte es für das 640x480'er TFT an.

Es gibt einen 1024 Zeichen großen 16x20 Videotex Font und eine 16 Farben 
Palette für Vor- und Hinterdergrund Farbe der Schrift.
Die Kommunikation erfolgt über UART 8N1 115200 Baud. Dazu können für 
jedes Zeichen Attribute wie blinken, invers, doppelte Größe in 
horizontaler/vertikaler oder beider Richtungen eingestellt werden.

Dazu kommt noch die Auswahl der Schreibrichtung. Ebenfalls als Attribut. 
Von links-oben nach rechts-unten oder von rechts-oben nach links-unten 
und auch die beiden Pedante zu unten nach oben.

Die Ansicht rutscht allen Text nach oben wenn die letzte Zeile 
geschrieben wurde.

Das was mich hierbei am meisten interessoert hat ist die Umsetzung. Es 
werden FiFo als UART Buffer genutzt. Auch der interne SDRAM kommt 
zur Nutzung.

Alles in allem - Ein schönes Projekt

: Bearbeitet durch User
von Steffen H. (avrsteffen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal zur Ansicht das 32bit breite Attributen Register, so wie es in 
den 32bit breiten SDRAM gespeichert wird. Außerdem mal noch den 1024'er 
Videotex Zeichensatz.

von Christoph Z. (christophz)


Bewertung
0 lesenswert
nicht lesenswert
Steffen H. schrieb:
> Großen Dank an "Zigazou" aka Frédéric Bisson. Ich fand sein Project
> "MyTerminal" auf GitHub das für einen VGA Monitor 1280x1024 geschrieben

Bevor jemand danach fragt:
https://github.com/Zigazou/myterminal

Nette Projekte da. Sehr Französisch mit den ganzen Minitel Projekten :-)

Steffen H. schrieb:
> Alles in allem - Ein schönes Projekt

Ich nehme an, dass dein Source Code dann auch bald mal irgendwo online 
gestellt wird? Mindestens um Frédéric den Dank an sein Projekt auch 
aktiv zu zeigen.

: Bearbeitet durch User
von Steffen H. (avrsteffen)


Bewertung
0 lesenswert
nicht lesenswert
Christoph Z. schrieb:
> Bevor jemand danach fragt:

🤣 Sehr Aufmerksam von dir ^^ :)


Christoph Z. schrieb:
> Ich nehme an, dass dein Source Code dann auch bald mal irgendwo online
> gestellt wird? Mindestens um Frédéric den Dank an sein Projekt auch
> aktiv zu zeigen.

Würd ich gerne teilen. Auf GitHub weiß ich allerdings nicht wie das 
geht. Ich kenne nur Respository clonen.

von W. M. (thematsche)


Bewertung
0 lesenswert
nicht lesenswert
Steffen H. schrieb:
> Würd ich gerne teilen. Auf GitHub weiß ich allerdings nicht wie das
> geht. Ich kenne nur Respository clonen.

Wenn du einen Account auf GH hast, dann oben rechts das "+" und dann 
entweder "New" oder "Import" Repository.
Und dann halt entweder manuell die Sourcen per Webinterface 
reinkopieren/-klopfen oder per ssh pushen.

von Christoph Z. (christophz)


Bewertung
0 lesenswert
nicht lesenswert
Steffen H. schrieb:
> Würd ich gerne teilen. Auf GitHub weiß ich allerdings nicht wie das
> geht. Ich kenne nur Respository clonen.

Auf Github einloggen, zum orignal Repository gehen und rechts oben auf 
Fork klicken. Schon hast du ein gleichnamiges Repo in deinem Github 
Account.

Danach machst du einen Klon von DEINEM Repo anstatt vom Original und 
legst am Besten gleich als allererstes einen neuen Branch an, damit 
deine Änderungen sauber Auseinandergehalten werden können.

Mit deinem Repo kannst du dann soweit arbeiten wie mit jedem anderen, 
das du selber angelegt hast. Zusätzlich hast du jetzt auf Github die 
Funktionen zum Erstellen und Verwalten von Pull-Requests zur Verfügung.
Das braucht dann auch ein bisschen Einarbeitung, damit einem klar ist 
was da wie passiert, ist aber eigentlich nicht kompliziert (Bei Git 
stehe ich manchmal auch länger auf dem Schlauch, bis es mir dann endlich 
Klick macht).

von Olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich hab mir das gerade auch mal angeschaut.
Dabei hat mich der mips Prozessor nicht weiter interessiert, ich hab
den nur zu testzwecken mal uebersetzt. Aber den Compiler hab ich mir z.B
geschenkt!
Basis ist diese Anleitung aus dem Link weiter oben:

https://justanotherelectronicsblog.com/?p=470

Ich hab bei mir ein aktuelles Centos7 laufen.

Auf der obigen Seite gibt es einen Link auf die Version 4.2
der Entwicklungsumgebung. Die Installation ist nun sagen wir mal
ungewoehnlich. Direktory auspacken, binary mit den Laufzeitrechten
versehen und dann mit td -gui starten. Das hat den Charme von DOS3.3 
1985.

Dann kann man das Projekt Tang_E203_Mini oeffnen.

Leider bricht die Synthese nach kurzer Zeit ab. Grund ist ein 
abgelaufendes Lizenzfile ./licence/Anlogic.lic

Das ist natuerlich schonmal kacke! Eine Software die man nur bis zu 
einem bestimmten Verfallsdatum nutzen kann ist doch irgendwie bloed 
oder?

Aktuelle Versionen und Lizenzfiles kann man hier bekommen:

http://dl.sipeed.com/TANG/Primer/IDE/

Zwei Probleme. Die neueste dort downloadbare Version laeuft bei mir 
nicht.
Grund ist das zwei meiner Systemlibaries zu alt sind. Das zeigt man 
wieder die Inkompetenz heutiger Softwareentwicklung die nicht mehr 
versteht was sie da eigentlich macht. (palmface)
Man koennte sich allerdings dort ein aktuelles Lizenzfile besorgen, 
umbenennen und nach ./licence/ kopieren. Leider ist das neueste dort 
auch gerade abgelaufen. (palmface2)

Interessanterweise gibt es hier einen lustigen Patch:
http://tanta.sinriv.com/psg/2019-8-31:19:28:32
welcher dem System eine andere Zeit unterschiebt.

Damit laeuft die Oberlaeche dann und der mips-prozessor laesst sich
uebersetzen.

finish command "bitgen -bit e203egmini_new.bit -version 0X00 -g 
ucode:00000000100110100000000000000000" in  2.237796s wall, 26.620000s 
user + 0.050000s system = 26.670000s CPU (1191.8%)

BTW: Die Entwicklungsumgebung ist 10x kleiner und 10x schneller wie das
was Xilinx so abliefert. Alleine das zaubert ein Laecheln aufs Gesicht!
Der hat bei mir gerade das Teil in 26s uebersetzt und dabei alle 16core 
genutzt.

Gefuehltes Gesamtergebnis: Gemischt. Installation und Lizenzierung 
irgendwie
kacke, aber man ist da ja von Xilinx nicht verwoehnt.

Olaf

von Olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das richtig sehe kann man sich hier wohl
das Lizenzfile generieren:

http://www.anlogic.com/down.aspx?TypeId=23&fid=t14:23:14

Also jedenfalls wenn man chinesisch kann. :-D

Olaf

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]
  • [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.

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