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.