Forum: FPGA, VHDL & Co. Binär zu BCD wandlung


von Stutz (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen, bin neu im VHDL programmieren.

Kann mir jemand bei diesem Problem helfen, ich wollte auf einer 
dreistelligen 7-Segment Anzeige eine Zahl ausgeben, welche in 
"STD_LOGIC_VECTOR (6 downto 0)" (binär) in diesen Schaltungsteil kommt. 
Mein Ziel ist es, sie über BCD an der Anzeige auszugeben.

Danke euch..

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hast du schon mal Google probiert?
http://www.google.com/search?q=Bin%C3%A4r+zu+BCD+wandlung+VHDL
Da ist sicher was dabei...

von Stutz (Gast)


Lesenswert?

sieht sehr kompliziert aus ... gibt es keine einfachere Lösung?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Stutz schrieb:
> sieht sehr kompliziert aus ...
Was denn?
> gibt es keine einfachere Lösung?
Einfacher als die Lösung mit der Tabelle im RAM geht es nicht.
http://www.lothar-miller.de/s9y/archives/33-Byte-nach-BCD.html

von bko (Gast)


Lesenswert?

Da fällt mir was auf, Das wird doch ein Latch oder?

>process(clock)
>begin
>  if clock = '1' then
>    counter <= counter + 1;

Besser so:
1
process(clock)
2
begin
3
  if rising_edge(clock) then
4
    counter <= counter + 1;
5
   ...

von Ilja Muromez (Gast)


Lesenswert?

>sieht sehr kompliziert aus ... gibt es keine einfachere Lösung?

Ich sag nur eins: der Double-Dabble Algorithmus, ist in C extrem einfach
umsetzbar und wahrscheinlich genauso einfach in VDHL (nur shift 
Operationen).

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Da fällt mir was auf, Das wird doch ein Latch oder?
>
>>process(clock)
>>begin
>>  if clock = '1' then
>>    counter <= counter + 1;
Schlimmer noch: das ist eine versteckte kombinatorische Schleife:
 http://www.lothar-miller.de/s9y/categories/36-Kombinatorische-Schleife
Und zudem ist die Simulation falsch, weil die Sensitivliste nicht 
vollständig ist:
http://www.lothar-miller.de/s9y/archives/16-Takt-im-Prozess.html

> Ich sag nur eins: der Double-Dabble Algorithmus
Das ist genau der shift-add-3 Algorithmus (aus meinem ersten Link), der 
als "zu kompliziert" bewertet wurde...
> nur shift Operationen
Von der Addition und dem Vergleich mal abgesehen....

von Stutz (Gast)


Lesenswert?

Vielen Dank euch allen!
Muss dieses Projekt leider schon morgen in der Schule abgeben.
Hat einer von euch Profis die Zeit mir das kurz in mein .vhd File zu 
implementieren?

von Stutz (Gast)


Lesenswert?

Danke euch !!!!

es funktioniert nun bestens!

von Schrei (Gast)


Lesenswert?

Stutz schrieb:
> Vielen Dank euch allen!
> Muss dieses Projekt leider schon morgen in der Schule abgeben.
> Hat einer von euch Profis die Zeit mir das kurz in mein .vhd File zu
> implementieren?

Leider hast du erst gestern von dem Projekt erfahren oder wie?
Hausaufgabe?

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
Noch kein Account? Hier anmelden.