gpsim is a software simulator for Microchip's PIC microcontrollers. It was designed to provide accurate simulation at real-time speeds. Support exists for all three families of PIC's: 12-, 14-, and 16-bit cores. Simulator features like breakpoints (both execution and memory), trace, symbolic debugging, etc. are all supported. Additonally, simulated stimuli like square waves and analog signals are supported or, if you want, you can create your own dynamically loadable modules (like a 7-segment display). gpsim has both a GTK-based GUI and a readline-based CLI.