Forum: FPGA, VHDL & Co. Frage zur Warning Pack 2515


von Cihan K. (lazoboy61)


Lesenswert?

Hallo Leute,

ich habe mal wieder eine Frage, bekomme bei der Implementierung für 
einen INOUT Signal mit 16 Bits (15 downto 0) immer folgende Warnings:

WARNING:Pack:2515 - The LUT-1 inverter 
"u_CF_CONTROL_TFSM/dat_en_inv1_INV_0" failed to join the OLOGIC comp 
matched to output buffer "cf_dat_15_IOBUF/OBUFT".  This may result in 
suboptimal timing. The LUT-1 inverter 
u_CF_CONTROL_TFSM/dat_en_inv1_INV_0 drives multiple loads.

Der Fehler tretet genau 16 mal auf, also für jeden Bit des Vektors. Was 
kann der Fehler denn sein, den ich habe?

Das Programm lief vor einer Weile. Nun wollte ich es über den PLB Bus 
per Software (EDK) bedienen und kann es in XPS nicht implementieren.

Würde mich über jede Anregung sehr freuen.

MfG
Cihan

von Stachele (Gast)


Lesenswert?

Hast du die Logik bzw. die Tristate-Steuerung für den bidirektionalen 
Bus selber beschrieben? Zeig doch mal.

von Cihan K. (lazoboy61)


Lesenswert?

Ich habe folgendes drin:

Ausgabe (Output) habe ich so gemacht:
1
temp_xhdl11 <= datout_buf WHEN dat_en = '1' ELSE "ZZZZZZZZZZZZZZZZ";
2
cf_dat <= temp_xhdl11;
Eingabe (Input) habe ich so gemacht:
1
   PROCESS (CLK)
2
   BEGIN
3
      IF (CLK'EVENT AND CLK = '1') THEN
4
         cf_oe_n_del <= cf_oe_n_xhdl4;    
5
      END IF;
6
   END PROCESS;
7
8
   PROCESS (CLK, RST)
9
   BEGIN
10
      -- Clock Counter
11
      IF (RST = '1') THEN
12
         datin_latch <= "0000000000000000";    
13
      ELSIF (CLK'EVENT AND CLK = '1') THEN
14
--      IF (dat_en AND config_en) = '0' THEN
15
        IF ((NOT cf_oe_n_del AND cf_oe_n_xhdl4) = '1') THEN
16
          datin_latch(15 downto 8) <= cf_dat( 7 downto 0);
17
          datin_latch( 7 downto 0) <= cf_dat(15 downto 8);          
18
        END IF;
19
--      END IF;
20
    END IF;
21
   END PROCESS;
der IO ist für die Steuerung einer CF-Speicherkarte. Wie gesagt, dass 
Design lief ohne den PLB Bus perfekt. Nun spuckt mit der Mapper ebend 
die 16 Warnings für den cf_dat INOUT raus, sodass ich das Design in XPS 
nicht implementieren kann, er bricht nämlich den Durchlauf ab, wenn er 
die Warnings sieht (interpretiert sie vllt. als Error?!)

Cihan

von Cihan K. (lazoboy61)


Lesenswert?

Ich habe den Fehler gefunden. Ich wollte es mal direkt mit einem IOBUF 
oder OBUFT versuchen, wo ich dann sah, dass im Zustand EN = 1 der IO = Z 
ist.

Habe deswegen folgendes gemacht:
1
temp_xhdl11 <= datout_buf WHEN dat_en = '0' ELSE "ZZZZZZZZZZZZZZZZ";
2
cf_dat <= temp_xhdl11;
habe ebend die Bedingung geändert, dass wenn nun dat_en = 1 ist der IO 
auf Z geht. Nun sind die Fehler nicht mehr da.

Habe ich im Prinzip nun den IO falsh programmiert und warum kamen die 
Fehler nicht bei meinem laufenden Programm, der auch eigentlich ohne 
Fehler lief? Wie gesagt, die Warnings kamen wirklich erst dann, als ich 
die von mir erstelleten Komponenten mit dem Bus vereinen wollte.

Cihan

von Cihan K. (lazoboy61)


Lesenswert?

Ich habe nochmal mein altes Programm angeschaut, und siehe da, das 
dat_en Signal wird automatisch intern schon invertiert (habe es im FPGA 
Editor und in der Schematic berachtet). Die Invertierung wird auch im 
Programm mit dem PLB Bus gemacht, doch hier haute er mir die ganzen 
Warnings raus, obwohl es von der Schaltung (Schematic) her genau gleich 
aussah, evtl. ein BUG oder kann sich das jemand erklären?

Cihan

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.
Lade...