mikrocontroller.net

Forum: FPGA, VHDL & Co. Dividiererschaltungssynthese


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Leon (Gast)


Bewertung
-4 lesenswert
nicht 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. (udok)


Bewertung
1 lesenswert
nicht lesenswert
Google kaputt?

von Leon (Gast)


Bewertung
-4 lesenswert
nicht lesenswert
Hallo,
leider findet man im Internet nicht viel...

von Udo K. (udok)


Bewertung
0 lesenswert
nicht lesenswert

: Bearbeitet durch User
von Hakim (Gast)


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

von Lern Instructor (Gast)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Ein einfacher Dividierer ist folgendermaßen aufgebaut:

Eingänge     Dividierer     Ausgänge

Dividend → o————————————o → Quotient
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:

Eingänge           Dividierer     Ausgänge

Dividend Bit 0 → o————————————o → Quotient Bit 0
Dividend Bit 1 → o————————————o → Quotient Bit 1
Dividend Bit 2 → o————————————o → Quotient Bit 2
Dividend Bit 3 → o————————————o → Quotient Bit 3
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. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht 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ürgen S. (engineer) Benutzerseite


Bewertung
0 lesenswert
nicht 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. (udok)


Bewertung
0 lesenswert
nicht 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.

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.