Apparatus and methods for in-application programming of flash-based programable logic devices
An architecture disposed in an integrated circuit for in-application programming of flash-based programmable logic devices includes a processor coupled to a processor system bus. An I/O peripheral is coupled to the processor over the system bus and is also coupled to an off-chip data source. A programmable logic device fabric includes flash-based programmable devices. A program controller is coupled to the flash-based programmable devices. An in-application programming controller is coupled to the program controller and is coupled to the processor over the system bus.
1. A method employing a hardwired on-chip processor and an on-chip programming controller to perform in-application programming of non-volatile memory in a programmable logic integrated circuit comprising:
providing a processor on the integrated circuit;
providing an in-application programming controller on the integrated circuit communicating with the processor;
providing a programming controller on the integrated circuit communicating with the in-application programming controller on the integrated circuit;
in response to a request to program nonvolatile memory on the integrated circuit:
initiating a programming operation in the in-application programming controller;
providing programming data by the processor to the in-application programming controller; and
running a programming algorithm in the in-application programming controller to control programming of the nonvolatile memory by the programming controller.
2. The method of claim 1 wherein the processor performs a process unrelated to programming the nonvolatile memory while the in-application programming controller controls programming of the nonvolatile memory by the programming controller.
3. The method of claim 2 wherein the in-application programming controller requests programming data from the processor by asserting an interrupt to the processor.
4. The method of claim 3 wherein the in-application programming controller asserts an interrupt to the processor over a JTAG interface.
5. The method of claim 3 wherein the in-application programming controller asserts an interrupt to the processor over an interrupt line.