Hi Leutz helf mir mal bitte auf die Sprünge: Ich möchte die gesetzten (1) Bits in einem Bus zählen. Der Bus ist 32 Bit breit. Was ich nun gerne hätte ist eine Kaskade aus (Halb-)Addierern. Damit müsste es meiner Auffassung nach möglich sein, die ganze Geschichte in kominatorischer Logik zu realisieren und damit auch in jedem Takt das/ein Ergebnis zu liefern. Ich habe nun versucht das mit einer for-schleife zu realisieren, die eine counter-integer hochzählen. Das funktioniert natürlich nur wenn die counter-integer vorher initialisiert wurde. Genau das geht aber nicht, weil ich ja nur eine Taktflanke habe und ich nicht parallel zu der for-schleife initialisieren/rücksetzen kann. Der Punkt ist (nochmal): Eine Initialisierung ist in Hardware überhaupt nicht notwendig, wenn das mit Logik realisiert wird. Dann bräuchte ich nur ganz am Ende ein reg für das Ergebnis, wenn überhaupt. thx for help greez Kiigass
Kiigass schrieb: > helf mir mal bitte auf die Sprünge: Ich möchte die gesetzten (1) Bits in > einem Bus zählen. Der Bus ist 32 Bit breit. Lies mal das da im Beitrag "Bits in Wort zählen" Da geht es zwar vorrangig um VHDL, aber die Denkweise ist die selbe. > Was ich nun gerne hätte ist eine Kaskade aus (Halb-)Addierern. > Damit müsste es meiner Auffassung nach möglich sein, > die ganze Geschichte in kominatorischer Logik zu > realisieren und damit auch in jedem Takt das/ein Ergebnis zu liefern. Aber eben nur, wenn der Takt relativ langsam ist. Besser ist es, mehrere Teilsummen zu bilden und die aufzusummieren. Sieh den obigen Link...
Lothar Miller schrieb: > Aber eben nur, wenn der Takt relativ langsam ist. Besser ist es, mehrere > Teilsummen zu bilden und die aufzusummieren. Sieh den obigen Link... Danke dir für die Antwort, so meinte ich das auch. Mittlerweile bin ich auf drauf gekommen: Der "Trick" ist, dass die forschleife (natürlich) nicht getaktet sein darf, also nicht auf clk, sondern bei Veränderung des Eingangs getriggert wird. Also:
1 | always @(eingang) |
Dann macht der Compiler, das was wir erwarten.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.