@Lattice user: vielen Dank! Anhand der Erklärung als 1-Bit Adderbekomme
ich eine Vorstellung wie es funktioniert.
Eigentlich wollte ich diesen Thread nicht nochmal ausgraben. Hab aber
heute beim Durchsehen meines Krimskrams diesen Beispielcode gefunden,
den ich neulich aus einem Tutorial im www ausgeschnippelt hatte:
1 | function parity;
|
2 | input [31:0] data;
|
3 | integer i;
|
4 | begin
|
5 | parity = 0;
|
6 | for (i= 0; i < 32; i = i + 1) begin
|
7 | parity = parity ^ data[i];
|
8 | end
|
9 | end
|
10 | endfunction
|
Mal abgesehen dass hier noch paar andere Aspekte reinspielen (macht es
Sinn, sowas in eine function auszulagern, Ergebnis komplementär zum Bsp.
oben, 32 Bit statt 8), ist die "Parity" Aufgabe hier auf die
Tippel-Tappel-Tour gelöst, mit einer for-next Konstruktion. Sehr viel
umständlicher, aber ohne viel Nachdenken für einen gelernten
Software-Programmierer auf Anhieb zu verstehen.
Interessant wär, auszuprobieren ob beide Varianten zu einem
vergleichbaren Synthese-Ergebnis führen. Muss ich mal ausprobieren...