mikrocontroller.net

Forum: FPGA, VHDL & Co. Wie benutze conv_integer, in ModelSim ?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Patrick M. (Firma: na) (bitdiver)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

um VHDL zu lernen würde ich mit ModelSim gerne ein paar existierene 
packages ausprobieren, z.B. bit convertierung. Allerdings bekomme ich 
das nicht hin:
use synopsys.arithmetic.all;

Modelsim sagt:
# -- Loading package STANDARD
# ** Error: C:/fpga/other/hellow.vhd(1): (vcom-1136) Unknown identifier "synopsys".
# 
# ** Error: C:/fpga/other/hellow.vhd(3): VHDL Compiler exiting

Hatjemand einen Vorschlag wie es klappen könnte? Vielen Dank!

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Vielleicht fehlt vorher ein
library synopsys;
?

Besser ist es in solchen Fällen den ganzen Code zu zeigen, sonst gibt es 
hier nur Ratespiele.

Duke

von Patrick M. (Firma: na) (bitdiver)


Bewertung
0 lesenswert
nicht lesenswert
Danke das war schonmal die Lösung zu meinem Problem. Allerdings bekomme 
ich den Wert noch nicht dargestellt mir "report".

Der gesamte Code gerade ist:
library synopsys;
library IEEE;
library std;

use IEEE.numeric_std.all;
use synopsys.arithmetic.all;
use std.textio.all;

entity hellow is
end entity;
 


architecture sim of hellow is
begin 
    process is
         variable val : integer; 

    begin

        report "Hello World!";
  val := conv_integer(21);
        report to_string(val);
        -- report conv_std_logic_vector(5, 6);

        wait;
 
    end process;
 
end architecture;

Der output gibt nun:
# Model Technology ModelSim PE Student Edition vcom 10.4a Compiler 2015.03 Apr  7 2015
# Start time: 11:42:58 on Jan 23,2020
# vcom -reportprogress 300 -work work -2002 -explicit -O0 C:/fpga/other/hellow.vhd 
# -- Loading package STANDARD
# -- Loading package TEXTIO
# -- Loading package std_logic_1164
# -- Loading package NUMERIC_STD
# -- Loading package ATTRIBUTES
# -- Loading package TYPES
# -- Loading package arithmetic
# -- Compiling entity hellow
# -- Compiling architecture sim of hellow
# ** Error: C:/fpga/other/hellow.vhd(24): (vcom-1136) Unknown identifier "to_string".
# 
# ** Error: C:/fpga/other/hellow.vhd(31): VHDL Compiler exiting
# End time: 11:42:58 on Jan 23,2020, Elapsed time: 0:00:00
# Errors: 2, Warnings: 0
# C:/Modeltech_pe_edu_10.4a/win32pe_edu/vcom failed.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Patrick M. schrieb:
> Der output gibt nun:
> vcom ... -2002 ...
>... Unknown identifier "to_string".
Ggfs. musst du den Simulator einfach nur auf VHDL 2008 umstellen. Ab 
dann geht auch to_string()...

>   val := conv_integer(21);
Ähem, val ist ein integer und 21 auch. Wozu noch konvertieren?

> use IEEE.numeric_std.all;
> use synopsys.arithmetic.all;
Never ever both together!
Sonst passiert dir ggfs. auch mal sowas wie im 
Beitrag "Error: Identifier "unsigned" is not directly visible."
Mein Tipp: nimm für Casts und Konvertierungen die numeric_std(). Die 
kann alles, was du brauchst.

BTW: wo hast du denn überhaupt die synopsys.arithmetic her?
Die hab ich ja noch nie gesehen...

: Bearbeitet durch Moderator
von Martin S. (strubi)


Bewertung
1 lesenswert
nicht lesenswert
Moin,

Edit: Gerade obsolet geworden (dank Lothar):
wenn to_string nicht geht: hast du die VHDL08-Optionen an?
Nur so als Tip: Ich wuerde nicht numeric_std und synopsys-libs mischen.
Das hat in der Vergangenheit schon einiges an Verwirrung verursacht, bis 
zu fatalen Auswirkungen aufs Richtig-Rechnen, je nach Simulator.

Was ich sonst noch zum Anfangen und Einarbeiten in die Standards 
empfehlen kann, ist der GHDL-Simulator. Wo ModelSim teils die 
verstuemmelten 'Standards' der Hersteller frisst, ist GHDL eher streng. 
Kann Vorteile haben.

: Bearbeitet durch User
von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Auch ohne VHDL-2008 sollte
report integer'image(val);
funktionieren.

Duke

von Patrick M. (Firma: na) (bitdiver)


Bewertung
0 lesenswert
nicht lesenswert
Danke für euer Feedback.
In der Tat, ghdl scheint für meine Lernzwecke auch sehr sinnvoll, z.B.:

https://ghdl.readthedocs.io/en/latest/examples/quick_start/hello/README.html

Die Synposys lib ist beim Download der ModelSim Student Edition dabei. 
Allerdings nicht ganz klar ob/wie vhdl2008 gesetzt wird um to_string zu 
benutzen. Mal schauen, es geht ja auch mit den anderen Konstrukten.

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.

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