Forum: FPGA, VHDL & Co. eigenartige Warnung beim erstellen des Timing reports


von A. N. (netbandit)


Lesenswert?

Hallo ich habe folgenden VHDL Code:

architecture VERHALTEN of TEST is
signal Di : STD_LOGIC_VECTOR(7 downto 0);
begin

  process (CLK,RESET)
  begin
    if RESET = '0' then
      Di <= (others => '0');
    elsif CLK = '1' and CLK'event then
      Di <= not Di;
    end if;
  end process;

  O <= to_bitvector(std_logic_vector(Di));

end VERHALTEN;

Und wenn ich das Timing erstelle (generate Timing) bekomme ich zwei
Warnungen die ich mir nicht erklären kann:

WARNING:Cpld:310 - Cannot apply TIMESPEC TS1000 =
PERIOD:PERIOD_CLK:0.000 nS
WARNING:Cpld:2 - Cannot apply TIMESPEC AUTO_TS_F2F =

Wenn ich anstatt "Di <= not Di;" ersatzweise "Di <= Di + 1;"
einsetze bekomme ich keine Warnungen mehr.

Weiß jemand woher diese Warnungen kommen und was sie bedeuten? Im
Vorraus schonmal ein Danke :)

von FPGAküchle (Gast)


Lesenswert?

Hm, da man nicht viel weiss muß man qualifiziert raten.
Ich nehmen an, du baust einen CPLD und hast keine Timingxonstraints
angegeben
(.ucf file wäre hier hilfreich).

Ein timingconstraint besteht aus drei teilen:
(1) der Name des constraints
(2) Pfade(Netze) die constraint (eine Randbedingung erhalten) werden
(3) eine Grenze die die Signallaufzeit nicht verletzen darf (die
Randbedingung)

Die warning ("cannot apply ...") heisst :
 -(2) ist nicht gegeben also es gibt im Design keine Pfade die auf
dieses constraint passen (also es gibt keine Netze mit diesen Namen,
oder keine Netze zwischen diesen Primitiven).

Die angemeckerten constraints scheinen automatisch erzeugt, also hat
sich der Entwickler nicht überlegt, ob diese Pfade überhaupt in diesem
design vorkommen können.

Im Design mit der Warning schalten die FF jeden Takt um, sie toggeln.
Bei CPLD's wird daher die FF in den Toggle-mode konfiguriert. Die
Logik der Makrozelle und die switch matrix wird nicht genutzt.

Im zweiten Design ohne die Warnings werden die FF in jedem takt mit
einem neuen Wert geladen. Dieses Wert wird durch Kombinatorik
(NAND-Gatter etc)
gewonnen. heisst in diesem design ist sehr wohl die Makrocell Logik und
wahrscheinlich auch die switchmatrix genutzt. Die FF werden
wahrscheinlich im
Modus, D_FF mit Enable und synchronen Set/Reset genutzt. Also es gibt
etliche
genutzte Pfade mehr in dem Counterdesign.

Damit findet im zweiten design der timinganalyzer sehr wohl Pfade, auf
die die
Timingconstraints zutreffen und hat somit keinen grund die Warnung
"cannot apply ...) auszugeben.

Wahrscheinlich kannst du die warnings ignorieren, du hast nur mehr
constraints vorgegeben als (in disem design) überprüfbar sind.
Obwohl lieber ein constraint zuviel als zuwenig.

Du musst auf jeden fall überprüfen, was die angemeckerten constraints
bedeuten:
-sind sie automatisch generiert?
-welche Pfade werden durch die constraints geprüft?
-werden diese Pfade in deinem design genutzt?

von A. N. (netbandit)


Lesenswert?

Hi FPGA-Küchle,

danke erstmal für deine Antwort. Das müssen in der Tat alles
automatisch generierte Constraints sein, da ich selbst nicht daran
rumgeschraubt habe.
Also kann ich gut und gerne diese Warnungen ignorieren.
Leider gab es auf der Xilinxhomepage keine Treffer zu diesen Warnungen
und da ich mich mit Timing Constraints noch nciht beschäftigt hatte war
ich mir unsicher was diese Warnungen bedeuten und inwieweit sie mein
Design beeinflussen.

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.