Forum: FPGA, VHDL & Co. Dividiererschaltungssynthese


von Leon (Gast)


Lesenswert?

Hallo,

wir müssen für die Schule eine Präsentation machen, in der wir die 
Schaltungssynthese für den Dividierer machen sollen.

Kann mir jemand Beispiele nennen? (Wahrheitstabelle, Schaltung)

Vielen Dank im Voraus!

: Verschoben durch Admin
von Udo K. (Gast)


Lesenswert?

Google kaputt?

von Leon (Gast)


Lesenswert?

Hallo,
leider findet man im Internet nicht viel...

von Udo K. (Gast)


Lesenswert?


von Hakim (Gast)


Lesenswert?

Es findet sich immer einer, der die Hausaufgaben für die faulen Schüler 
macht.

von Lern Instructor (Gast)


Lesenswert?

Hakim schrieb:
> Es findet sich immer einer, der die Hausaufgaben für die faulen Schüler
> macht.

Ach Gott, als ob in der Schule Digitaltechnik gelehrt würde.

Das ist Hochschule und da macht niemand seine Hausaufgaben selbst 
sondern kopiert aus Lehrbüchern oder kauft die Lösung von einem 
Ghost-Kommilitonen. So funktioniert das degenerierte 21 Jhrh. - die Zeit 
der Dichter und Denker war vorher.

von Dergute W. (derguteweka)


Lesenswert?

Leon schrieb:
> für den Dividierer

Ja, aehhh - also fuer den Dividierer. Hm, ja welchen denn?
Nachdem's in der Unterabteilung fuer Analoge Elektronik und Gedoens 
gelandet ist, wuerd' ich mal sagen: Da stell' mer uns mal janz domm und 
nehmen einfach mal einen Spannungsteiler her - Teilen ist ja sowas wie 
dividieren, und schon haben wir den Spannungsdividierer. Oder man 
koennte auch Stroeme aufteilen, dann haette man einen Stromdividierer, 
etc. bla.

Gruss
WK

von Yalu X. (yalu) (Moderator)


Lesenswert?

Ein einfacher Dividierer ist folgendermaßen aufgebaut:

1
Eingänge     Dividierer     Ausgänge
2
3
Dividend → o————————————o → Quotient
4
Divisor  → o————————————o → Gültig

"Dividend" und "Divisor" sind ganzzahlige Binärzahlen im Bereich von
0..1. "Quotient" ist das Ergebnis der Division als Binärzahl, "Gültig"
ist 1, wenn die Division fehlerfrei durchgeführt werden kann, und 0,
wenn versucht wird, durch null zu dividieren.

Vielleicht reicht das ja schon als Lösung der Aufgabe.

Wenn nicht: Ein Dividierer für 4-Bit-Dividenden sieht folgendermaßen
aus:

1
Eingänge           Dividierer     Ausgänge
2
3
Dividend Bit 0 → o————————————o → Quotient Bit 0
4
Dividend Bit 1 → o————————————o → Quotient Bit 1
5
Dividend Bit 2 → o————————————o → Quotient Bit 2
6
Dividend Bit 3 → o————————————o → Quotient Bit 3
7
Divisor        → o————————————o → Gültig

Damit wird der Wertebereich für den Dividenden auf 0..15 erweitert.

Scherz beiseite: Es ist doch sicher vorgegeben, von welchem Typ der
Dividierer (analog oder digital) sein soll und welches die Wertebereiche
für Dividend und Divisor sind. Abhängig davon kann die Aufgabe sehr
leicht (s.o.) oder deutlich schwerer sein.

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


Lesenswert?

Im Beitrag "Re: mod Operation" 
gibt's auch noch Impulse.

Und der Beitrag "Modulofunktion" sowie der 
Beitrag "Re: Rechnen mit signed und integer" tragen auch was 
bei.

: Bearbeitet durch Moderator
von J. S. (engineer) Benutzerseite


Lesenswert?

Udo K. schrieb:
> Ich habe das noch in der Volksschule gelernt...
Ich glaube, unsere gesamte Generation hat das noch in der Grundschule 
gehabt :-= :D

Nennt sich "Schriftliches Dividieren" und gibt es in diversen 
Modifikationen, von denen sich einige auch für FPGAs eigenen, wenn auch 
nicht die, die in dem Artikel vorgeschlagen wird. Was mich da wieder 
fasziniert, ist die (vollkommen nutzlose, da kontraproduktve) Verwendung 
eines control- und eines datapaths.

So etwas baut man als fixe pipeline in entweder 2er, 4er (oder für die 
hard core fans) 8er look-ahead-Architektur und lässt sie kontinuierlich 
durchlaufen. Je nach FPGA-Type passiert da auch viel innerhalb eines 
Taktes und man kommt mit x<n als Latenz raus.

von Udo K. (Gast)


Lesenswert?

Jürgen S. schrieb:
> Udo K. schrieb:
>> Ich habe das noch in der Volksschule gelernt...
> Ich glaube, unsere gesamte Generation hat das noch in der Grundschule
> gehabt :-= :D

Ja, auswendig gelernt ohne es zu verstehen...


>
> Nennt sich "Schriftliches Dividieren" und gibt es in diversen
> Modifikationen, von denen sich einige auch für FPGAs eigenen, wenn auch
> nicht die, die in dem Artikel vorgeschlagen wird. Was mich da wieder
> fasziniert, ist die (vollkommen nutzlose, da kontraproduktve) Verwendung
> eines control- und eines datapaths.

Die Verwendung von Control- und Datenpfad war halt üblich, als die
VHDL Module noch einfach waren, und praktisch die Schaltungen
am Papier nachgemalt wurden.

Ich habe erst kürzlich ein SPI Interface angeschaut, wo noch jedes
FF oder Register in einem eigenen Prozess beschrieben wird.

Ich nehme mal an, das Vertrauen in die Synthesetools war damals auch
noch geringer.

> So etwas baut man als fixe pipeline in entweder 2er, 4er (oder für die
> hard core fans) 8er look-ahead-Architektur und lässt sie kontinuierlich
> durchlaufen. Je nach FPGA-Type passiert da auch viel innerhalb eines
> Taktes und man kommt mit x<n als Latenz raus.

Das täte mich mal interessieren, wie das geht!
So gut bin ich in VHDL nicht unterwegs.

Ich habe einmal den klassischen sequentiellen Dividieralgorithmus der
Grundschule in VHDL umgesetzt.
Ich bin richtig stolz, das das Modul nur N Takte und
2N+log2(N)+1 FF braucht (N ist die Bitanzahl).

Ich bin aber immer wieder überrascht, wie mühselig VHDL
für Signalverarbeitung und fürs Rechnen ist,
im Vergleich zu einem Cortex M4, wo man sich um den Datenpfad
keine Gedanken machen muss, und wo man fürs
Dividieren einfach a/b schreibt.

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.