den Tiny sollte man dann aber wegen der Durchlaufzeit sicherheitshalber mit 20MHz takten. Das sind dann immer noch etliches mehr an Nanosekunden gegenüber nem 74139 oder NAND-Gattern. Ich tippe mal Faktor 10.Und den Gedanken von Lotadac, einen Tiny zu benutzen habe ich ebenfalls mal aufgegriffen und die erforderliche Logik einfach mal in ein paar Assemblerbefehle gepackt. Funktioniert ebenfalls.
Ich finde die Idee mit dem Tiny ziemlich cool. Schon deshalb, weil ich im Laufe meines Projekts die Möglichkeit habe, die Logik prinzipiell anzupassen (Daran hatte ich zuvor überhaupt nicht gedacht).
Acht Takte wäre bei 8MHz eine Mikrosekunde (12 Takte entsprechend 1,5µs), mit 20MHz käme man auf 400ns (bzw 600ns).Damit hätte man 'ne "Durchlaufzeit" von 4 (PCINT-IRQ) + 1 (IN ZL, PINregister) + 2 (IJMP) + 1 (OUT PORTregister, Parkregister) = 8 Takten.
Ändert sich der Zustand innerhalb dieser Zeit, kommts zu weiteren 4 Takten Verzögerung.
Das ist selbst bei nem alten Z80 schon recht viel. Bei möglichen 4MHz Systemtakt des alten Z80A hätte ich da schon arge Bauchschmerzen. Bei 2,5MHz mag das wohl noch irgendwie hinhauen. Schön sind die Durchlaufzeiten aber sicher nicht. Wenn man mal mit den gut 200ns Zugriffszeit der RAMs aus der Zeit rechnet. Das summiert sich alles zu einer gemeinsamen Zugriffszeit.Acht Takte wäre bei 8MHz eine Mikrosekunde (12 Takte entsprechend 1,5µs), mit 20MHz käme man auf 400ns (bzw 600ns).
Du hattest ja bereits mit Übertaktung experimentiert, als erstes sind da meiner Erinnerung nach komplexere Innereien ausgefallen...
Die maximale (regelkonforme) Taktfrequenz der "schnellen" AVR liegt bei 20MHz, was 50ns Taktzeit entspricht. Für die geforderten 625ns hat man also höchstens(!) 12 Takte.
Mit sowas wäre man auch flexibel. Das habe ich früher eingesetzt, heute nicht mehr. Neben dem Compiler benötigt man einen geeigneten Programmer.
Zum Beispiel GAL16V8
auf das Ausrufungszeichen hab ich garnicht so geachtetJaja, hatte ich schon verstanden. Vielleicht reicht das dicke Ausrufungszeichen nicht. Wollte Deinen Kommentar nur unterstreichen - selbst mit nur drei Instruktionen wirds verdammt eng.
Ich habe auch ausgerechnet gehabt, dass das sehr eng wird. Ich möchte den Z80B mit 6MHz betreiben.
Einen GAL und passenden Programmer habe ich leider nicht. Das fällt also flach. Trotzdem dank für die Idee.
also nen Z80 schafft max 2,5MHz und der Z80A max 4MHz. Das müßte dann ne andere Version sein. Es gibt glaube ich ne CMOS-Version (Z80H) die bis 8MHz schaffen soll. Ob die aber auch wirklich voll kompatibel ist weiß ich auch nicht.
GAL und Progger reichen alleine auch nicht. Man benötigt noch einen GAL-Assembler dafür der einem die Logikgleichungen in das JEDEC-File wandelt. Wird schon schwierig so einen Assembler zu finden. Heutzutage sind ja eher FPGAs und CPLDs in Verwendung. Hab letztens mal nach dem GALASM (oder hieß der PALASM) gesucht. War nicht so erfolgreich Gabs damals noch unter MS-DOS
Gruß
Dino