Besten Dank für die Antworten!!!
Andi Z. schrieb:
> ich habe festgestellt, dass dieses delay grösstenteils aus einer
> zusammenschaltung von kombinatorik kommt. je länger der kombinatorische
> pfad is desto mehr delay hast du.
Du meinst hier wahrscheinlich das reale Delay im Signal. Diese 5.0 ns
sind aber ein Delay-Constraint, also eine Einschränkung, die sich das
Tool vorgibt und der die Signale aller Pfade nach dem Place and Route
genügen müssen. So verstehe ich das.
Andi Z. schrieb:
> wenn das ein unkritischer pfad ist dann kannst du ihn aus dieser
> timing-synthese nehmen und er wird nicht geprüft. das mach ich bei mir
> bei solchen pfaden, bei denen ich mir sicher bin das die signale zur
> zeit des eintaktens auf jedenfall anliegen.
> Design Planner -> Spreadsheed View -> Block.
> dort kannst du die signale auswählen die unkritisch sind.
Und wie kann man von einem Signal sicher wissen, dass es zum Zeit des
Eintaktens auf jeden Fall anliegt. Ist nicht gerade das die Aufgabe
dieser automatischen Timing-Analyse, zu prüfen ob die Signale zur
richtigen Zeit anliegen und zu melden, wenn das nicht der Fall ist. Ich
habe in dem oben erwähnten Tutorial gesehen, dass asynchrone Signale
(z.B. asynch. Reset) in dieser Block-Preference aus der Timing-Analyse
ausgeschlossen werden sollen, weil sie ja vom Takt unabhängig sind.
Klaus Falser schrieb:
> Wenn Du nun vom Ausgang eines FFs das mit fallender Flanke arbeitet
> spi_master_c/n_status_2 (from pll_clock -)
>
> auf ein Signale geführt, das mit steigender Flanke arbeitet
> spi_master_c_MOSI_MASTERio (to pll_clock +)
>
> --> dann hast Du 5 ns constraint.
Das klingt ziemlich einleuchtend! Die Zeichen +/- bei pll_clock bedeuten
also, steigende/fallende Flanke. Und ich habe gerätselt, wie ich das
verstehen soll. Eigentlich arbeite ich in diesem Design nur mit
steigenden Flanken, darum verstehe ich nicht warum die syntetisierte
Schaltung FF mit fallender Flanke verwendet. Ich verwende allerdings
Reference Disigns von Lattice und die habe ich mir nicht sehr gründlich
durchgeschaut. Normal muss das doch immer im Code zu finden sein, wenn
irgend wo FFs verwendet werden, die mit fallender Flanke getaktet sind,
oder? Oder kann das auch sonst wie zustande kommen?