 Icarus Verilog

Icarus Verilog is an implementation of the Verilog hardware description language.It supports the 1995, 2001 and 2005 versions of the standard, portions of SystemVerilog, and some extensions.