[CALU] Re: Quartus - MultiCycle Path

  • From: Wolfgang Puffitsch <wpuffits@xxxxxxxxxxxxxxxxx>
  • Date: Thu, 20 May 2010 13:46:28 +0200

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: