synthetisieren. Jetzt mit VIVADO bekomme ich Meldungen dass / und *
nicht definiert seien?!
[Synth 8-944] 0 definitions of operator "/" match here
["D:/vhdl/nexys4_xadc/nexys4_xadc.srcs/sources_1/siggen.vhd":27]
[Synth 8-944] 0 definitions of operator "*" match here
["D:/vhdl/nexys4_xadc/nexys4_xadc.srcs/sources_1/siggen.vhd":27]
Ich verwende
library ieee;
use ieee.std_logic_1164.all;
use IEEE.numeric_std.all;
use ieee.math_real.all;
Habt ihr eine Idee wo das Problem ist?
Danke!
Gustl B. schrieb:> Habt ihr eine Idee wo das Problem ist?
Was sagt der Simulator?
Poste doch einfach mal die gesamte Datei...
> Jetzt mit VIVADO bekomme ich Meldungen
Sind das Folgefehler? Kommt da noch irgendwas vorher?
> dass / und * nicht definiert seien?!
Das kann eigentlich nicht sein, denn real und die Grundrechenarten
gehören zum Standardumfang von VHDL, das geht sogar ganz ohne
Bibliotheken...
Also bei mir geht obiger Konstrukt auch in der ISE nicht!
Es kommt:
1
found '0' definitions of operator "+", cannot determine exact overloaded matching definition for "+"
Das lese ich so, dass das "+" jeweils in der numeric und in der real
vorkommt. Eine der beiden weglassen, hat jeweils nichts gebracht.
Ich würde dazu tendieren, anzunehmen, dass man die numeric weglassen
kann, weil das Wesentliche in der real drin sein könnte / müsste. Bin
aber nicht sicher. Tut man das, fehlen Definitionen für die Vektoren,
die man sich aus woanders herziehen müsste. Ist mir aber nicht gelungen.
Lösung??
FPGA-Ingenieur schrieb im Beitrag #4348034:
> Also bei mir geht obiger Konstrukt auch in der ISE nicht!
Es fehlt ja auch sonst noch was...
Die Basis zur obigen Beschreibung ist dort zu finden:
http://www.lothar-miller.de/s9y/archives/37-DDFS-mit-BROM.html
Und da geht es noch... ;-)
Ich würde mir mal gern die gesamte Beschreibung ansehen.
Hm ... keine Ahnung was flasch war, Testbench lief natürlich auch nicht
also hab ich mal ein Minimalbeispiel aufgemacht und das funktioniert
prima. Edit: Aber wenn ich das in mein erweitertes Signalgeneratormodul
einbaue gibt es wieder diese Fehler. Also zuerst das funktionierende
Minimalbeispiel, dann die Testbench dazu und danach das was nicht
funktioniert.
Der Sinusgenerator als Minimalbeispiel. (1024 Punkte je 10 Bit):
Vielleicht muss man die Zahlen casten um dem Compiler klarzumachen,was
es ist und ihn zu veranlassen, auf die richtige LIB zuzugreifen.
Wäre es alternativ eine Option den Sinusgenerator in ein eigenes Packaga
zu schieben, um dort (und nur dort) die Lib zu verwenden, die stört?
Ich lese gespannt mit, doch nun verliere ich die Orientierung.
Lothar M. schrieb:> Für alle die noch nach der 2. Definition suchen: das ist die Funktion> sin() in der real-Lib.
Das ist die Funktion.
Lattice User schrieb:> signal sin: unsigned(9 downto 0) := (others => '0');
Das ist die Variable.
Wo ist da das Problem?
Der gleiche Name, oder was?
Vielen Dank! Es war tatsächlich der Name, ok hätte ich drauf kommen
können aber was soll diese beknackte Fehlermeldung bezüglich / und *?
Naja es funktioniert :-)
Gustl B. schrieb:> Vielen Dank! Es war tatsächlich der Name, ok hätte ich drauf kommen> können aber was soll diese beknackte Fehlermeldung bezüglich / und *?>
Es gibt keine Definition von / und * die "unsigned * real" abdeckt. Und
sin ist wegen der Signaldedeklaration an der Stelle als unsigned
definiert.
Die Fehlermeldung ist also völlig korrekt.