Icarus Verilog
Here are some unformatted and unverified notes to get you
started. You probably should make a pass over the git logs
to see if I missed anything.



Add the $fread() system task.
Deprecate $log in favor of $log10.
Add support for a continuous assignment with two and three constant delays.
Add support for recursive modules in generate statements.
Add $readmempath() to set a search path for $readmem{b,h}.
Name space collisions should be fully checked in the compiler.
Add support to dump variable array selects using the current value to the
  variable. This allows:
    for (lp = 0; lp < max ; lp = lp + 1) $dumpvars(0, array[lp]);
  to dump the 0 to max-1 words from the array.
All streams are automatically flushed when entering interactive mode.
Add support for `celldefine, vpiCellInstance.
Add support for `resetall.
Fixed a large number of select endian, etc. bugs.
`default_nettype can now take all net types supported by Icarus.
Add support for `unconnected_drive
Add generation 2001-noconfig
All timing checks/controls should now be ignored.
The file descriptor table is allocated dynamically with a hard
  limit at 1024.
Enhance the support for real arrays.
Add support to dump events.
Added $ferror()
Added support for cbAtStartOfSimTime callback.
Added support for space in many paths/file names.
Both Cygwin and MinGW executables now support using a suffix.

(from http://sourceforge.net/mailarchive/forum.php?thread_name=628455.17517.qm%40web110615.mail.gq1.yahoo.com&forum_name=iverilog-devel)