pipelined prozessor in verilog

Gast #2786597
Hallo,
ich möchte gerne in Verilog einen pipelined Prozessor modellieren, der 
den Thumb Befehlssatz versteht.
Wieviele Stufen wähle ich am besten für die Pipeline? Reichen 3 Stufen?
FETCH,EXECUTE,WRITEBACK?
Die Befehle des Thumb-Befehlssatz dauern unterschiedlich lang. Eine 
Push-Instruktion kann zB alle Register einer Liste in den Stack 
schreiben  und dauert abhängig von der Anzahl der zu schreibenden 
Register viel länger als eine Add Operation. Wie lang wähle ich da die 
Pipelinestufen? Kann ich hier einfach sagen, jede Stufe benötigt einfach 
fest 10 Takte oder ist es besser die Stufen variabel zu halten, dh wenn 
ich eine push-OP mit 7 Registern in der Fetchstufe entdecke, dann 
verlängere ich die Execute und Writebackphase? Als Speicher steht mir 
nur SRAM mit 4096 16-Bitwörtern zur verfügung. Der Prozessor arbeitet 
aber mit 32bit Registern. Der Speicher beinhaltet sowohl die Daten als 
auch die Befehle und kann nicht gleichzeitig gelesen und beschrieben 
werden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.