Was du vorhast ist, wenn ich es richtig verstanden habe, schon im Ansatz
zum Scheitern verurteilt. Du kannst die Verzögerungszeiten einer
Inverterkette nicht messen weil es auf dem FPGA keine Inverterkette
gibt, egal wie du ihn konfigurierst. Was du konfigurieren kannst ist
z.B. eine LUT-Kette, aber es gibt auch nicht "die" LUT-Kette, weil die
Verzögerungszeiten von der Platzierung (Entfernung auf dem Chip) und dem
Routing (z.B. Long Lines vs. kurzer Verbindung) abhängen. Soll heißen:
Kleine Änderungen an völlig anderen Teilen einer Konfiguration können
andere PAR-Ergebnisse und damit andere Verzögerungszeiten als Ergebnis
haben.
Was du machen kannst ist:
- Die Verzögerungen einzelner CLBs im Datenblatt nachschlagen. Da sind
dann natürlich keine Routing-Laufzeiten drin, aber dafür hast du sofort
einen konkreten Wert vor dir. Beispiel: Verzögerungszeit zwischen
F-LUT-Input und X-Output eines CLB auf einem Spartan-3 mit Speed Grade
-4: 0.21 - 0.61 ns.
- Das Timing einer fertigen Schaltung messen. Macht man typischerweise
in der letzten Phase der Optimierung und mit Hilfe spzieller
Timing-Tools (da kenne ich mich leider noch nicht aus).
- Eine gute Abschätzung, indem du die LUT-Kette samt Platzierung
vorgibst (soweit ich weiß kann das Routing nicht vorgegeben werden.
Dadurch ist die Abschätzung dann auch nicht exakt, weil andere Teile die
später dazukommen dieselben Routing-Ressourcen benutzen "wollen"). Das
geht indem du LUT-Primitive im VHDL-/Verilog-Code instanziierst und per
constraints deren Lage vorgibst. Hab ich leider auch noch nicht gemacht.