mikrocontroller.net

Forum: FPGA, VHDL & Co. Bit mit dauer Value '0' soll nicht weg optimiert werden (ISE)


Autor: Stefan K. (stefan82)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
doch auch mal wieder ne Anfänger VHDL Frage ...
habe ein bit in einem Datenwort welches immer 0 sein wird ... will das 
aber nicht weg optimiert haben, da ich dann zwei vollständige Bytes habe 
die ich leicht ohne andere Module umbauen zu müssen weiter verarbeiten 
kann ... aber ISE sagt mir immer
xx has a constant value of 0 this FF will be trimmed during the optimization process.

Kann man der ISE irgendwie mitteilen, das bestimmte Signale nicht 
optimiert werden sollen?

Gruß

Stefan

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Stefan K. (stefan82)

>Kann man der ISE irgendwie mitteilen, das bestimmte Signale nicht
>optimiert werden sollen?

Wozu? In 99% der Fälle ist dies Optimierung absolut OK und bringt nur 
Vorteile. Deine Module arbeiten trotzdem genauso.

MFG
Falk

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie Falk schon sagte, was soll das bringen? ISE stellt einfach fest das 
das bit sich nie ändert und deshalb das Speicherelement für dieses 
nicht erzeugt wird sondern alle Signale die daran hängen auf konstant 0 
gesezt werden. Wenn du an das Signal wiederum eine andere Komponente 
anschließt ligt dort trozdem eine '0' an.

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

Bewertung
0 lesenswert
nicht lesenswert
> will das aber nicht weg optimiert haben
Ich frage mich auch, wozu.
Wenn das da bleiben muß, damit irgendwelche constraints eingehalten 
werden (wenn das Signal wegoptimiert ist und damit fehlt, können die 
nicht eingehalten werden :-o), dann bleibt dir nur der Weg, wie Xilinx 
es z.B. beim PCI-Core macht: Das Ding muß in ein Register.
signal nichtwegoptimieren : std_logic_vector(7 downto 0);
:
process (clk, reset) begin
   if (reset='1') then
      nichtwegoptimieren <= x"AA";
   elsif rising_edge(clk) then
      nichtwegoptimieren <= x"55";
   end if;
end process;

Autor: Jens B. (sio2)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ist somit

architecture Behavioral of pwm_sub is
signal value: std_logic_vector (15 downto 0) :="0000000000000100";
signal oc_sig : std_logic :='0';
begin
  process (clock_in)
    begin
      if rising_edge (clock_in) then
        if (value=0) then
          oc_sig <='1';
        end if;
        if (value = counter_in) then
          oc_sig <= '0';
        end if;
      end if;

  end process;
  oc <= oc_sig;
end Behavioral;

korrekt? Ich bekomme nämlich die Meldung
" FF/Latch <oc_sig> has a constant value of 0 in block <pwm1>. This 
FF/Latch will be trimmed during the optimization process."
und weis nicht wie ich die Warnung wegbekomme.

Autor: Gustav (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Signal "value" bekommt nirgends einen neuen Wert zugewiesen, kann 
daher nie 0 sein und daher bleibt oc_sig auf 0.

Autor: Jens B. (sio2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
argh Danke.

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.