Forum: FPGA, VHDL & Co. counter < ((n/d) + ((n%d > 0) 1 : 0)) in VHDL


von Cheebi (Gast)


Lesenswert?

Hallo liebe VHDL-Experten,

kann man folgende Selektion in C-Syntax elegant in VHDL beschreiben? (n 
und d sind dabei Konstanten)

1
  if ( counter < ((n/d) + ((n % d > 0) ? 1 : 0)) )

Es soll also der Rest einer Division auf 1 oder 0 projeziert werden. Man 
könnte das glaube ich lösen, falls es eine Funktion gibt, die das 
Ergebnis einer Division immer aufrundet.

Habt ihr eine Idee?

Viele Grüße

Cheebi

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


Lesenswert?

Ich verstehe das Problem nicht ganz. Es gibt auch in VHDL einen mod 
Operator...
http://www.velocityreviews.com/forums/t374473-vhdl-mod-operator.html

von Bernhard R. (barnyhh)


Lesenswert?

In C geht es m.E. folgendermaßen einfach, elegant und verständlich:
1
if (counter < ((n + d - 1) / d)) ...

Bernhard

von Cheebi (Gast)


Lesenswert?

Hallo Bernhard,

vielen Dank! Die -1 war das entscheidende :D

Danke!

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


Lesenswert?

> (n % d > 0)
Eine kleine Frage noch: sind n und d immer positiv?
Dann würde ja eine Abfrage auf /=0 auch ausreichen...

von Cheebi (Gast)


Lesenswert?

@Lothar:

Ja sind immer positiv. Aber wie meinst du die Abfrage?

von Cheebi (Gast)


Lesenswert?

@Lothar:
Achso, ja das stimmt, es würde genügen.

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.