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.