additionsproblem

Gast #1004778
Lesenswert?
• ▲
▼
HILE!

Ich will 2 std_logic_vector (7 downto 0) addieren. (datas_o ist 8 downto 
0).

Da ich die nicht einfach addieren kann mache ich:

datas_o <= std_logic_vector(unsigned(data0_i) + unsigned(data1_i));

ich brauche aber einen Überlauf (alles was größer als FF ist).

Wenn ich einen Vektor mit "0" & data0_i erweitere verfälscht es meinen 
Wert.

Was kann ich machen?????

D A N K E ! ! !
Gast #1004922
Lesenswert?
• ▲
▼
> Wenn ich einen Vektor mit "0" & data0_i erweitere
> verfälscht es meinen Wert.
Wenn data0_i vorzeichenlos ist, müsste das doch gehen.
Inwiefern wird dein Wert verfälscht?
Welche Libs verwendest du?
Mit der Numeric_Std gehts so:

Danke für die rasche Antwort.

So hab ich es eigentlich versucht. Ich überprüfe das Ergebnis dann mit
if bzw. ifels und da kommt immer was falsches raus. Mir fällt aber 
gerade ein, dass ich nur mit 8Bit im IF vergleiche. Kann das der Fehler 
sein?
Gast #1004938
Lesenswert?
• ▲
▼
Also das, was Du geschrieben hast:

datas_o <= std_logic_vector(unsigned(data0_i) + unsigned(data1_i));

dürfte nicht funktionieren, da Du zwei 7-Bit unsigned addierst und es 
kommt auch ein 7-Bit unsigned raus. Du musst so machen, wie Lothar 
schrieb: erst erweitern auf 8 Bit und dann addieren. Dann ist Dein 
Überlauf in data_o(8). Was willst Du da mit IF's vergleichen? Verstehe 
ich nciht.

Grüße,
Kest
Moderator (Firma: Titel) Persönliche Seite #1004976
Lesenswert?
• ▲
▼
> Das Programm soll so zerfleddert sein, ist vorgabe.
Mann, das ist so gut wie eine Verschlüsselung,
der beste Kopier- und Kapierschutz... ;-)

> Mir fällt aber gerade ein, dass ich nur mit 8Bit im IF vergleiche.
> Kann das der Fehler sein?
Erweitere die Abfrage mal nach 9 Bits. Das hilft.
1
  :
2
 if    datas_i <= '0'&X"10" then lvl0_o <= '1'; --da nach erfüllung einer Bedingung 
3
 elsif datas_i <= '0'&X"1B" then lvl1_o <= '1'; --die IF Schleife verlassen wird
4
 elsif datas_i <= '0'&X"43" then lvl2_o <= '1'; -- kann die Abfrage so erfolgen.
5
  :
6
  :

BTW: Lass doch was hören, wenns geklappt hat ;-)
Gast #1005014
Lesenswert?
• ▲
▼
DU BIST GENIAL!!!

JA, jetzt funktioniert es. Die Erweiterung bei den IF Abfragen hat 
gefehlt.

Ich glaube ich stehe tief in Deiner Schuld.

Das beste daran, ich hab´s verstanden.

SUPER HILFE

LG
Gabriel

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren