gpsim is a full system simulator for Microchip PIC microcontrollers. It is distributed under the GNU General Public License.
From their website:
gpsim is a full-featured software simulator for Microchip PIC microcontrollers distributed under the GNU General Public License.
gpsim has been designed to be as accurate as possible. Accuracy includes the entire PIC - from the core to the I/O pins and including ALL of the internal peripherals. Thus it's possible to create stimuli and tie them to the I/O pins and test the PIC the same way you would in the real world.