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
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
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
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.
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
Schau Dir doch mal bei ebay die ep2c5t144 mini dev boards an.
> Verzoegerung zwischen /RAS, Adressmuxumschaltung und /CAS Ein 74H00 fuer /RAS und 7400 fuer /CAS reicht schon. > Davon wuerd' ich abraten. Ich auch.
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...
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
> 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.
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;
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
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
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
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
Such mal nach dem multicomp von Grant Searle. Das ist ne tolle Anwendung von dem mini dev Board.
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
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/
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.
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
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!
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.