Forum: FPGA, VHDL & Co. Constraintsproblem


von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Hallo,

ich habe einen Virtex 5. In dem soll ein Microblaze mit 80 MHz laufen. 
Der MB beschreibt verschiedene Register, die die restliche Logik (250 
MHz) steuern. Jetzt habe ich schon verschiedene Constraints gesetzt um 
ein Timing-Closure hinzubekommen. Trotzdem werden noch Timing-Fehler 
angemeckert, die (meiner Meinung nach) von den Constraints abgedeckt 
werden.

------------------------------------------------------------------------ 
--------
Hold Paths: TS_80_to_250 = MAXDELAY FROM TIMEGRP "TMN_clk80" TO TIMEGRP 
"TMN_clk250" 4 ns;
------------------------------------------------------------------------ 
--------

Paths for end point 
pedas_sl_top_0/pedas_sl_top_0/m_cntrl/m_pulse_block/state_FSM_FFd4 
(SLICEL.D5), 1 path
------------------------------------------------------------------------ 
--------
Slack (hold path):      -0.232ns (requirement - (clock path skew + 
uncertainty - data path))
  Source: 
pedas_sl_top_0/pedas_sl_top_0/mreg_file/s_regfile_12_0 (FF)
  Destination: 
pedas_sl_top_0/pedas_sl_top_0/m_cntrl/m_pulse_block/state_FSM_FFd4 (FF)
  *Requirement:*          *0.000ns*
  Data Path Delay:      0.219ns (Levels of Logic = 1)
  Positive Clock Path Skew: 0.018ns (0.264 - 0.246)
  Source Clock:         PULSEMEM_BRAM_PORTA_BRAM_Clk rising at 87.500ns
  Destination Clock:    clk_250_0000MHz rising at 88.000ns
  Clock Uncertainty:    0.433ns

  Clock Uncertainty:          0.433ns  ((TSJ^2 + DJ^2)^1/2) / 2 + PE
    Total System Jitter (TSJ):  0.070ns
    Discrete Jitter (DJ):       0.363ns
    Phase Error (PE):           0.247ns

  Minimum Data Path: 
pedas_sl_top_0/pedas_sl_top_0/mreg_file/s_regfile_12_0 to 
pedas_sl_top_0/pedas_sl_top_0/m_cntrl/m_pulse_block/state_FSM_FFd4
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical 
Resource(s)
    ------------------------------------------------- 
-------------------
    SLICEL.DQ            Tcko                  0.414 
pedas_sl_top_0/pedas_sl_top_0/mreg_file/s_regfile_12_0
                                                       pedas_sl_top_0/pedas_sl_top_0/mreg_file/s_regfile_12_0
    SLICEL.D5            net (fanout=3)     e  0.000 
pedas_sl_top_0/pedas_sl_top_0/mreg_file/s_regfile_12_0
    SLICEL.CLK           Tah         (-Th)     0.195 
pedas_sl_top_0/pedas_sl_top_0/m_cntrl/m_pulse_block/state_FSM_FFd4
                                                       pedas_sl_top_0/pedas_sl_top_0/m_cntrl/m_pulse_block/state_FSM_FFd4-In1
                                                       pedas_sl_top_0/pedas_sl_top_0/m_cntrl/m_pulse_block/state_FSM_FFd4
    ------------------------------------------------- 
---------------------------
    Total                                      0.219ns (0.219ns logic, 
0.000ns route)
                                                       (100.0% logic, 
0.0% route)
------------------------------------------------------------------------ 
--------

Mich erstaunt am meisten, dass das Requieremnt auf 0 steht.

Hier der Abschnitt aus dem ucf:

INST "pedas_sl_top_0/pedas_sl_top_0/mreg_file/s*" TNM = TMN_clk80;
INST "pedas_sl_top_0/pedas_sl_top_0/m_cntrl/*" TNM = TMN_clk250;
INST "pedas_sl_top_0/pedas_sl_top_0/m_pulse_gen/*" TNM = TMN_clk250;
TIMESPEC TS_80_to_250 = FROM "TMN_clk80" TO "TMN_clk250" 4 ns;
INST 
"pedas_sl_top_0/pedas_sl_top_0/m_cntrl/Mmult_s_wide_measurements_mult000 
0"  TNM = tmn_mult;
TIMESPEC TS_mult = FROM "TMN_clk80" TO "tmn_mult" 8 ns DATAPATHONLY;


Tom

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Thomas Reinemann schrieb:
> In dem soll ein Microblaze mit 80 MHz laufen. Der MB beschreibt
> verschiedene Register, die die restliche Logik (250 MHz) steuern.
Wie hängen diese beiden Takte zusammen?

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Lothar Miller schrieb:
> Wie hängen diese beiden Takte zusammen?

Es gibt einen Quarzoszillator mit 25 MHz, daraus werden über die Virtex5 
PLLs die 80 MHz und 250 MHz gemacht.

Tom

von Duke Scarring (Gast)


Lesenswert?

Kannst Du den MB nicht mit 83.333MHz oder 125 MHz takten? Das müßte auf 
dem V5 funktionieren und sollte das Timing an der Domänengrenze 
entspannen.

Bei 80/250 ist da nicht viel Luft dazwischen:

Thomas Reinemann schrieb:
> Source Clock:         PULSEMEM_BRAM_PORTA_BRAM_Clk rising at 87.500ns
> Destination Clock:    clk_250_0000MHz rising at 88.000ns

Duke

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Wegen dem bisschen Luft habe ich ja ein Constraint gesetzt. Ich finde es 
merkwürdig, dass der Fehler bei dem Hold-Timining auftritt.
So etwas hatte ich bisher noch nicht. Wirken sich Constraints nur auf 
das Setup-Timing aus?

Ich werde mal den MB mit 83.33 MHz laufen lassen.

Tom

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.