Hallo ich möchte 2 Werte miteinander addieren bzw Subtrahieren. Das ist der Code dazu, ich weiß ich bin noch ein ziemlicher Anfänger in VHDL soll es aber jetzt im Rahmen meines Praktikums lernen...daher übung macht den Meister... LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.numeric_std.all; entity SDModulator is -- Ports Anlegen-- port ( dIn: in std_logic; dOutm: in std_logic; dOut: out std_logic_vector (1 downto 0) ); end SDModulator; architecture Modulator of SDModulator is signal A, B, C: signed (0 downto 0) ; begin A <= to_signed(dIn, 2); B <= to_signed (dOutm, 2); C <= A +B; dOut <= C; end Modulator; Als Fehlermeldung bekomme ich hier "No matching overload for to_signed" Danke schonmal für die Hilfe!
Florian Z. schrieb: Probiers mal nur mit einem Cast, nicht mit einer Conversion: > A <= signed(dIn, 2); > B <= signed (dOutm, 2); Und das passt natürlich nicht zusammen: > dOut <= C; Denn du hast hier unterschiedliche Vektorbreiten: > signal A, B, C: signed (0 downto 0) ; > dOut: out std_logic_vector (1 downto 0) Nimm für das Signal C mal besser signal C: signed (1 downto 0) ; Und zu guter Letzt mußt du das Ergebnis wieder auf std_logic zurückcasten: dOut <= std_logic_vector(C); Als Tipp zu Casts und Konvertierungen: http://www.lothar-miller.de/s9y/archives/14-Numeric_Std.html
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.