Hallo VHDL-Experten Wie wandle ich einen 10 bit breiten signed Vektor so um, daß er z.B. bei einem Wert von -427 => +427 macht und bei einem Wert von +427, diesen auch beibehält? Habe einen Vektor: vektor_signed : signed(9 downto 0); Jetzt möchte ich so einen Vektor: vektor : std_logic_vector(9 downto 0); Kurz: Dieser soll jetzt einfach nur noch den Betrag von vektor_signed darstellen. Das Ganze soll auch synthesefähig sein. Am Einfachsten wäre es natürlich, auf's MSB zuschauen. Ist dort eine Null - dann ist 427 = 427. Ist dort eine Eins - dann muss man doch MSB-1 downto 0 invertieren und 1 addiren. Korrekt? Mäxi
Hallo Mäxi, was Du beschreibst ist eine Betrags-Funktion. Im Prinzip ist der Ansatz richtig, aber etwas umständlich. Einfacher wäre : vektor <= abs(vektor_signed); -> Fazit : Arbeit dem Synthesetool überlassen
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.