www.mikrocontroller.net

Forum: FPGA, VHDL & Co. seltsame meldung "Input <MeasOverStromSD> is never used"!?


Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo zusammen,

ich will mit dem code hier einen latch realisieren. Ich möchte damit 
machen, dass wenn (|MeasStrom| >  MeasOverStromSD) dann Output 
(OverStromSD_o = '1'), und FPGA muss reset werden, damit wieder Output 
(OverStromSD_o = '0')!

Aber Xilinx-ISE meldet "MeasStrom, Input <MeasOverStromSD> is never 
used" und sehe ich bei "RTL-schematic" :  OverStromSD_o = '1' (VCC) 
permanent!

Was habe ich falsch gemacht?

Vielen Dank im vorraus!

Tom

entity strom_ueberwach is
PORT
 (sys_clk         : IN STD_LOGIC;
  MeasStrom       : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
  MeasOverStromSD   : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
  OverStromSD_o     : OUT STD_LOGIC);

END strom_ueberwach;

architecture Behavioral of strom_ueberwach is

begin


      StromUeberWach_Pro: process
        begin
          wait until rising_edge(sys_clk);             
        --MeasOverStromSD:---------------------------------------------------------------------------
          if (((signed(MeasOverStromSD) < signed(MeasStrom)) OR 
            (-signed(MeasOverStromSD) > signed(MeasStrom)))) then          
              OverStromSD_o <= '1'; --latch! --> muss reset FPGA!
           end if;       
      end process StromUeberWach_Pro;
          
          
end Behavioral;






Autor: pinky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da du nirgends OverStromSD_o auf etwas anderes als 1 setzt optimiert das 
ISE den ganzen kode korrekterweise einfach weg und setzt OverStromSD_o 
konstant auf 1.

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

Bewertung
0 lesenswert
nicht lesenswert
tom schrieb:
> OverStromSD_o <= '1'; --latch! --> muss reset FPGA!
Du solltest das Signal auch mal auf '0' setzen...
So wie es jetzt aussieht, wird statt des Signals einf eine '1' erzeugt.

Probier mal, ob die Synthese das kapiert:
PORT
 (sys_clk         : IN STD_LOGIC;
  MeasStrom       : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
  MeasOverStromSD   : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
  OverStromSD_o     : OUT STD_LOGIC := '0');

Wenn nicht, solltest du ein Hilfsignal einführen und das mit '0' 
initialisieren:
architecture Behavioral of strom_ueberwach is
signal oc : std_logic :='0';  -- Defaultwert
begin
      process begin
          wait until rising_edge(sys_clk);             
          if (((signed(MeasOverStromSD) < signed(MeasStrom)) OR 
              (-signed(MeasOverStromSD) > signed(MeasStrom)))) then          
              oc <= '1';       --latch! --> muss reset FPGA! <<-- ist das eine gute Idee????
          end if;       
      end process;
          
      OverStromSD_o <= oc;
          
end Behavioral;


> ich will mit dem code hier einen latch realisieren.
Das ist übrigens kein Latch, sondern ein normales getaktetes Register.
Ein Latch sähe anders aus: es hätte keinen Takt...

Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen danke an beide!^^

Lothar Miller schrieb:
> Du solltest das Signal auch mal auf '0' setzen..

"overstrom" soll nicht auftreten, deswegen möchte ich FPGA zurückseten.

Lothar Miller schrieb:
> Wenn nicht, solltest du ein Hilfsignal einführen und das mit '0'
> initialisieren:

beide variante hat er akzeptiert!^^


Lothar Miller schrieb:
> Das ist übrigens kein Latch, sondern ein normales getaktetes Register.
> Ein Latch sähe anders aus: es hätte keinen Takt...

vielen dank!^^

ciao, schönen abend wünsche euch^^

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.