www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Library "use work.std_arith.all"


Autor: Jochen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich verwende im Anhang angehängten Code für ein FSK-Modem.
Beim Synthetisieren erhalte ich folgende fehlermeldung:

ERROR:HDLParsers:3014 - "C:/ISE_Projekte/Modem_prototyp/Modem.vhd" Line 
43. Library unit std_arith is not available in library work.

Mir ist klar, dass es an der fehlenden Library liegt.
Habe auch schon gelesen, dass sie veraltet, bzw. den allgemeinen 
Standards nicht mehr entspricht.

Habe einige Zeilen auskomentiert. Der Modulator läuft. ich vermute die 
Bibliothek wird vom Demodulator verwendet und dieser geht dann nicht.

Wie kann ich das Problem umgehen und den Code vollständig lauffähig 
machen?

Guß,
Jochen

Autor: Ottmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das std_arith package ist in der ieee lib zu finden und nicht in work.

Ändere also work in ieee beim use.

Autor: Ottmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es muss natürlich std_LOGIC_arith heißen.

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun kommt aber folgende Fehlermeldung:

ERROR:HDLParsers:3312 - "C:/ISE_Projekte/Modem_prototyp/Modem.vhd" Line 
89. Undefined symbol 'synthesis_off'.

(bei nicht kommentierter Zeile)

Gruß,
Jochen

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...ist dieser Fehler+ Lösung niemandem bekannt?

Gruß,
Jochen

Autor: Georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"synthesis_off" gibt es nicht.

Stattdessen:



process(clk)
begin
    if rising_edge(clk) then
        synth_test <= '1';

        --synthesis translate_off
        synth_test <= '0';
        --synthesis translate_on
    end if;
end process;


D.h. in der Simulation greift synth_test <= '0', in der Synthese 
synth_test <= '1'

Gruß, Georg

Autor: Jochen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
> "synthesis_off" gibt es nicht.

Wie meinst du das?
Ist Doch im Quellcode vorhanden.


Gruß,
Jochen

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...würde mich üner eine Antwort freuen.

Gruß,
Jochen

Autor: Georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... aber auskommentiert

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Georg schrieb:
> ... aber auskommentiert

Es ist eben nicht auskommentiert! Und so entsteht der Fehler!

Gruß,
Jochen

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...gibt es keinen der an dieser Stelle weiterhelfen kann?


Gruß,
Jochen

Autor: Kai (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jochen,

damit das SYNTHESIS_OFF wirken kann, muss es als Kommentar angegeben 
werden.

Es handelt sich dabei nicht um ein VHDL Schlüsselwort. Daher gibt es 
auch Fehlermeldungen wenn SYNTHESIS_OFF ohne Kommentarzeichen verwendet 
wird.

Dem Compiler während der Simulation ist dieser Kommentar total egal. Für 
ihn ist es ein richtiger Kommentar, der ignoriert wird.

Während der Synthese des VHDL Codes wird aber speziell nach dem 
--SYNTHESIS_OFF Kommentar gesucht und dann der VHDL Code bis zum 
nächsten --SYNTHESIS_ON ignoriert.

Gruß Kai

Autor: Jochen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
In meinem Quellcode gibt es kein "synthesis_on"

Würde es bedeuten, wenn ich den Code syntheisieren möchte, einfach die 
Zeile 88. "attribute synthesis_off of i_sum:signal is true;" 
auskommentieren und der Rest funktioniert?

Gruß,
Jochen

Autor: Kai (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jochen,

ich kann mir so auf den ersten Blick keinen Grund vorstellen, warum das 
Signal i_sum, das für die Berechnung des Filters benötigt wird, bei der 
Synthese des ganze Codes ausgeschlossen werden sollte.

Daher würde ich die ganze Zeile (mit dem attribute) einmal 
auskommentieren und schauen, was dabei rauskommt.

Gruß
Kai

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.