-
Thread
Unterschied zwischen cast und convert bei VHDL Datentypen?
gibt es zwei Möglichkeiten: 1. Die aktuelle Interpretation aufheben, also in ein Array an Bits umwandeln und dann neu interpretieren: signed(std_logic_vector(zahl)) 2. In eine Integer konvertieren und dann wieder zurückkonvertieren: to_signed(to_integer(zahl),4) Integer ist aber kein Array.
Werte x, u, h, l, 0, 1, z, -, w und nicht alle Kombinationen lassen sich sinnvoll in eine Zahl umwandeln. Ein besseres ist https://www.doulos.com/media/1486/numeric_std_conversions.gif Std-logic kam übrigens erst später zu VHDL dazu und ist einfach ein Package mit einem Enum mit diesen 9 Werten
-
Thread
Gray Code und Zweierkomplement Addition
Ich habe eine Zahl im Gray Code welche Ich umwandeln würde und dann eine Zahl im Zweierkomplement. Ist es schlauer beide mit dem Datentyp signed zu rechnen oder eher wenn Ich es in unsigned rechne oder was würdet ihr empfehlen ? Danke für die
alten/ "y". BTW, als Stichwort für die Suche mit Google: was du machen willst, ist eine Binär-nach-BCD Umwandlung. Sieh dazu mal den https://www.mikrocontroller.net/topic/436619 und die Links darin an...
-
Thread
10bit Wert => 4x 7 Segment
umrechnen lassen und damit habe ich meinen Eingang > der CASE Abfrage. Auf gut deutsch also in eine BCD-Darstellung umwandeln. Und das für eine schnarchlangsame Anzeige fürs Auge? Da wäre mir ein ROM zu teuer. Mit dem Shift-Add-3 Verfahren geht das ressourcenschonender... Siehe dort: http://www.lothar-miller.de/s9y/archives/34-Vektor-nach-BCD.html http://www.lothar-miller.de/s9y/categories/44-BCD-Umwandlung
-
Thread
std_logic_vector to integer
was das für Speicherwerte sind und was du mit dem counter vorhast. Evtl. kann man die Speicherwerte BCD-kodiert ablegen, dann hast du die Einer-/Zehnerdezimalstelle (oder man macht die BCD-Konvertierung beim lesen). Oder falls die Eingangswerte irgendeine Logik haben, das irgendwie geschickt auf den Speicher
output <= to_integer(unsigned(cnt)); Warum musst du eigentlich einen /Zähler/ in einen Integer umwandeln? Üblich ist es, mit dem Integer zu /zählen/ und dann als Port einen std_logic_vector zu nehmen...
-
Thread
Messwertkonvertierung, Rechnen in VHDL
dem was du machen willst. So. Genug der Theorie: du willst eine Binärzahl in Dezimalstellen umwandeln. Dein Stichwort ist BCD-Umwandlung. Sieh dir mal an, wie ich das mache und überlege dir, warum ich das so mache: http://www.lothar-miller.de/s9y/categories/44-BCD-Umwandlung
schrieb im Beitrag #3954686: > So. Genug der Theorie: du willst eine Binärzahl in Dezimalstellen > umwandeln. Dein Stichwort ist BCD-Umwandlung. Sieh dir mal an, wie ich > das mache und überlege dir, warum ich das so mache: > http://www.lothar-miller.de/s9y/categories/44-BCD-Umwandlung Vielen Dank
-
Thread
Rechnung in VHDL
/s9y/categories/44-BCD-Umwandlung ich habs mir auch so gedacht aber wenn ich BCD verwerde dann kommen andere werte -___-
schrieb im Beitrag #3656481: > siehe Anhang. Du kannst einen 20 Bit Binärwert nicht in einem 20 Bit BCD Vektor unterbringen. Ausserdem musst du dir den BCD-Vektor hinterher natürlich als Hex-Wert /anzeigen/ lassen. Das ist Anfängermathematik mit Zahlensystemen...
-
Thread
Integerzahl stellen abschneiden
als BCD zählen?
der Zahl aber dann jedoch was abziehen .. dann muss ich die andere zahl, die abgezogen wird auch in BCD umrechnen oder? bzw BCD wieder in einen Bitvector, Integer oder sonstwas umwandeln... und das ist recht kompliziert oder?
-
Thread
STD_LOGIC_VECTOR --> 7 SEGMENT DISPLAY
realisiert werden? Du musst erst mal dein 12-Bit Vektor (0...1023) in die einzenlen Dezimalstellen umwandeln. Dafür bietet sich ein Binär-nach-BCD Wandler an. http://www.lothar-miller.de/s9y/archives/34-Vektor-nach-BCD.html http://www.lothar-miller.de/s9y/categories/44-BCD-Umwandlung > Benötige ich
Design. Im folgenden erläutere ich kurz, wie ich es mir gedacht habe. Ich lese erst mit LM Vector2BCD Algorithmus den 12 Bit Vektor ein und extrahiere mir die 4 * 4 Bit BCD Werte. Portmaping der Komponente Vector2BCD [vhdl] Comp_BCD : Vector2BCD port map ( clk => clk, vector
-
Thread
integer in ascii-bit_vector wandeln
kurz zusammen: Du willst (wie zigtausend andere vor dir) eine Zahl in eine ASCII-Zeichenkette umwandeln. Das geht dann i.A. über einenkleinen Umweg: Integerzahl (oder ein Vektor, der eine Zahl darstellt) --> BCD --> ASCII http://www.lothar-miller.de/s9y/archives/34-Vektor-nach-BCD.html Und wenn du dann die BCD-Werte zwischen 0..9 erzeugt hast, mußt du nur eine ASCII-'0' dazuaddieren. Für Extreme gibts die Lösung auch kombinatorisch: http://www.lothar-miller.de/s9y/archives/67-Vektor-nach-BCD-kombinatorisch.html
-
Thread
Umwandlung 16-Bit-Vektor nach 8-Bit-Vektor??
anzeigen. Dazu habe ich Uart im FPGA eingebaut (Code von Lothar Miller). Ich will jetzt nicht Vektor->BCD->ASCII Umwandlung machen. Es geht nur darum, den 16-Bit-Vektor ungefähr zu sehen, zur Kontrolle. Dazu würde ich den Vektor in ein 8-Bit-Vektor (also Byte) umwandeln und das Byte als Zeichen über ser
-
Thread
VHDL Rechner
und die Zahl nur für die Anzeige umwandeln... Warum willst du es unbedingt im BCD-Code machen? BTW: der Code ist nicht als gutes Beispiel brauchbar... Sowas macht man nicht: zahl1 <= "00000000000000000"; Und die dreiseitige PS
ja aber is so ein BCD-Dual und Dual-BCD Code Wandler nich sehr aufwendig? Und da die Daten von der Tastatur so kommen und auch wieder als bcd ausgegeben werden isses da nich praktischer so zu rechnen?
-
Thread
[VHDL] unsigned to bit_vector
Qout1)); [/vhdl] Aber das gibt eine Fehlermeldung [quote] Error 10621: VHDL Use Clause error at bcd_counter.vhd(10): more than one Use Clause imports a declaration of simple name "unsigned" -- none of the declarations are dircetly visible Error 10784: HDL error at numeric_std.vhd(65): see declaration
numeric_bit.vhd(62): another match for "unsigned" [/quote] Ich find nichts wie ich den Typ trotzdem umwandeln soll ... ich nutze unsigned um den Zahlenwert in einem Counter zu inkrementieren. Grüße
-
Thread
8bit binär => 3 mal 4bit bcd
Hallo alle zusammen, ich würde gerne einen 8 Bit Binärcode in einen aus 3 mal 4 Bit bestehenden BCD Code umwandeln, und das möglichst einfach, ich verwende dafür die Software XILINX (VHDL). Wie es dazu kommt? Ich habe mir seit längerem ein SPARTAN 3 Starter Kit gekauft und möchte nun ein paar kleine Programme schreiben, die ich dann natürlich anschließend mittels der BCD Anzeige anzeigen lassen möchte. Mein momentanes Problem ist, das ich es einfach nicht schaffe einen guten Weg zum Umwandeln zu finden. Ich habe mir schon etwas sehr einfaches überlegt, das jedoch nicht
-
Thread
binär in bcd(teile)
Rundschreiben? :-/ > es kommt die Zahl 213 nun sollte eine Zahl 2 sein eine 1 und eine 3 Binär nach BCD wandeln: http://www.lothar-miller.de/s9y/categories/44-BCD-Umwandlung
/ können sollte. gibt es nicht eine einfachere möglichkeit, wie z.b. den binär code in dezimal umwandeln und die zahl zu teilen.
-
Thread
bit in vectore umwandeln
Du willst die Zahlen 0..63 im Vektor (5 downto 0) in zwei BCD-Zahlen umrechnen. Das geht /nicht/ mit einem Mux. Hier habe ich Lösungen für die Aufgabe: http://www.lothar-miller.de/s9y/archives/33-Byte-nach-BCD.html Das ist zwar für einen 8-Bit Vektor, aber
zuerst danke miller ich will binär in hexa umwandeln zb 11111 ist 1F hexa 01010 ist 1A hexa mit deinem decoder kann ich ZB 11111 umwandeln ;die 1111 in enem F umwandeln Und 1 bleibt 01010 ,1010 in A und 0 bleibt mux brauche ich nicht um zu
-
Thread
std_logic_vector zu ASCII wandeln
zuletzt im http://www.mikrocontroller.net/topic/148422 Wenn du dann die drei Dezimalstellen in BCD-Darstellung hast, dann stellt du dir die Frage: wie komme ich von binär 00000000 (=0) nach 00110000 (=ASCII-Null)? Hier eine Tabelle zum Thema: dez binär ASCII-binär 0 00000000 00110000
halt gucken ... was schon dazu geschrieben wurde: https://www.mikrocontroller.net/search?query=bcd+umwandeln&forums[]=9&sort_by_date=1 > also brauchst du im worst case ca 100 durchläufe ... Es geht schneller: https://www.mikrocontroller.net/topic/268503
-
Thread
Festkomma-Arithmetik für Cyclone 2
brauchst du ja nur Makros, die "normale" Bruchzahlem ala 1,234 in entsprechende Festkommazahlen umwandeln (bei gegebenem Datenformat /Bitbreite). >@Falk So hab ich das auch verstanden. Das Problem, was ich aber immer >noch hab, ist, dass ich zwei Inputs vom Typ std_logic_vector habe >(variable Längen
solltes einfach mit 2 >getrennenten Werten für Vorkomma und Nachkomma arbeiten. Das wäre dann quasi BCD. Dann kannst du aber sämtliche Arithmetische Operationen per Hand machen. MFG Falk
-
Thread
VHDL Integer Counter
if-Schleife machen. Wenn die Anforderungen anden Zähler aber wachsen und man z.B. einen ladbaren Up-Down-BCD-Zähler mit Set und Reset haben will, hat man irgendwann soviele if-Schleifen, dass es vielleicht den beliebten "bad decription error" gibt. Dann ist das Problem sehr einfach mit einer case-Anweisung
HCounter und VCounter des VHDL's. Ich wüsste jetzt nicht wie man diese in Variablen statt Signale umwandeln könnte, zumindestens meckert Xilinx's WEBPack wenn ich dies versuche. Aus "Sicherheitsgründen" habe ich mich nun doch für normale std_logic_vector für die Zähler entschieden. Achso, nicht lachen