Forum: FPGA, VHDL & Co. CPU im FPGA Pins toggeln mit voller Geschwindigkeit?


von Christopher B. (chris_muc)


Lesenswert?

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

von FPGA Spezialist (Gast)


Lesenswert?

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.

von Matthias (Gast)


Lesenswert?

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.

von Christopher B. (chris_muc)


Lesenswert?

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 :)

von Falk B. (falk)


Lesenswert?

@ 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

von Heinz (Gast)


Lesenswert?

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