Forum: FPGA, VHDL & Co. Risc-Processor mit 2 Clocks.


von Dietmar (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
als Anfänger in Sachen fpga möchte ich den RISC-Prozessor von
dem diesjährigen Turing-Preisträger Charles P. Thacker umsetzten und
ein wenig damit spielen.
Siehe hier: 
http://www.bottomup.co.nz/mirror/Thacker-A_Tiny_Computer-3.pdf

Nur benutzt er zwei Clocks mit unterschiedlichen Phasenlängen und
schreibt dazu:

"
The machine executes instructions in two phases (Ph0 and Ph1). This is 
unlike
essentially all modern computers, which use pipelining to improve 
performance. The
phases are different lengths, since during phase 0, we only need to 
access the IM, while.....
"
- weiteres hat er leider nicht dokumentiert.

Hat jemand ein Idee wie ich diese Phasen umsetzen muss?

von melt (Gast)


Lesenswert?

Eine Seite weiter steht doch noch mehr dazu in welche Phase was gemacht 
wird...

von Dietmar (Gast)


Lesenswert?

mmmmmh,
ich sehe nur im verilog-code:

// the Phases. They are asymmetric -- see .ucf file
BUFG ph0Buf(.I(Ph0In), .O(Ph0)); //this is Xilinx - specific
BUFG ph1Buf(.I(Ph1In), .O(Ph1));

einfach Pho und Ph1 im ucf-File setzen? Aber wie? Er schreibt von 
unterschiedlicher Phasenlänge.

von Georg A. (Gast)


Lesenswert?

Wenn's schon unbedingt mit den kranken Phasen sein muss (klingt nach 
70er-Jahre Design...), mach die doch intern im FPGA aus einem 
schnelleren externen Takt. Beispielsweise mit einem damit laufenden 
3Bit-Zähler. phi0 ist dann 1 von 0 bis 3, phi1 von 3 bis 6 oder so 
ähnlich.

von ich (Gast)


Lesenswert?

Mit welchem FPGA arbeitest du?
Xilinx hat so genannte DCMs. Diese sind in der Lage aus einem 
Eingangstakt einen phasenverschobenen Ausgangstakt zu liefern.

von Dietmar (Gast)


Lesenswert?

@Georg A.
ich habe auch gelesen das mehrere Clocks 'böse' sind - nur, Mr. Thacker 
ist nicht irgendwer, schau mal in wikipedia.
Das mit dem Zähler werde ich gleich mal versuchen - danke!

@ich
Ist ein Nexys2 mit Spartan3e, DCMs sind mir neu, schaue ich mir an.

von D. I. (Gast)


Lesenswert?

Mehrere Clocks sind nicht böse, man muss aber halt einen sauberen 
Taktdomänenübergang bauen.

von Georg A. (Gast)


Lesenswert?

Hier ist es nicht ganz so schlimm, da die beiden Phasen ja synchron 
sind. Solange setup/hold eingehalten wird, ist das kein Problem. Aber 
die Nutzung von zwei Phasen ist inzwischen ziemlich ungewöhnlich, einer 
der letzten CPUs, die das gemacht haben, war afaik ein Ultrasparc Ende 
der 90er. Früher war das mehr verbreitet, weil damit normale Latches 
statt flankengesteuerten FFs möglich waren. Das hat dann viele 
Transistoren gespart...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Georg A. schrieb:
> einer der letzten CPUs, die das gemacht haben,
> war afaik ein Ultrasparc Ende der 90er.
Das angesprochene Design stammt aus dem Jahr 2007...  :-o
Zum Glück schreibt er aber, das sein Design nicht wie moderne Computer 
funktioniert:
1
 This is unlike essentially all modern computers ...
Da darf man sich schon fragen, warum alle anderen das anders machen... 
;-)

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.