Unterschied zwischen Mod- und Remotoperatoren in VHDL?

7

Ich stieß auf diese Anweisungen in der VHDL-Programmierung und konnte den Unterschied zwischen den beiden Operatoren mod und rem nicht verstehen

%Vor%     
musicakc 15.09.2014, 13:09
quelle

2 Antworten

18

Eine Möglichkeit, den Unterschied zu sehen, ist eine schnelle Simulation in einem Prüfstand, z Beispiel mit einem Prozess wie folgt:

%Vor%

Es zeigt das Ergebnis zu sein:

%Vor%

Wikipedia - Modulo-Operation hat eine ausführliche Beschreibung, einschließlich der Regeln:

  • mod hat Vorzeichen des Divisors, also n in a mod n
  • rem hat ein Vorzeichen für die Dividende, also a in a rem n

Der Operator mod gibt den Rest für eine Division, die abgerundet wird (floored division), also a = floor_div(a, n) * n + (a mod n) . Der Vorteil ist, dass a mod n ein wiederholter Sägezahngraph ist, wenn a sogar durch Null ansteigt, was in einigen Berechnungen wichtig ist.

Der Operator rem gibt den Rest für die reguläre ganzzahlige Division a / n , die auf 0 schrumpft (abgeschnittene Division), also a = (a / n) * n + (a rem n) .

    
Morten Zilmer 15.09.2014, 14:15
quelle
0
%Vor%     
mohammad saboorian 24.11.2017 06:32
quelle

Tags und Links