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)



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)


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:

Lesenswert?

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

von FPGaaaaah (Gast)


Lesenswert?

Und was schafft der FPGA denn so für Takte?

von Steffen H. (avrsteffen)


Angehängte Dateien:

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:

Lesenswert?

FPC40 Interface des Lichee Tang

von Steffen H. (avrsteffen)


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)



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)


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:

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)


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)


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)


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)


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)


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:

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:

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)


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)


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)


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)


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)


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)


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

von Steffen H. (avrsteffen)


Lesenswert?

Ein neues Lizenz-File für die Windows Version der Tang Dynasty IDE wurde 
auf dem Sipeed Server hochgeladen und ist bis zum 30.01.2022 gültig.

https://dl.sipeed.com/shareURL/TANG/Premier/IDE



Olaf schrieb:
> Wenn ich das richtig sehe kann man sich hier wohl
> das Lizenzfile generieren:

Hast du das mal ausprobiert? Bei mir hat es nicht funktioniert.

von Olaf (Gast)


Lesenswert?

> auf dem Sipeed Server hochgeladen und ist bis zum 30.01.2022 gültig.

Super, allerdings scheint der Trick mit der untergeschobenen libarie zu 
funktionieren.

> Hast du das mal ausprobiert? Bei mir hat es nicht funktioniert.

Nein. Ich hatte das erst gesehen nachdem ich die Anleitung mit der 
Libarie gefunden habe. Ausserdem warte ich gerade auf die Hardware. Ich 
denke es wird wohl noch 1-2Wochen dauern bis ich mit dem Teil rumspielen 
kann.

Olaf

von Steffen H. (avrsteffen)


Angehängte Dateien:

Lesenswert?

Ich habe jetzt mal probiert das Repo von Frédéric Bisson zu klonen. 
Scheint geklappt zu haben. Ich habe dann auf GitHub auch ein neuen 
Branch zu meinem modifizierten Code für ein 640x480 TFT hinzugefügt.

https://github.com/AVRsteffen/myterminal/tree/tft_640x480

Und es gibt schon wieder ein neuen Branch von Frédéric. Die ganze Sache 
entwickelt sich zu einem wertvollem Terminal.

von Olaf (Gast)


Lesenswert?

> Ich habe dann auf GitHub auch ein neuen
> Branch zu meinem modifizierten Code für ein 640x480 TFT hinzugefügt.

Wieviel Prozent des FPGAs braucht denn das so?

Olaf

von W. M. (thematsche)


Lesenswert?

@Olaf
Danke!

@Steffen
Danke!

Werd mich mal in den naechsten Wochen damit beschaeftigen. :)

von Steffen H. (avrsteffen)


Angehängte Dateien:

Lesenswert?

Olaf schrieb:
> Wieviel Prozent des FPGAs braucht denn das so?

Ich hab den Verbrauch des neuen verbesserten Terminal Cores mal 
angehangen. Ob das jetzt viel ist kann ich nicht sagen. Das Design 
selber sagt im Moment noch dass eine maximaler Takt von 77Mhz drin wäre. 
Allerdings nutzt Frédéric mit seinem 1280x1024 @60Hz VGA ja 108Mhz im 
Design.

Olaf schrieb:
> Ausserdem warte ich gerade auf die Hardware. Ich
> denke es wird wohl noch 1-2Wochen dauern bis ich mit dem Teil rumspielen
> kann.

Ich hoffe für dich, dass du bald loslegen kannst. Ich finde das Board 
selbst winzig klein. Allerdings mit einem Haufen I/O's. Zur Fehlersuche 
oder Verifizierung so mancher Signale nutze ich gerade noch den Camera 
Port (FPC24). Da hängt gerade mein Logicanalyzer dran. So kann ich mir 
auch mal Zähler anschauen. Und habe immernoch jede Menge I/O's frei.

Was willst du anstellen mit dem Board? Dich interessiert mehr der 
RISK-V?

von Olaf (Gast)


Lesenswert?

> Ich hoffe für dich, dass du bald loslegen kannst.

DAs Board ist noch nicht da, aber ich habe gerade mal testweise einen
Inverter programmiert. :-D

Aber Leute, kann es sein das Programmierer von FPGA Software alle etwas
muerbe im Hirn sind?

Bei Xilinx fragt die Software jedesmal: Oh, die Files wurden noch nicht 
gespeichert. Soll ich das nicht vor der Uebersetzung machen?

Bei TD geht ein Fenster auf: Die Files wurden nicht gesichert, macht das 
gefaelligst erst mal bevor du uebersetzen darf und dann starte die
Synthese nochmal.

WARUM ZUR HOELLE MACHT DIE SOFTWARE DAS NICHT AUTOMATISCH? Jede andere
IDE kann das.

> Was willst du anstellen mit dem Board? Dich interessiert mehr der
> RISK-V?

Noe, gerade der interessiert mich ueberhaubt nicht die Bohne. Ich wollte
nur mal gerade etwas zum rumspielen haben weil mein Spartan3E100 langsam 
was klein wird und das externe Ram ist ja auch irgendwie nett. Hab 
letzte woche aus Spass man einen 6502 bei mir eingebaut. :-)

Ich finde es uebrigens interessant das der Eagle-20 sowohl mehrere 
Schaltnetzteile wie auch einen AD-Wandler enthaelt.

Olaf

von Steffen H. (avrsteffen)


Lesenswert?

Olaf schrieb:
> WARUM ZUR HOELLE MACHT DIE SOFTWARE DAS NICHT AUTOMATISCH? Jede andere
> IDE kann das.

Das ist mir auch schon aufgefallen und nervt mich auch manchmal.

Olaf schrieb:
> Ich finde es uebrigens interessant das der Eagle-20 sowohl mehrere
> Schaltnetzteile wie auch einen AD-Wandler enthaelt.

Wie meinst du das? Schaltnetzteile?
Oder meinst du den 3-fach Regler-Chip?

Olaf schrieb:
> das externe Ram ist ja auch irgendwie nett

Beim dem ist der SDRAM im Chip integriert - nix extern. Somit bleiben 
die Verbindungen kurz. Naja, ist ja nur SD (nur positive Flanke) und 
nicht DDR wo beide Flanken genutzt werden. Aber trotzdem schnell.

von Olaf (Gast)


Lesenswert?

> Das ist mir auch schon aufgefallen und nervt mich auch manchmal.

Das ist mir echt unerklaerlich. Ich meine das muss doch jeden der
sowas benutzt krass nerven, inklusive dem Entwickler selber.

> Oder meinst du den 3-fach Regler-Chip?

Ach so ja, den meinte ich.

> Naja, ist ja nur SD (nur positive Flanke)

Egal. Man muss es ja nicht uebertreiben.

Olaf

von Steffen H. (avrsteffen)


Angehängte Dateien:

Lesenswert?

Und es geht voran.
Ich muss mal ein Dokument zum 1024 Zeichen Schriftsatz machen. Es sind 
schon wirklich viele Funktionen integriert.

von Christoph Z. (christophz)


Lesenswert?

Olaf schrieb:
> Das ist mir echt unerklaerlich. Ich meine das muss doch jeden der
> sowas benutzt krass nerven, inklusive dem Entwickler selber.

Ja, tut es. Es gehört aber zu den kleineren täglichen Ärgernissen im 
Umgang mit FPGA Entwicklungssoftware.

Die internen Editoren dieser Hersteller IDEs sind ja alle so mächtig wie 
die drei Wochen Hausaufgaben Editoren von Informatikstudenten...

Meine einzige Theorie zur Erklärung die in der Zwischenzeit geblieben 
ist, ist das alle FPGA Entwickler Masochisten sind. Alle anderen haben 
es mit den FPGAs aufgegeben :-)

Olaf schrieb:
> WARUM ZUR HOELLE MACHT DIE SOFTWARE DAS NICHT AUTOMATISCH? Jede andere
> IDE kann das.

Nimm die IDE für ein paar der netten Tools (RTL View, Timing Analyzer 
etc.) aber für den eigentlichen Entwicklungsablauf nimm einen guten 
Editor und Makefiles. Das produziert im ersten Anlauf bis es sauber 
läuft auch ein paar graue Haare aber danach kann man brauchbar* 
arbeiten.

*Brauchbar aus Sicht des FPGA Entwicklers. Ein Applikationsentwickler 
rennt immer noch schreiend davon.

von Olaf (Gast)


Lesenswert?

> Nimm die IDE für ein paar der netten Tools (RTL View, Timing Analyzer
> etc.) aber für den eigentlichen Entwicklungsablauf nimm einen guten
> Editor und Makefiles.

Ja, so ein Gedanke war mir gestern auch schon gekommen. :)
Mal schauen, meine Lichee liegt derzeit wohl am Flughafen beim Zoll....

Olaf

von Steffen H. (avrsteffen)


Angehängte Dateien:

Lesenswert?

Ich bin gerade dabei ein kleines Wiki über das Terminal 
(Text-Controller) zu schreiben.
Wer Interesse hat:
https://github.com/AVRsteffen/myterminal/tree/TFT_640x480_NEC

von Olaf (Gast)


Angehängte Dateien:

Lesenswert?

Und ich hab mal schnell ein kleines Spiel&Testboard gefummelt.

Leider ist das §$%WER§$&%§$& Board immer noch nicht eingetroffen.
Ich hoffe mal es passt auf mein Testboard. :-)

Olaf

von Steffen H. (avrsteffen)


Lesenswert?

Hast du noch mehr Details über dein Testboard?

Ich wollte eigentlich mal LVDS nutzen. Musste jetzt gerade feststellen, 
dass nur für Bank0 die VCCIO extra geroutet wurde und somit auf 2,5V für 
LVDS herabgesetzt werden kann. Allerdings ist Bank0 auf Bottem Side. Das 
heißt, Top und Bottem Side Banks haben nur emuliertes LVDS. Ohne 3R 
Netzwerk.

Nun muss ich mir das extern dran fummeln, Schade.

Ich hoffe dein Board kommt bald durch den Zoll und verschwindet nicht 
einfach wie meine kleinen D-Class Verstärker mit PAM8406. Die liegen 
jetzt schon seit 27.Februar im Zoll.

Das Lichee Tang Primer Board gibt es übrigens auch bei Distrelec für 
22€. Kommt halt noch der Versand hinzu.
https://www.distrelec.de/en/sipeed-tang-primer-fpga-development-board-seeed-studio-102110202/p/30185703

von Olaf (Gast)


Lesenswert?

> Hast du noch mehr Details über dein Testboard?

Was soll ich daszu sagen. Hat meinen lokalen Hausbus den ich schon immer 
fuer alles digitale nutze, hat SPDIF in/out, ein JDY40 fuer 
Kommunikation und Debugging, und einen 49.xxxQuarz auf der Unterseite 
fuer 48k. Ach so und noch einen Anschluss fuer ein Board mit einem 
PCM3060 das ich mal vor ein paar Jahren gemacht habe. Der MCX ist nur 
drauf weil der Platz da war und gerade kein SMA rumlag. :)

Olaf

von Olaf (Gast)


Lesenswert?

So mein Board ist da, RGB-Led blinkt in allen Farben. :-)

Noch 2-3Tips.

Wenn man auf Download drueckt und die Oberflaeche kommentarlos abstuerzt
dann liegt das daran das der User keinen Zugriff auf den Debugger 
besitzt.
War der Programmierer wohl mit einer Fehlermeldung ueberfordert, seufz.

Das liegt daran das die weiter oben in der Anleitung angegebene udev
Regel nur fuer ein bestimmtes Linux-System gilt.
Bei Centos/Redhat sieht das so aus:
#
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0547", ATTRS{idProduct}=="1002", 
GROUP="dialout", MODE="0660"
#

Bei anderen Systemen muss man die GROUP anpassen und natuerlich muss
der User auch Mitglied in dialout sein.

Achtung, alles in einer Zeile schreiben.
Danach entweder neu booten oder einmal das hier ausfuehren damit
die Regeln neu geladen werden:

udevadm control --reload-rules && udevadm trigger


Defaultmaessig laedt der Flasher mit 400kbit in das FPGA. Probiert
man etwas schnelleres so funktioniert es sehr viel schneller, es gibt
keine Fehlermeldung, aber zumindest bei mir funktioniert das dann
nicht zuverlaessig. Ich wuerde also empfehlen erstmal bei 400kbit
zu bleiben.

Olaf

von Olaf (Gast)


Lesenswert?

Noch was...

Bei dem Board werden die ueblichen 100mil Leisten mitgeliefert.
die wollte ich aber nicht verwenden weil mir die fuer solche Signale
zu grob sind. :)

Ich hab stattdessen diese duennen Leisten eingeloetet die man in 
gedrehte
IC-Sockel einstecken kann. Wenn man das macht dann besteht die Gefahr
das diese Leisten eine unerwuenschte Verbidnung zu den anderen 40 
Anschluessen aufnehmen welche auf dem Board nochmal zwischen die 
Bohrungen gefuehrt sind.
Um das zu verhindern habe ich einen duennen Streifen Kaptonband 
aufgeklebt und dann die Leisten da durch gepiekst. Das funktioniert gut.

So bekommt man praktisch ein dickes 40Pol IC mit 600mil Pinabstand das 
man ueberrall einstecken kann. Sehr schnueckelig!

Theoretisch, hab ich noch nicht ausprobiert, muesste man auch noch 
jeweils
zwei solche Leisten auf die Aussenkanten loeten koennen und koennte dann
oben die anderen 40Signale abnehmen.

Olaf

von Olaf (Gast)


Angehängte Dateien:

Lesenswert?

Ich kann das Board weiterempfehlen. :-)

Das Bild zeigt die testweise Ansteuerung eines Hitachi-LCD
an einem  74HC4094. Wenn ich nicht auf meinem Testboard
eine Loetstelle vergessen haette dann waere das in einer
Stunden zu schaffen gewesen, seufz.

Olaf

von Steffen H. (avrsteffen)


Lesenswert?

Olaf schrieb:
> Defaultmaessig laedt der Flasher mit 400kbit in das FPGA. Probiert
> man etwas schnelleres so funktioniert es sehr viel schneller, es gibt
> keine Fehlermeldung, aber zumindest bei mir funktioniert das dann
> nicht zuverlaessig. Ich wuerde also empfehlen erstmal bei 400kbit
> zu bleiben.

Ich kann unter Windows10 und der TD IDE 5.0.3. die Downloads mit 1Mbit 
machen. Nur wenn man in den Flash schreibt dauert es länger.

Olaf schrieb:
> Theoretisch, hab ich noch nicht ausprobiert, muesste man auch noch
> jeweils
> zwei solche Leisten auf die Aussenkanten loeten koennen und koennte dann
> oben die anderen 40Signale abnehmen.

Das hab ich auch vor. Hatte auch schon überlegt diese MicroMatch Stecker 
da dran zu löten. Die haben ein doppelreihiges pinning welches 1,27mm 
versetzt ist. Allerdings ist die 2. Reiche auch 2.54 mm auseinander.

Olaf schrieb:
> So mein Board ist da, RGB-Led blinkt in allen Farben. :-)

Glückwunsch 👍🏻☺

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

> Das hab ich auch vor. Hatte auch schon überlegt diese MicroMatch Stecker
> da dran zu löten.

So ein Gedanke kam mir auch schon. Allerdings brauch ich eigentlich 
garnicht
soviele Pins und man koennte ja auch noch was an den beiden 
Steckverbindern haengen.
Ich finde das Modul ist erstaunlich schnuckelig gemacht! Und dann noch 
in Kombination mit der hohen Geschwindigkeit der Software, eine echte 
Freude damit zu arbeiten.

> Ich kann unter Windows10 und der TD IDE 5.0.3. die Downloads mit 1Mbit
> machen.

Ich muss der Sache auch nochmal nachgehen. Allerdings meine ich schon
mal irgendwo gelesen zu haben das ich nicht der einzige bin der das
Problem hatte. Sollte man jedenfalls im Hinterkopf behalten, gerade
bei ersten Versuchen weil die Software ganz normal durchlaeuft,
am Ende Download ready sagt und es dann nicht richtig geht.

> Nur wenn man in den Flash schreibt dauert es länger.

Ja, ich finde sogar erstaunlich lange.

Olaf

von Olaf (Gast)


Lesenswert?

Hat schon einer rausgefunden wir das mit dem ip-Generator Bram 
funktioniert?

Ich hab mir damit gerade mal ein Ram erzeugt, der verlog code wird auch
eingebunden, alles wird uebersetzt. Keine Fehlermeldung

Im Logfile habe ich dann dies hier stehen:

EG_LOGIC_BRAM(DATA_WIDTH_A=8,DATA_WIDTH_B=8,ADDR_WIDTH_A=13,ADDR_WIDTH_B 
=13,
              DATA_DEPTH_A=8192,DATA_DEPTH_B=8192,
              REGMODE_A="OUTREG",REGMODE_B="OUTREG",
              INIT_FILE="rom.mif",IMPLEMENT="32K")
HDL-1100 : Inferred 0 RAMs.

Auch in der Uebersicht gibt die Umgebung an kein Ram benutzt zu haben!

Wenn ich stattdessen mal testweise den Mips-Prozessor uebersetze dann
steht da folgendes:

EG_LOGIC_BRAM(DATA_WIDTH_A=64,DATA_WIDTH_B=64,ADDR_WIDTH_A=13,ADDR_WIDTH 
_B=13,
              DATA_DEPTH_A=8192,DATA_DEPTH_B=8192,
              BYTE_ENABLE=8,BYTE_A=8,BYTE_B=8,
              IMPLEMENT="32K")
HDL-1100 : Inferred 1 RAMs.

Olaf

von Steffen H. (avrsteffen)


Lesenswert?

Wird denn der BRAM von irgendetwas benutzt? Oder hängen die Anschlüsse 
in der Luft so dass er wieder weg optimiert wird?

von Olaf (Gast)


Lesenswert?

> Wird denn der BRAM von irgendetwas benutzt? Oder hängen die Anschlüsse
> in der Luft so dass er wieder weg optimiert wird?

Hab ich auch gedacht. Aber da haengt ein 6502 dran.
aufgefallen ist es mir als ich nachgeschaut habe ob das MIF file
richtig ins Ram geladen wird, aber davon kann ich auch nichts im logfile 
finden.

cpu My6502( SlowClock, reset, AB, DI, DO, WE, IRQ, NMI, 1'b1 ,8'hfe, 
8'hff, OUTPort1, OUTPort2, WP1, WP2);

  MyRam Ram6502(
    DI, DO, AB[11:0], SlowClock, WE, reset,
    DOB, DIB, ABB, CEB, SlowClock, WEB, reset
  );

Lediglich den zeiten Port des Dualportrams nutze ich derzeit nicht.
Den wollte ich später wenn es läuft nutzen um dem 6502 etwas auf die 
Finger zu schauen.

Olaf

von Steffen H. (avrsteffen)


Lesenswert?

Olaf schrieb:
> MyRam Ram6502(
> DI, DO, AB[11:0], SlowClock, WE, reset,
> DOB, DIB, ABB, CEB, SlowClock, WEB, reset
> );

Was ist denn "MyRam"? Das Modul von dem BRAM? Die Instanz ist ja 
Ram6502.

Vielleicht solltest du mal dein ganzes Projekt hier als ZIP posten. Wo 
ist denn das vom IP Generator generierte RAM?

: Bearbeitet durch User
von Olaf (Gast)


Angehängte Dateien:

Lesenswert?

> Was ist denn "MyRam"? Das Modul von dem BRAM? Die Instanz ist ja
> Ram6502.

Ja, ich hab mir von dem ipGenerator ein Modul generieren lassen und
da kann man als erstes einen Namen vergeben. So erzeugt dann die
Entwicklungsumgebung das Ram. Sieht dann so aus:

module MyRam (
  doa, dia, addra, clka, wea, rsta,
  dob, dib, addrb, ceb, clkb, web, rstb
);
[..]

Und ich denke nicht das es ein offensichtlicher Fehler sein kann weil
ich dann ja eine Fehlermeldung erwarten wuerde.

> Vielleicht solltest du mal dein ganzes Projekt hier als ZIP posten.

Da sehe ich wenig sinn drin weil es ja im Prinzip nur aus der vom 
Projektgenerator generierten Datei besteht.

> Wo ist denn das vom IP Generator generierte RAM?

Das ist eine Verilogdatei die natuerlich im Projekt eingebunden ist.
Oben sieht du den Anfang davon. Ich hab die ganze Datei mal
angehaengt. Aber wie gesagt, die kommt so aus dem Coregenerator
und ich hoffe mal das dieser korrekt ist.
Die Logdatei zeigt ja auch das diese Datei gefunden wird, sie scheint
nur zu keinem Code zu fuehren. Von daher ist der Einwand ob es 
vielleicht
wegoptimiert wurde nicht so dumm. Der Gedanke kam mir auch.
Aber ich bin da bisher nur durch Zufall drauf gestossen. Ich wollte 
eigentlich erstmal pruefen ob der ROminhalt im Code landet. Das ist der 
Eintrag "rom.mif" in der angehaengten Datei. Der wird auch gefunden. Man 
kann sich den Inhalt innerhalb des IP-generators anschauen. Und wenn man 
bedenkt welche Berge an Logs die Oberflaeche beim uebersetzen/generieren 
so rauswirft dann wuerde ich auch irgendeinen Eintrag zu dazu erwarten, 
aber nix passiert.

Olaf

von Olaf (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab vielleicht was gefunden.

Wenn man das IP-File (ich habs mal angehaengt) aufmacht und dann
vom Projektgenerator ein neues Verilogfile erzeugen laesst dann
wirft er fehler aus:

SYN-2541 : Reading BRAM "inst" init file 
"/home/olaf/sources/AnyLogic/Projekte/Softcore_6502/rom.mif"
SYN-2542 : Parsing MIF init file
SYN-6522 WARNING: unknown line: "0000 : 00"
SYN-6522 WARNING: unknown line: "0001 : 00"
SYN-6522 WARNING: unknown line: "0002 : ff"

Es ist also mit meinem MIF-File nicht zufrieden. Das kann sein. Das hab 
ich mir mit einem selbst zusammengehackten C-Source heute morgen 
erzeugt. Und ich wollte ja gerade sehen ob das klappt. Das scheine ich 
also noch was nicht verstanden zu haben.

Der Anfang davon sieht so aus:

-- Olafs MIF Generator V1.0
DEPTH = 4096;          -- Anzahl der Datenwoerter
WIDTH = 8;           -- Breite eines Datenworts in Bit
ADDRESS_RADIX = HEX; -- The radix for address values
DATA_RADIX = HEX;    -- The radix for data values
--
--
CONTENT               -- Ab hier folgen die Daten
BEGIN
0000 : 00
0001 : 00
0002 : ff
[..]

Okay, kann man sicher finden und beheben.
Was mich aber wundert, das mein File nur vom IP-generator bei der 
Erzeugung des Verilogfiles angefasst wird. Das ist doch irgendwie kacke. 
Ich wuerde eigentlich wollen das er jedesmal bei der Synthere des 
erzeugten Verlogfiles die Mifdatei einliesst, aber das scheint nur der 
IP-Gernerator zu machen weil ich nur dann die Fehlermeldung sehe.

okay, auch die Fehlermeldungen der ISE von Xilinx waren immer sehr 
kryptisch, aber gar keine Meldung finde ich doch etwas argh...

Olaf

von Olaf (Gast)


Lesenswert?

Hm..der Fehler in meinem mif-File war das ich kein Semicolon am
Ende der Datenzeilen hatte. Das war natuerlich einfach zu beheben.
Jetzt ist die oben gezeigte Fehlermeldung weg, aber Ram wird
immer noch nicht erzeugt:

HDL-1007 : elaborate module MyRam in MyRam.v(14)
HDL-1007 : elaborate module 
EG_LOGIC_BRAM(DATA_WIDTH_A=8,DATA_WIDTH_B=8,ADDR_WIDTH_A=12,ADDR_WIDTH_B 
=12,DATA_DEPTH_A=4096,DATA_DEPTH_B=4096,REGMODE_A="OUTREG",REGMODE_B="OU 
TREG",INIT_FILE="rom.mif",IMPLEMENT="32K")  in 
/home/olaf/sources/AnyLogic/TD_RELEASE_SEPTEMBER2018_RHEL/arch/eagle_mac 
ro.v(990)
HDL-1200 : Current top model is MainModul
HDL-1100 : Inferred 0 RAMs.

#bram                   0   out of     64    0.00%
  #bram9k               0
  #fifo9k               0
#bram32k                0   out of     16    0.00%

Olaf

von Steffen H. (avrsteffen)


Lesenswert?

Welche TD Version verwendest du?

von Steffen H. (avrsteffen)


Lesenswert?

Ich bin bei Telegram in der SiPeed Gruppe. Und da hat mal jemand 
folgendes gepostet:

For those who have tang primer fpga and project that use bram. Use tang 
dynasty version 5.3.1 january 2021. The march 2020 version have a bug. I 
spend too much time try to debug with verilator and scratching head why 
the tang primer fpga refuse to work. Then tested the same verilog code 
on two other fpga ice40, cyclone10lp that proved the verilator simulator 
was wright and td was wrong.

Vielleicht liegt es daran. Ich verwende die 5.0.3 für Windows. Aber die 
5.3.1 ist die Neuste für Linux.

von Steffen H. (avrsteffen)


Angehängte Dateien:

Lesenswert?

Ich hab mal deinen generierten RAM **ohne** **rom.mif** File (hab ja 
keins da)  mit einem kleinen sinnlosen Adresszähler, einem UART 
Empfänger und die Daten der beiden RAM-do-PORTS an Ausgänge des Tang 
Boards geroutet.

Bei mir nimmt er den **bram32k** !
Falls es doch an einer fehlerbehafteten älteren TD-Version liegen 
sollte, dann gibt es auf der Anlogic Seite die neuere TD-Version 
TD_5.3.1_26273_Linux, welche mit sehr viel Geduld heruntergeladen werden 
kann.

http://www.anlogic.com/down_view.aspx?TypeId=23&Id=406&Fid=t14:23:14

von Steffen H. (avrsteffen)


Angehängte Dateien:

Lesenswert?

Hier mal das ganze Projekt. Ist ja nicht so groß - allerdings unter 
Windows erstellt

von Olaf (Gast)


Lesenswert?

> Vielleicht liegt es daran. Ich verwende die 5.0.3 für Windows.

Ich befuerchte mittlerweile auch das es daran liegt.
Ich hab hier die Version 4.2!
Es wundert mich zwar weil ja der MIPS Prozessor problemlos uebersetzt 
wird, aber es haengt dann ja vielleicht auch von der genauen Art der 
gewaehlten brams ab ob der Bug zuschlaegt. Da kann ich aber mal mit 
rumspielen.

> Aber die 5.3.1 ist die Neuste für Linux.

Ich kann das natuerlich mal probieren, allerdings hatte ich schon
mal die 4.6er probiert weil das die neueste war die bei seeed rumlag,
die liess sich bei mir aber schon nicht mehr verwenden weil ich ein 
Problem
mit den Versionen irgendwelcher wichtigen systemlibaries hatte.

Olaf

von Olaf (Gast)


Lesenswert?

> Hier mal das ganze Projekt. Ist ja nicht so groß - allerdings unter
> Windows erstellt

Ich hab hier gerade mal ein neues Projekt erstellt weil ich das von
deiner neuen Version nicht einfach aufmachen konnte.

Da hab ich dann einfach den IP-Core generiert und deine Dateien 
reingezogen.

Ergebnis:

A_DEPTH_B=4096,REGMODE_A="OUTREG",REGMODE_B="OUTREG",
INIT_FILE="rom.mif",IMPLEMENT="32K") in 
/home/olaf/sources/AnyLogic/TD_RELEASE_SEPTEMBER2018_RHEL/arch/eagle_mac 
ro.v(990)
HDL-1200 : Current top model is MyRAM_top
HDL-1100 : Inferred 0 RAMs.

Hmm...sieht erstmal nicht gut aus, aber...

SYN-2512 : LOGIC BRAM "testRAM/inst"
SYN-2541 : Reading BRAM "testRAM/inst" init file 
"/home/olaf/sources/AnyLogic/Projekte/BRAM_Test/rom.mif"
SYN-2542 : Parsing MIF init file


#bram                   0   out of     64    0.00%
  #bram9k               0
  #fifo9k               0
#bram32k                1   out of     16    6.25%

hier erzaehlt er jetzt das es geht.

Lustigerweise, kopiere ich jetzt das funktionierende in mein anderes
Projekt rueber wird dort wieder kein bram erstellt.

Sieht so aus als wenn der Laden auch was buggy Entwicklungsumgebung 
angeht an Xilinxtraditionen anknuepfen will....


Olaf

von Olaf (Gast)


Lesenswert?

[olaf] ~/sources/AnyLogic/TD_5.3.1_26273/bin: ./td -gui
./td: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found 
(required by ./td)
./td: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required 
by ./td)

Die aktuellste Version fuer mein System ist aber 2.17-323. (hab ich 
gerade nochmal kurz geprueft)

Das heisst das TD dann wohl nur noch auf Centos8/REdhat8 laeuft. Jetzt 
bin ich hier nicht unter Windows wo es normal ist andauernd die Systeme 
zu aktualisieren. Unter Unix erwartet man das man Systeme 10Jahre nutzen 
kann.

Da ist es dann im Zweifel wohl einfacher den chinesischen Kram in die 
Tonne zu kloppen. Was aber dumm ist fuer Anlogic. Ich spiel damit zwar 
derzeit nur so zum Spass rum, aber wenn ich das in ein Projekt in der 
Firma uebernehmen sollte dann kaufen wir da auch mal 100000Stk/a oder 
mehr von den Teilen.

Olaf

von Olaf (Gast)


Lesenswert?

So, ich habs jetzt laufen. :-)

Ich hab zwischenzeitlich auf TD4.5 updaten können, aber daran lag es 
nicht.

Es ist wichtig das alle Daten des Rams genutzt werden! Ich brauche
eigentlich nur ein normales Ram fuer meine CPU und ich dachte ich
verwende Dualportram um später mit der CPU Daten auszutauschen,
aber halt erst später. Die ungenutzte Port war nur mit einem
nicht weiter genutzten Register verbunden.

Sobald der Optimizer merkt das auch nur einer der beiden Ausgangsports 
nicht genutzt wird schmeisst er das Ram raus!

Deshalb hab ich jetzt erstmal normales Blockram mit einem Port genutzt
und das wird dann eingebaut und ich hab auch bereits ein Testprogramm
in der CPU laufen. Also auch das reinladen der MIF-Files klappt!

Aber die praktisch nicht vorhandenen oder nicht sinnvollen Meldungen
beim uebersetzen sind eine Katastrophe. Die helfen einem kein
bisschen weiter wenn man ein Problem hat.

Olaf

von Steffen H. (avrsteffen)


Lesenswert?

Olaf schrieb:
> Sobald der Optimizer merkt das auch nur einer der beiden Ausgangsports
> nicht genutzt wird schmeisst er das Ram raus!

Ich denke mir aber, das kann man irgendwo in den Process/Properties 
einstellen.

Also schreibend von einer Seite und lesend von der anderen mit 
unterschiedlichen clocks, OK. Aber beidseitig lesen & schreiben? Wozu 
braucht man das?
Ich hab den Sinn eines solchen RAM noch nicht kapiert.

Wenn du Probleme mit Linux hast, kann ich dir leider nicht helfen. Das 
es mit jeder IDE Probleme durch falsche Einstellungen geben kann ist 
glaub ich normal. Dafür sind die heutzutage viel zu komplex.

von Olaf (Gast)


Lesenswert?

Weiss zufaellig jemand mit was sich dieser FPGA von Xilinx vergleichen 
laesst?
Sehe ich das richtig der etwa einem kleineren Spartan6 entspricht wenn 
man mal den grossen Speicher ausser acht laesst?

BTW: Ein 6502 laeuft da drin mit 80Mhz Takt. Wenn man das 1985 in seinem 
Kinderzimmer gehaebt haette dann waeren alle Nerds der Schule zum 
anbeten vorbei gekommen. :-D

Olaf

von Olaf (Gast)


Lesenswert?

> Aber beidseitig lesen & schreiben? Wozu braucht man das?
> Ich hab den Sinn eines solchen RAM noch nicht kapiert.

Du kannst halt voneinander unbhaengige Dinge auf den Speicher
arbeiten lassen ohne dir Gedanken um das Timing zu machen.

Zum Beispiel auf der einen Seite mit voller Bandbreite einen
AD in den Speicher schreiben lassen und auf der anderen Seite auswerten.

Es gibt auch Mikrocontroller die haben sowas integriert. Gibt es sogar 
als externe Rambausteine.

Braucht man vermutlich nicht oft, aber ist ja cool wenn es da ist.

Olaf

von S. R. (svenska)


Lesenswert?

Steffen H. schrieb:
> Aber beidseitig lesen & schreiben?
> Wozu braucht man das?

Shared memory zwischen VGA-CRTC und Blitter.
Oder zwischen CPU und Beschleuniger.
Oder schlicht gemeinsam genutzter Speicher, wenn nicht genug BRAM 
vorhanden ist, aber dafür das Timing unkritisch.

von Steffen H. (avrsteffen)


Lesenswert?

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

Eventuell mal hier anfragen
https://www.ariat-tech.de/parts/EG4S20BG256

von Steffen H. (avrsteffen)



Lesenswert?

Hi
Wollt mal fragen wer sich alles so ein Sipeed Tang Primer Board geholt 
hat oder damit rum spielt bzw. ein Projekt erstellt hat.

Ich habe für das Board ein Testboard gebaut welches
- 8x 7-Segmentanzeigen
- 6 Taster
- 2xUART mit jeweils CTS und DTR
- JTAG Anschluss
- 20pin LVDS
- 2× Mini-DIN-6 für Mouse und Keyboard
- 8x ADC auf Stiftleiste herausgeführt
- 1x SPI (SCK,MISO,MOSI,CS, 3.3V, GND)
- 1x I2C
- 12x I/O auf Stiftleiste herausgeführt
- je 4x 5.0V, 3.3V und GND auf Stiftleisten

Das Sipeed Tang Primer Board ist mit Stift/Buchsenleiste im 1,27mm 
Raster angebunden. Somit werden alle Anschlüsse (80 Pins) genutzt.

Ach ja, um LVDS nutzen zu können muss man mit etwas Geschick R15 - 680k 
(0402) auf dem Tang Primer gegen ein 470k austauschen um die 2,5V auf 
Bank0 zu bekommen.

Vielleicht besteht ja Interesse für so ein Träger Board.

von Olaf (Gast)


Lesenswert?

> Vielleicht besteht ja Interesse für so ein Träger Board.

Warum? Das Board selbst ist doch schon ein Traegerboard.
Ich wuerde mir einfach ein Board machen wo das drauf ist was ich
auch brauche. Genauer gesagt habe ich das auch. (SPDIF In/Out,
Oszillator und SPI/I2C fuer LCD usw)

Olaf

von Steffen H. (avrsteffen)


Lesenswert?

Olaf, deins kenn ich doch schon. Ich habe gehofft, dass es hier mehr 
Enthusiasten gibt die mit dem Sipeed Tang Primer experimentieren.

Wie sieht es denn bei dir aus Olaf?
Bist du zufrieden mit dem FPGA und seiner Leistungsfähigkeit?

von Olaf (Gast)


Lesenswert?

> Bist du zufrieden mit dem FPGA und seiner Leistungsfähigkeit?

Ja, alles bestens.

Olaf

von KommParC (Gast)


Lesenswert?

Lichee Tang ist ein guter Produkt aus China.
Warum viele Deutschen Chinesische Produkte nicht mögen, ist mir noch 
rätselhaft.

Wir müssen bei den Chinesen mehr werben, dass sie unserer Fahrzeug (wie 
bei DAIMLER), Machinenbau (wie bei KUKA) und Elektronik (wie  bei 
MEDION, LEDvance) Branchen mehr investieren sollen und dürfen.

https://die-deutsche-wirtschaft.de/deutsche-unternehmen-in-chinesischem-besitz/

von Olaf (Gast)


Lesenswert?

> Lichee Tang ist ein guter Produkt aus China.

Ohne jeden Zweifel. Es macht 10x mehr Spass das Teil zu nutzen als
Xilinx.

> Warum viele Deutschen Chinesische Produkte nicht mögen, ist mir noch
> rätselhaft.

Naja, fuer private Bastler gibt es IMHO nur wenige konkrete Anwendungen
von FPGAs und im Zeitalter von 600Mhz CPUs werden es eher weniger als 
mehr.

Im kommerziellen Bereich sieht das anders aus. Aber man muss auch sagen 
das die englische Dokumentation von Lichee Tang praktisch nicht existent 
ist im Vergleich zu Xilinx. Wenn sie das noch auf die Reihe bekommen 
dann ueberollen sie Xilinx/Altera natuerlich, jedenfalls bei kleinen 
Einsteiger-FPGAs.

Und dann wuerde ich mich in der Firma natuerlich fragen, wo kommt der 
Laden her und wird es ihn in 10Jahren noch geben. Industrielle 
Verfuegbarkeit, also 10Jahre oder mehr, ist ja auch bei den 
herkoemlichen Herstellern schon mal ein Problem und ich hab kein Bock 
nach 5Jahren eine neue Hardwarerevision zu machen und wieder 50kEuro 
fuer Tests und Certificate auszugeben.

Olaf

von Genau (Gast)


Lesenswert?

KommParC schrieb:
> Lichee Tang ist ein guter Produkt aus China.
> Warum viele Deutschen Chinesische Produkte nicht mögen, ist mir noch
> rätselhaft.

Ist doch immer das Selbe: sich mit viel Einsatz einschmeicheln, dann 
später dominieren und knechten.

von Weltbester FPGA-Pongo (Gast)


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?

Das ist ein wichtiger Punnkt. Allerdings einer, den man auch Xilinx 
vorhalten muss! Schöne tolle Bausteine, aber nix funktioniert richtig.

Siehe aktuelle Transceiver-bugs / Core-Gen-config bei den Ultras.

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.