1. A integrated circuit comprising: a non-volatile memory block; a first block of programmable logic that is configured by configuration data stored in the non-volatile memory block; an in-system configuration interface; and a second block of programmable logic that is configured by external configuration data loaded into the second programmable logic block through the in-system configuration interface.