using:
Icarus Verilog version 0.10.0 (devel) (s20090923-753-ge62b09d)
When you do division along the lines of:
quotient = dividend / divisor;
and the dividend and/or divisor are larger than 32 bits the result returned is wrong. Attached is a simple test bench that reports the following errors:
vzd file name = divide_integer_test.netlist_vzd
dividend = 1098791506602, divisor = 1924134885, quotient = 513
*** ERROR - divide_integer_test - quotient = 513, expected 571
dividend = 1098114386521, divisor = 1842047451, quotient = 512
*** ERROR - divide_integer_test - quotient = 512, expected 596
dividend = 1099037126343, divisor = 1527504310, quotient = 514
*** ERROR - divide_integer_test - quotient = 514, expected 719
*** TEST FINISHED.
test bench to demonstrate bug
This appears to be fixed in the latest development from git. I tested this on RHEL 5 (64 bit) and cygwin (32 bit) and both gave the correct results.
I'm going to mark this as out of date. I'm also guessing the latest snapshot also will work correctly.