Gast
#389309
Hallo Forum, Da sich in diesem Forum diverse VHDL-Experten tummeln wage ich es einmal mit einer Frage. Zu VHDL bin ich als Quereinsteiger gekommen, d.h. ich habe Designs vom Kollegen übernommen, der die Firma verlassen hat. VHDL von der Vorgehensweise habe ich mittlerweile einigermassen im Griff. Probleme bereiten mir im Zusammenhang mit der Implementation aber die Timing Constraints resp. deren genaue Bedeutung. Der Kollege hatte sein Modell komplett synchron aufgebaut, mit externem 32MHz (T=31.25ns) Clock, welcher intern auf 64MHz (T=15.625ns) verdoppelt wurde. Clock-Input = "OB_CLK" System: ISE6.3.03i, Spartan2 XC2S100-6-PQ208 Seine Timing Constraints sahen so aus: ---------------------------------------- # Timing NET "OB_CLK" TNM_NET = "OB_CLK"; TIMESPEC "TS_OB_CLK" = PERIOD "OB_CLK" 28 ns HIGH 50 %; OFFSET = IN 14 ns BEFORE "OB_CLK"; OFFSET = OUT 14 ns AFTER "OB_CLK"; TIMESPEC "TS_P2P" = FROM "PADS" TO "PADS" 14 ns; ---------------------------------------- Die 14ns wurden anscheinend gewählt, um auf die Limite von 15.625ns eine Reserve zu haben. Sind/waren diese Constraints so richtig für ein komplett synchrones Design, bei welchem alle In- und Outputs abgecklockt werden? Bei meinem Design soll nun der externe Clock direkt verwendet werden (kein Verdoppler), auch hier wird das Modell komplett synchron aufgebaut. externe und interne Taktfrequenz bei diesem Modell: 48MHz (T=20.833ns), Clock-Input = "uC_CLK" System: ISE8.1i - Spartan3 - XC3S250E-4VQ100 Nach meinem Wissen müssten die Timing Constraints dann so aussehen ---------------------------------------- # Timing NET "uC_CLK" TNM_NET = "uC_CLK"; TIMESPEC "TS_uC_CLK" = PERIOD "uC_CLK" 18 ns HIGH 50 %; OFFSET = IN 18 ns BEFORE "uC_CLK"; OFFSET = OUT 18 ns AFTER "uC_CLK"; TIMESPEC "TS_P2P" = FROM "PADS" TO "PADS" 18 ns; ---------------------------------------- Hier würde also eine Reserve von 2.833ns resultieren, richtig? Kann mir jemand die Richtigkeit meiner Annahmen bestätigen oder mir beim Finden der richtigen Angaben behilflich sein? Vielen Dank im Voraus! Martin email: mkohler[ätt]kern[punkt]ch