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 Pathwie 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