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 :)
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.