[CALU] Fwd: Quartus - MultiCycle Path

  • From: Benedikt Huber <benedikt@xxxxxxxxxxxxxxxxxx>
  • To: calu-ss2010-tuwien@xxxxxxxxxxxxx
  • Date: Thu, 20 May 2010 17:25:44 +0200


Begin forwarded message:
From: Wolfgang Puffitsch <wpuffits@xxxxxxxxxxxxxxxxx>
Date: 20. Mai 2010 17:22:17 GMT+02:00
To: Günther Wimpassinger <e0525147@xxxxxxxxxxxxxxxxxxxx>
Cc: Benedikt Huber <benedikt@xxxxxxxxxxxxxxxxxx>
Subject: Re: Quartus - MultiCycle Path

wie kann ich dem klassischen Timing Analyzer unter Quartus beibringen,
dass ein bestimmter Pfad (32bit hw-multiply) zwischen zwei Registern
mehrere Cycles dauern darf?

Aus der Quartus-Hilfe werde ich nicht schlau und das
"set_multicycle_path" Ding gilt wohl nur für den "TimeQuest" Analyzer.

Ich will sowas machen

EX-Stage WB-Stage
P a P
I--+ I
P \ res P
E *----E
| / |
R--+ R
E b E
G G
^ ^
+---------+---- clk

Bei der Multiplikation wird im 1ten Cycle die Pipeline
(EX und alles davor) gestalled und in WB wird ein "NOP"
eingefügt. Im 2ten Cycle wird/soll dann das Ergg im
WB-Stage Pipe-Register übernommen werden.

Ich habe das zwar noch nie gebraucht, aber wie es für mich aussieht
kann man unter "Assignments -> Assignment Editor" (Category:
Timing->Multicycle) Multicycle-Pfade angeben. Ob/wie genau das
funktioniert kann ich aber mangels Erfahrungswerten nicht sagen.

Eine alternative Möglichkeit wäre es, ein zusätzliches Register vor
dem eigentlichen einzufügen Pipeline-Register einzufügen und alle
Optimierungen aufzudrehen. Quartus schafft es dann (normalerweise),
das Register an die passende Stelle zu verschieben.

mfG,
Wolfgang Puffitsch

--
Univ.Ass. Dipl.-Ing. Wolfgang Puffitsch

Institute of Computer Engineering
Vienna University of Technology
Treitlstr. 3/182-1
1040 Wien

voice: +43(1)58801-18208
email: wpuffits@xxxxxxxxxxxxxxxxx

DVR: 0005886


Other related posts:

  • » [CALU] Fwd: Quartus - MultiCycle Path - Benedikt Huber