Gast
#6049218
Hay, Ich verzweifel grad an einer Aufgabe mit VHDL in Lattice Diamond. Und zwar möchte ich einen Addierer realisieren der zwei 3 Bit große Zweierkompliment zahlen miteinander addiert und das Ergebniss als 4 Bit Zweierkompliment ausgibt. Von der Grundüberlegung hab ich mir folgendes gedacht: Der Wertebereich für das Ergebniss liegt zwischen -8 und 6. Da ich keinen Plan hatte wie ich VHDL sag er soll mir zwei std_logic_vector im Zweierkompliment miteinander addieren hab ich die zwei Zweierkomplimente in Dezimalzahlen umgerechnet und das Ergebniss wird nun auch richtig berechnet. Jedoch scheitere ich grad an der Ausgabe meines Ergebniss durch eine Umwandlung mittels numeric_std in das Zweierkompliment Sprich mein Zwischenergebniss ist: zerg := Zahl1 + Zahl2; Und mein Ergebniss möchte ich ausgeben mittels: E <= std_logic_vector(to_signed(0-unsigned(zerg)),4); im Zweierkompliment. Jetzt krieg ich aber folgende zwei Errors: ERROR - Addierer.vhd(54,50-54,51) (VHDL-1154) near std_logic_vector ; type conversion expects one single argument ERROR - Addierer.vhd(12,1-58,27) (VHDL-1284) unit behavior ignored due to previous errors Beide müssen an der Zeile: E <= std_logic_vector(to_signed(0-unsigned(zerg)),4); Liegen da ohne diese keine Errors entstehen. Kann mir da wer sagen was ich falsch mach? Die Zeile soll ja eine Integer Variable im Zweierkompliment ausgeben.