Hallo, mit Microcontrollern gibts ja immer wieder das Problem, dass sie ihre IO Pins nicht mit voller Frequenz toggeln können. Wie sieht das bei CPUs in PLDs aus? Können dieses mit voller Frequenz toggeln? Müssten sie ja eigentlich, weil das ist es doch gerade für was sie gemacht sind. Oder stelle ich mir das gerade viel zu einfach vor? Gruß Chris
Ja, aber mit Systemtakt arbeiten, heisst immer mit hoher relativer Verzögerung. Je nach Realistation kriegst Du clk-Probleme beim Routen oder "analoge" Taktprobleme beim Betrieb durch den belasteten clock! Die Lösung heisst DDR-Zellen: Ein dual data rate Zelle mit Belegung 0 und 1, welche die 1 bei steigender Flanke und die 0 bei fallender Flanke ausgibt. Dann kriegst Du deinen Systemtakt mit geringer Verzögerung nach draussen.
Das kommt auf die CPU drauf an und wie die IOs daran angebunden sind. Bei einem Microblaze System sind die IOs z.B. über den OPB Bus angebunde. Der läuft zwar theortisch mit voller CPU Frequenz, allerdings gibts ein Delay von so einigen Taktzyklen bis die Bustransaktion komplett ist. Also auch nix mit voller Geschwindigkeit. Am ehesten dürfte sowas noch bei den simpelsten Prozessoren (z.B. Picoblaze) gehen, die kein Businterface verwenden.
Ich dachte bisher eher an einen der Z80 Cores von opencores.org. Mit Picoblaze und konsorten habe ich mich noch nicht auseinander gesetzt. Werd ich mal nachhernen bisschen googln :) Danke schonmal für die Infos ihr beiden :)
@ Christopher Bock (chris_muc) >mit Microcontrollern gibts ja immer wieder das Problem, dass sie ihre IO >Pins nicht mit voller Frequenz toggeln können. Wie sieht das bei CPUs in >PLDs aus? Können dieses mit voller Frequenz toggeln? Müssten sie ja Was heisst volle Freqeunz? Die, mit der die CPU läuft oder die, die das FPGA physikalisch schafft? >eigentlich, weil das ist es doch gerade für was sie gemacht sind. Oder >stelle ich mir das gerade viel zu einfach vor? Wie bereits von den anderen Postern geschrieben, dauern die Zugriffe auf IO über die Busse doch einige Takte. Die Busse sind halt auf hohen Durchsatz getrimmt, nicht auf niedrige Latenz. Aber in einem FPGA wird man sinnvollerweise NICHT irgendwelche Soft-UART/SPI/Whatever Sachen machen. Dafür gibts ja schliesslich das FPGA! Das kann wunderbar mit kleinen Modulen die diversen Schnittstellen mit höchsten Taktraten bedienen. Das Bitgeklimper macht dann das Modul und meldet nach erfolgreicher Übertragung sich per Interrupt bei der CPU, die dann fertige Datenbytes bzw. Blöcke vom Modul transferiert. MFG Falk
>Die Lösung heisst DDR-Zellen: Ein dual data rate Zelle mit Belegung >0 und 1, welche die 1 bei steigender Flanke und die 0 bei fallender >Flanke ausgibt. >Dann kriegst Du deinen Systemtakt mit geringer Verzögerung nach >draussen. Macht das soviel aus? Man muss ja auch den Weg von den DDR-Zellen zum IOB berücksichtigen, oder nicht ?
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.