mikrocontroller.net

Forum: FPGA, VHDL & Co. Einstellung zu Xilinx ISE gesucht


Autor: Charakterlos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen allerseits,

ich habe ein kleines Problem!

ISE schmeißt beim "advanced Synthesize" Schritt Latche raus, weil ein 
Signal seinen Zustand nicht ändert.

======================================================================== 
=
*                       Advanced HDL Synthesis 
*
======================================================================== 
=
WARNING:Xst:1293 - FF/Latch <pwon_data_2> has a constant value of 0 in 
block <TOPDisplay>. This FF/Latch will be trimmed during the 
optimization process.
WARNING:Xst:1896 - Due to other FF/Latch trimming, FF/Latch 
<pwon_data_3> has a constant value of 0 in block <TOPDisplay>. This 
FF/Latch will be trimmed during the optimization process.
INFO:Xst:2261 - The FF/Latch <pwon_data_1> in Unit <TOPDisplay> is 
equivalent to the following FF/Latch, which will be removed : 
<display_enable>
======================================================================== 
=

Ich benötige das pwon_data<2:1> Signal im weiteren Projektverlauf, und 
jetzt zum Testen einer Initialisierung. Während der Initialisierung 
ändert sich das Signal halt nicht, brauche es aber trotzdem.
Wie kann man ISE sagen, dass es an dieser Stelle nicht optimieren soll ?

Danke im Vorraus :)
Gruß Charakterlos

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ISE schmeißt beim "advanced Synthesize" Schritt Latche raus, weil ein
> Signal seinen Zustand nicht ändert.
Klar, macht Sinn, wozu auch weiter durchfüttern?

> Wie kann man ISE sagen, dass es an dieser Stelle nicht optimieren soll ?
Sorg dafür, dass es nicht wegoptimiert werden kann. Dazu mußt du ein 
Flip-Flop erzeugen, und dem Reset-Zweig den invertierten Pegel als 
Defaultwert geben.
Xilinx macht sowas im PCI-IP-Core Interface:
    if RST = '1' then 
      COMPLETE <= '0';
      M_WRDN   <= '1';
      :
    elsif (CLK'event and CLK='1') then 
      -- ordnungsgemaesses Abschalten der Initiator-Funktionen
      COMPLETE <= '1';
      M_WRDN   <= '0';
      :
    end if;
Es reicht aber auch aus, "nur" den inversen Defaultwert vorzugeben:
  signal doint : std_logic := '0'; -- invertierter Defaultwert
  :
  :
  process (clk) begin
    if rising_edge(clk) then
      doint <='1';                -- Defaultwert
    end if;
  end process;
Aber i.A. ist das nur nötig, wenn du aus Geschwindigkeitsgründen ein FF 
willst/brauchst.

Autor: Charakterlos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Lothar!

Ich habe jetzt nicht extra ein flipflop aufgebaut, sondern einfach das 
signal genommen, ein not dahinter geklemmt und an 'ne LED ausgegeben.

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, du hast da noch einen Denkfehler: Nicht das komplette Signal 
wird entfernt, sondern nur das FF, das es speichert. Stattdessen wird 
einfach überall wo du dieses Signal verwendest direkt der zugehörige 
Wert angelegt.

Autor: Charakterlos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Jan!

Das habe ich mittlerweile auch herausgefunden.
Es is ja auch logisch, wenn sich das Signal als solches nicht ändert, 
dann kann man den vorgegebenen Anfangswert des Signals auch direkt 
durchschleifen.

(mit Anfangswert meine ich die Signaldeklarierung in der architekture:)
signal pwon_data : std_logic_vector(3 downto 0) := x"0";

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.