Forum: FPGA, VHDL & Co. Verilog: Führende Nullen zählen


von Paul W. (dantor)


Lesenswert?

Hallo,

was stellt die effizienteste Methode dar, führende Nullen zu zählen?
Shiften und warten, bis eine eins rausfällt, hat immernoch lineare 
Komplexität. Gibt es etwas schnelleres?

von berndl (Gast)


Lesenswert?

Paul W. schrieb:
> ... effizienteste ...
> ... schnelleres?

hm, entweder oder...

Wieviele Bits und was fuer eine Geschwindigkeit sollen's denn sein?

von Falk B. (falk)


Lesenswert?

@  Paul W. (dantor)

>Komplexität. Gibt es etwas schnelleres?

Ein direkter, paralleler Dekoder.

MfG
Falk

von berndl (Gast)


Lesenswert?

Falk Brunner schrieb:
> Ein direkter, paralleler Dekoder.

Ebend, in Verilog schoen zu loesen mit 'casex'. Die Frage war dann nur, 
alles parallel in einem cycle oder z.B. auf 8/16/32/... Bit Grenze 
pipelined...

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


Lesenswert?

> was stellt die effizienteste Methode dar, führende Nullen zu zählen?
Ich habe da mal was für VHDL untersucht, evtl. bringt dir das was:
http://www.lothar-miller.de/s9y/archives/55-Finde-das-MSB.html

von iulius (Gast)


Angehängte Dateien:

Lesenswert?

Hier noch eine Variante die auf Durchlaufzeiten optimiert ist durch 
vollständige ausnutzung von 4er luts (kann man natürlich auch für 6er 
oder 7er machen)

ergibt  auf s3e-5 :

Number of 4 input LUTs:                62 out of   9,312    1%
Number of occupied Slices:             33 out of   4,656    1%
Maximum combinational path delay:      8.842ns

könnte also sogar mit 100mhz machbar sein selbst bei älterem/low cost 
FPGA.

für verilog und parametrisierbarkeit habe ich grad keinen nerv.

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.