Gast
#417906
Ich mache gerade DA in einer Firma für Digital Design und habe ein Problem mit VHDL: Ich will 4 Zahlen addieren, komme aber nicht auf das Ergebnis: result <= std_logic_vestor(signed(a)+ signed(b) + .... c + d); Alle (a,b,c,d) haben 16 bit+signum, also (16 downto 0), doch das Ergebnis ist angeblich auch nur 17 Bit, obwohl die Werte den vollen Bereich überdecken! Wenn ich "result" als 18 downto 0 deklariere, geht es von der Synthese nicht. Bleibe ich bei 16..0 - dann läuft das Ergebnis unter! Bei anderen Additionen hänge ich vor den ersten Term immer eine Null davor, um die Conversion zu zwingen, ein Bit mehr zu reservieren: result <= std_logic_vestor(unsigned("00" & a)+ signed(b) + .... c + d); Hier geht das natürlich nicht, wegen "siged". ?