Forum: FPGA, VHDL & Co. Welcher FPGA Kit / USB Blaster für den Einstieg in 2020?


von Michael (Gast)


Lesenswert?

Hallo,

mein Name ist Michael und ich habe etwa Mitte 2019 mit dem Thema 
"Retrocomputing" angefangen.

Leider ist es ja so, dass man dann auch viele alte Schaltungen findet, 
die man zum Test einmal nachbauen möchte.
Ausserdem gibt es ja eine recht aktive Community, die nicht mehr 
erhältliche Spezialchips in FPGA  CLPD  GAL nachbildet.

Ich habe nun im Forum bestimmt 40 Beiträge gelesen, die sich auf FPGA 
Einstieg beziehen und auch mindestens genau so viele Links zu 
Entwicklungsplattformen verfolgt.

Nun habe ich habe festgestellt, dass die Entwicklung z.B. bei Xilink 
recht rasant ist und Links zu Entwicklungsboards und USB-Blaster für die 
Programmierung zum Teil schon nicht mehr funktionieren oder die Seite 
der Hersteller schon den 3. Nachfolger darstellt.

Ich möchte in der Hauptsache erst einmal "am Objekt" ausprobieren wie 
das Programmieren in der Praxis geht. Gelesen und in verschiedene 
Entwicklungsumgebungen eingegeben habe ich schon eine Menge.
Links zu Büchern, etc. habe ich auch schon viel gelesen.

Ich will nun zum Beispiel das ganze 74er Grab eines ZX80 Computer in 
einem FPGA programmieren und dann mal ausprobieren, ob ein Z80 auf dem 
Steckbrett mit dem FPGA und der ZX80 Tastatur dann funktioniert.

Nicht den ganzen Rechner in den FPGA, nur den Haufen TTL Chips.

Ausserdem will ich z.B. Erweiterungsplatinen, die in versch. alten 
Zeitschriften als Bauanleitung abgedruckt waren und zum Teil aus 30-40 
TTL Chips bestanden "in den FPGA tippen" und dann ausprobieren.

Welche aktuellen und für einen KFZ Mechaniker erschwinglichen 
Entwicklungsboards und USB Blaster sind da wohl geeignet ?

Gruß

Michael

von Archivator (Gast)


Lesenswert?

Michael schrieb:
> Ausserdem will ich z.B. Erweiterungsplatinen, die in versch. alten
> Zeitschriften als Bauanleitung abgedruckt waren und zum Teil aus 30-40
> TTL Chips bestanden "in den FPGA tippen" und dann ausprobieren.
>
> Welche aktuellen und für einen KFZ Mechaniker erschwinglichen
> Entwicklungsboards und USB Blaster sind da wohl geeignet ?

Alle, bis auf die 'allerkleinsten'.
Siehe auch Retrocomputing auf FPGA

von Duke Scarring (Gast)


Lesenswert?

Wenn Retrocomputing Dein Steckenpferd ist, würde ich einen MiST-FPGA 
empfehlen. Da gibt es schon einen ganzen Zoo an Emulationen (Amiga, 
Atari, ZX-Spectrum, C64, ...). Außerdem gibt es ein Tutorial und die 
passenden Peripherieanschlüsse sind auch drauf.

Duke

von Josef G. (bome) (Gast)


Lesenswert?

Michael schrieb:
> Nicht den ganzen Rechner in den FPGA, nur den Haufen TTL Chips.

Für Leute, die nicht ein ganzes System auf einem fertigen
FPGA-Boad realisieren, sondern selber etwas basteln wollen:

https://www.waveshare.com/product/fpga-tools-1/core-boards-compact-boards/altera-core/coreep4ce10.htm

Erhältlich bei Eckstein. Auf dem Board ist ein halbwegs aktuelles FPGA
(Cyclone IV), und sonst nur das Allernötigste, um das FPGA zu betreiben.

Für den vom TO angepeilten Zweck wird es Probleme mit
den Signalpegeln geben, FPGA-Signale sind 3.3 Volt.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Michael schrieb:
> Ich will nun zum Beispiel das ganze 74er Grab eines ZX80 Computer in
> einem FPGA programmieren und dann mal ausprobieren, ob ein Z80 auf dem
> Steckbrett mit dem FPGA und der ZX80 Tastatur dann funktioniert.
>
> Nicht den ganzen Rechner in den FPGA, nur den Haufen TTL Chips.
>
> Ausserdem will ich z.B. Erweiterungsplatinen, die in versch. alten
> Zeitschriften als Bauanleitung abgedruckt waren und zum Teil aus 30-40
> TTL Chips bestanden "in den FPGA tippen" und dann ausprobieren.

Davon wuerd' ich abraten. Zum einen wegen der unterschiedlichen 
Betriebsspannungen und zum anderen sind auch so TTL Graeber nicht 
automatisch gut geeignet, in ein FPGA zu wandern. Bei einem Haufen TTL 
Chips kann man viel leichter Schabernack mit Clk-Signalen treiben als 
bei einem FPGA. Und das hat man oft auch. Vor meinem geistigen Auge 
erscheint z.b. gerade so eine gaengige Anbindung von DRAMs an den 
Adressbus eines Prozessors, wo die Verzoegerung zwischen /RAS, 
Adressmuxumschaltung und /CAS mit RC Gliedern und Invertern gemacht 
wurde. Sowas kann man so nicht in ein FPGA quetschen.
-> Fazit: kein guter Plan fuer den Einstieg.

Gruss
WK

von Andreas R. (daybyter)


Lesenswert?

Schau Dir doch mal bei ebay die ep2c5t144 mini dev boards an.

von oerks (Gast)


Lesenswert?

> Verzoegerung zwischen /RAS, Adressmuxumschaltung und /CAS

Ein 74H00 fuer /RAS und 7400 fuer /CAS reicht schon.

> Davon wuerd' ich abraten.

Ich auch.

von Daniel B. (dbuergin)


Lesenswert?

Duke Scarring schrieb:
> Wenn Retrocomputing Dein Steckenpferd ist, würde ich einen MiST-FPGA
> empfehlen. Da gibt es schon einen ganzen Zoo an Emulationen (Amiga,
> Atari, ZX-Spectrum, C64, ...). Außerdem gibt es ein Tutorial und die
> passenden Peripherieanschlüsse sind auch drauf.

Oder die erweiterte Version von Mist auf dem DE10-Nano Board
https://github.com/MiSTer-devel/Main_MiSTer/wiki
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=1046

Will ich schon lange mal ausprobieren, aber leider hat der Tag nur 
24h...

von Michael (Gast)


Lesenswert?

Danke für die vielen Antworten.

Über den Artikel "Retrocomputing" hier im Forum und den "MIST" als FPGA 
Lösung für die Retrocomputer habe ich nun schon eine etwas bessere 
Übersicht gewonnen.

Ich bin 54 und habe hier noch physisch einen C116, einen C16, 4 mal den 
C64 in verschiedenen Ausführungen und es fehlt mir nur der Aldi C64 und 
einer mit dem KU14xx Motherboard.
Auserdem habe ich noch einen Amiga 2000, einen C128, den ZX81, den 
Sinclair Spektrum und durch viel Internetrecherche auch schon die ein 
oder andere Reparatur an den Computern erfolgreich durchgeführt.

Ich habe mir die Sache dann wohl zu einfach vorgestellt.
Die ISE Oberfläche hat nach einer Weile den Eindruck gemacht, dass es 
einfacher ist einen Haufen UND  XOR  OR / ... zu schreiben und im FPGA 
zu verdrahten als die auf dem Steckbrett zu verbinden.

Deshalb kam ich auf die Idee, mich damit zu beschäftigen.
Aber wenn ich eure Antworten so lese, dann ist meine Idee wohl komplett 
in die falsche Richtung gedacht.

Sorry, aber ich wollte keine Computer in den FPGA stecken, ich wollte 
nur eben den FPGA als "Steckbrett" benutzen, mit einem Levelwandler 
davor und dahinter die 20 oder 30 TTL-IC zu ersetzen.

Entschuldigt, dass ich euch mit meiner "Schnapsidee" belästigt habe.

Aber so ist es halt eben, wenn man Berufsfremd sein Hobby zur Rente hin 
ändern will.

Michael

von oerks (Gast)


Lesenswert?

> mit einem Levelwandler davor und dahinter die 20 oder 30 TTL-IC
> zu ersetzen.

Das kann man ja machen. Aber eben anders.
Statt Kloetzchen im Synthesetool zu verdrahten, schreibt man
ein Textfile mit dem was der Block machen soll.
Aus dieser Beschreibung erzeugt das Tool dann die
"Verdrahtung" im FGPA.
Dazu muss man allerdings midestens im Groben verstehen was
in der Mimik vorgeht.
Und man muss natuerlich auch willens sein, sich das noetige
Minimum an Syntax und Semantik dieser Berschreibungssprache
anzueignen.

Ansonsten koennte ein grosses Steckbrett mit einer Sammlung
74er tatsaechlich die bessere Alternative sein.

Es ist an dir.

von oerks (Gast)


Lesenswert?

Mal als einfaches praktisches Beispiel ein 7447 Dekoder:


entity 7447 is
  Port (
    data  : in  STD_LOGIC_VECTOR (3 downto 0);  -- L := digit select
    segment  : out  STD_LOGIC_VECTOR (7 downto 0);  -- L := segment 
select
  );
end 7447;

architecture Behavioral of 7447 is

begin

  with data select
  segment <=  "11000000"  when "0000",
      "11111001"  when "0001",
      "10100100"  when "0010",
      "10110000"  when "0011",
      "10011001"  when "0100",
      "10010010"  when "0101",
      "10000010"  when "0110",
      "11111000"  when "0111",
      "10000000"  when "1000",
      "10010000"  when "1001",
      "10001000"  when "1010",
      "10000011"  when "1011",
      "10100111"  when "1100",
      "10100001"  when "1101",
      "10000110"  when "1110",
      "10001110"  when "1111";

end Behavioral;

von Michael (Gast)


Lesenswert?

Sorry, das ich mich erst jetzt wieder melde.

Danke an oerks, so habe ich die Bauteilebeschreibungen auch schon 
gesehen.

Dein 7447 ist auch gut zu verstehen. Also wenn ich nun noch wüsste, 
welcher FPGA und welche (halbwegs) überschaubare IDE / 
Developmentumgebung für den Einstieg in Frage kommt.

Der Terassic de0 nano mit der Quartus Workbench sieht nicht schlecht 
aus.

Da ist ein Cyclone IV drauf, der Preis ist mit um die 100€ nicht so 
schrecklich hoch und da ich ja nicht die Computer in den FPGA stecken 
will, sondern nur die externe Hardware, sollte das doch für den Einstieg 
gehen ?

Auch wenn nun die richtig erfahrenen Experten hier sagen: Warum will der 
nur die Erweiterungen in den FPGA stecken, dann kann er ja auch den 
Computer gleich mitmachen ...

Ich habe die Computer da. Die Ports der Computer von 5V in die 1,8, 2,5 
oder 3,3 Volt zu wandeln und umgekehrt ist ja mit den Adafruit 
Pegelwandlern kein Hexenwerk.

Ich will einfach nicht hunderte TTL-IC kaufen, die auf ein Steckbrett 
setzen, ein paar Tage damit herumexperimentieren und dann Alles wieder 
auseinanderreißen um irgendwann dann doch noch 2 oder 3 IC nicht da zu 
haben und wieder nachzukaufen.

Wenn ich erst einmal die Live - Programmierung des FPGA verstanden habe, 
dann kann ich die IC in den FPGA "stecken", verdrahten und die 
Schaltungen aus den Heften testen.
(Besonders für den ZX81 gab es in der FUNKSCHAU viele Artikel mit 
7-Segment Anzeigen + Ansteuerlogik aus 74LSXX um die Arbeitsweise von 
Computern und Hardware zu visualisieren.)

Wenn ich dann das Experiment nicht mehr brauche, wird das nächste 
programmiert und getestet.

Allerdings sind dann nicht 30 74LSXX Chips noch im Steckbrett.

Die Retrohardware wird damit auch geschont, weil ja bei Fehlern im FPGA 
keine Kurzschlüsse die Ports der Computer belasten.

Ist meine Annahme da richtig, oder denke ich da bezüglich der Anwendung 
in die falsche Richtung?

Michael

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Michael schrieb:
> Die Ports der Computer von 5V in die 1,8, 2,5
> oder 3,3 Volt zu wandeln und umgekehrt ist ja mit den Adafruit
> Pegelwandlern kein Hexenwerk.

Nein, aber es kostet Zeit, d.h. veraendert dein Timing. Obs noch passt 
oder nicht...(Sagt euch gleich das Licht)

Das 7447 Beispiel zeigt nur einen Teil eines 7447, RBI,RBO,LT fehlen 
schon mal.
Und schon, wenn man den selben Zauber mit einem 7490 oder 7493 machen 
will, wird's im FPGA ziemlich bloed. Weil man da keine Ripplezaehler 
baut, sondern synchrone. Kann sein, dass das in der konkreten Anwendung 
nix macht, muss aber nicht...

Mein Eindruck von alten TTL Graebern ist schon der, dass da die 
"Designphilosophie" eine andere ist, als bei FPGAs. Beim TTL Grab tut's 
nicht weh', jedes X-beliebige Signal auch mal als Clk fuer ein paar 
Flipflops herzunehmen. Im FPGA tut das schon weh'. Asynchrone Resets 
sind im TTL Grab kein Problem, im FPGA...hmmm...vielleicht manchmal 
doch. etc. bla.

Aber lass dich von dem Geschwaetz nicht vom Experimentieren mit FPGAs 
abhalten.

Gruss
WK

von Michael (Gast)


Lesenswert?

Ich finde das nicht "Geschwätz", im Gegentum.
Ich bin KFZ Mechatroniker, Alles was in der Richtung Elektronik / 
Computer so an Wissen angehäuft wurde von mir, kommt aus dem Internet, 
dem Forum hier, selbst ausprobieren und als mein Vater bis vor 20 Jahren 
noch lebte da habe ich regelmäßig bei dem mitgebastelt.

Ich erhoffe mir ja immer noch Hilfe, welcher FPGA "der Richtige" für 
meine geplanten Einsätze ist.

In fpga4fun fängt die Einführung ja schon mit dem Programmieren für den 
VGA an.
Bei BenHeckShow ist das Musterprojekt das Reverseengeneering eines LCD 
Display.
Der verlinkte Retrocomputer Artikel beschäftigt sich damit, wie groß ein 
FPGA sein muß um einen ganzen Computer da reinzumachen.

MIST als Projekt bezieht sich auch nur auf den Ersatz eines physischen 
Computer durch den FPGA.

Ist vielleicht mein Gedanke FPGA falsch und TTL-Gräber ersetzt man min 
CLPD, GAL oder wie die anderen Dinger so heißen ?

Dann darf man mir das ruhig sagen und ich suche in die andere Richtung.
Wenn es die gibt ...

Michael

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ja, CPLDs werden wahrscheinlich geeigneter sein, einen Haufen TTL-Chips 
zu ersetzen, insbesondere weil sie ggf. noch 5V tolerant sind.
Aber auch da ist einfach deine "Problemstellung" eines solchen 
Mischmaschs eher ungluecklich gewaehlt.

Guck' dir z.B. mal dieses Ding hier an:

http://www.scullcom.com/ZX80_Minstrel_schematic.pdf

Da faellt mir auf Anhieb sowas auf wie C11/R25 - das wird irgendwie die 
Phase/Tastverhaeltnis eines Clksignals drehen. Ok, kann man vielleicht 
noch per DCM oder PLL versuchen, irgendwie im FPGA nachzubilden, aber es 
geht halt nicht 1:1.
Oder so ein Konstrukt wie das in IC15 invertierte M1 Signal, was auf die 
Clk-Eingaenge 2er Flipflops geht - So laeuft das in FPGAs nicht.
Wenn man solche RS-Flipflops wie mit IC12 oder IC11 so als 
kombinatorische Logik, wie sie da verschaltet sind, in VHDL beschreibt, 
dann wuerd's mich nicht wundern, wenn da die Tools arg meckern. Aus dem 
IC11 Flipflop geht dann noch ein (aynchroner) Reset auf den IC21. Da ist 
Aerger vorprogrammiert.
Dann guck dir mal den Pfad an von D6 ueber IC13, IC16, IC17, IC15, 
IC14/15 - sowas wird im FPGA schnell mal mit einer Lookuptable 
synthetisiert, d.h. die ganzen Gatterlaufzeiten, die das TTL-Grab hat, 
sind ploetzlich weg. Das muss nicht immer gut sein. Kann sein, dass die 
fuer die richtige Funktion der Schaltung wichtig sind.

Das ist alles so ein Zeugs, mit dem sollte man sich nicht rumschlagen 
muessen, wenn man "FPGA lernt". Da hat man noch genug andere Baustellen 
am Anfang.

Gruss
WK

von Andreas R. (daybyter)


Lesenswert?

Such mal nach dem multicomp von Grant Searle. Das ist ne tolle Anwendung 
von dem mini dev Board.

von ach was (Gast)


Lesenswert?

... alles nicht so schlimm... :)

https://github.com/TimRudy/ice-chips-verilog

von Dergute W. (derguteweka)


Lesenswert?

Moin,


ach was schrieb:
> ... alles nicht so schlimm... :)
>

Soso...

> https://github.com/TimRudy/ice-chips-verilog/blob/master/source-7400/7474.v

1
// Note: Preset_bar is synchronous, not asynchronous as specified in datasheet for this device,
2
//       in order to meet requirements for FPGA circuit design (see IceChips Technical Notes)

Wenn man's nicht braucht ist's nicht schlimm, wenn aber doch?
Und braucht man's z.B. beim ZX80 Schaltbild, IC18 in der SYNC Erzeugung? 
Kann man das als FPGA Anfaenger abschaetzen? Ok, hier ist's leicht: CLK 
liegt festgezurrt auf High. Und jetzt?

Gruss
WK

von C. A. Rotwang (Gast)


Lesenswert?

Michael schrieb:
> Ist vielleicht mein Gedanke FPGA falsch und TTL-Gräber ersetzt man min
> CLPD, GAL oder wie die anderen Dinger so heißen ?

Eine CPU ist kein TTL-Grab, deshalb kommt man bei CPU-Nachbildungen mit 
einem FPGA nicht weit.

Eine CPU besteht eben nicht nur aus Kombinatorik, also 
AND-,OR-,XOR-Gattern sondern auch aus Speicherelementen wie FlipFlops 
(FF) . Die FF braucht man für Zähler wie besipielsweise den 
Programmcounter, aber auch für die Daten-Register und fürs Steuerwerk 
FSM. Dergleichen kann man zwar auch mit 74* IC'snachbauen 
https://de.wikipedia.org/wiki/Liste_von_integrierten_Schaltkreisen_der_74xx-Familie 
bspw. 74xx74; das ist aber wegen der Taktleitung deutlicher 
komplizierter und fehlerträchtiger.

Deshalb wird man in den TTL-Gräbern kaum FF finden sondern Kombinatorik. 
Kombinatorik (mit vielen Eingängen) kann man nun gut mit GAL und CPLD 
nachbilden, FF haben diese Bausteine (CPLD) zwar auch, aber eher selten 
und dann nur an den PIN-Pads. Deshalb sind CPLD's für CPU -Nachbauten 
eher wenig geeignet.

https://numato.com/kb/cpld-vs-fpga-differences-one-use/

von Michael (Gast)


Lesenswert?

Danke an Alle.

Ich sehe schon, dass ich viel zu naiv an die Sache rangegangen bin.
Wenn ich hier lese dass sich schon Leute um künftige Projekte Gedanken 
machen, dann bekomme ich den Eindruck, dass es noch ein weiter Weg ist 
bis ich mich mit einem FPGA "anlegen" sollte.

Also bedanke ich mich nochmal ganz herzlich bei Allen hier für eure 
Mühen und werde wohl ein größeres Steckbrett und mehr Strippen 
anschaffen um die steigende Anzahl Schaltungsvorschläge experimentell 
umzusetzen.

Der FPGA wird dann, wenn überhaupt später bis sehr viel später auf 
meinem Schreibtisch auftauchen.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Michael schrieb:
> dann bekomme ich den Eindruck, dass es noch ein weiter Weg ist
> bis ich mich mit einem FPGA "anlegen" sollte.

Nicht das ich hier falsch rueberkomm' - den Eindruck will ich ueberhaupt 
nicht vermitteln. Mit FPGAs anfangen ist immer ne gute Idee.
Nur die Idee, gleich als erstes TTL-Graeber 1:1 in FPGAs zu verfrachten, 
halt' ich fuer nicht so gluecklich. Eben wegen der angefuehrten 
Stolperfallen.
Ein paar lustige Statemachines, synchrone Zaehler, etc. haben noch 
keinem geschadet ;-)

Gruss
WK

von U.G. L. (dlchnr)


Lesenswert?

Als Einstieg zum Erlernen von VHDL hat mir das ICE40HX1K-STICK-EVN sehr 
gut gefallen - günstig und einfach rein in die USB Buchse und loslegen!

von W.S. (Gast)


Lesenswert?

Michael schrieb:
> Ich sehe schon, dass ich viel zu naiv an die Sache rangegangen bin.
> Wenn ich hier lese dass sich schon Leute um künftige Projekte Gedanken
> machen, dann bekomme ich den Eindruck, dass es noch ein weiter Weg ist
> bis ich mich mit einem FPGA "anlegen" sollte.

Sieh mal nicht zu schwarz.

Eigentlich ist es so:

Fall A: du willst (wie beschrieben) lediglich die vielen TTL-IC's durch 
etwas handlicheres ersetzen. Dafür solltest du ein CPLD benutzen. Ich 
würde dir dazu die XC95144XL von Xilinx anraten. Die gibt es für wenig 
Geld bei Ali, sie sind 5V tolerant und sie sind relativ einfach zu 
brennen und brauchen keinen externen Kram wie Boot-Flash, 
Konfigurationspins (außer JTAG) und ihre Logik steht SOFORT nach 
Strom-Einschalten zur Verfügung - und man kann die Zuordnung der 
gewünschten Logik zu den Pins frei wählen. Für Retro-Zwecke brauchst 
du dann noch die passende Original-CPU oder was kompatibles sowie RAM 
und Flashrom. Das wird übersichtlicher als das Original.

Fall B: du willst nicht nur TTL, sondern die CPU und alles andere (naja, 
außer vllt. RAM in Größenordnungen) als Logik in einen Chip stopfen. Für 
sowas ist dann ein FPGA gut. Das wird dann ein variabler Retro, der im 
Grunde nur aus einem FPGA besteht und je nach Einladen der zuständigen 
Logik sowohl ZX-Spectrum als auch Atari als auch Amiga sein kann. Sowas 
ist allerdings entwicklungstechnisch anspruchsvoller und kein 
Anfangsprojekt.

W.S.

von MIchael (Gast)


Lesenswert?

Hallo,

ich habe nun gezwungermaßen ein wenig mehr Zeit und die CLPD Geschichte 
sieht nicht schlecht aus.

Beim FPGA habe ich echt gedacht dass der Anfang mit einfacher Logik 
besser ist, als mit komplexen Sachen.
Scheint aber wirklich nicht so zu sein.

Ich suche nun mal ein CLPD Board raus und werde mich dann daran machen, 
die TTL-Gräber aus den Bauanleitungen nachzubauen.

Es wird definitiv kein Retrocomputer in einen FPGA gesteckt.
Ich habe von VC-20 über C-16, 3 Iterationen C64, C128 und 3 Amiga 
(500,2000, 600) sowie 2 ZX 81 Alles da.

Da ist wirklich nur das Problem die teils umfangreichen 
Selbstbauinterfaces mit so wenig Chips wie möglich nachzubauen.

Bleibt Gesund.

Michael

von Andreas R. (daybyter)


Lesenswert?

CPLD ist gut, wenn Du z.B. ne zx81 Speichererweiterung bauen willst. 
Evtl geht da sogar noch ein ganz einfaches sd Karten Interface rein.

Wenn ich mal viel Zeit hab, muss ich das mal probieren (in 50 Jahren, 
oder so).

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
Noch kein Account? Hier anmelden.