A method for implementing a convolutional neural network (CNN) accelerator on a target includes identifying characteristics and parameters for the CNN accelerator. Resources on the target are identified. A design for the CNN accelerator is generated in response to the characteristics and parameters of the CNN accelerator and the resources on the target.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for implementing a convolutional neural network (CNN) accelerator on a target, comprising: identifying characteristics and parameters for the CNN accelerator; identifying resources on the target; and generating a design for the CNN accelerator in response to the characteristics and parameters of the CNN accelerator and the resources on the target. 2. The method of claim 1, wherein identifying characteristics and parameters for the CNN accelerator comprises receiving the characteristics from a user. 3. The method of claim 2, wherein the characteristics for the CNN accelerator comprises: a number and sequence of stages of layers; sizes and coefficients of filters; and sizes, strides, and padding of images. 4. The method of claim 1, wherein the characteristics for the CNN accelerator comprises a range of characteristics that allows the CNN accelerator to execute a plurality of CNN algorithms. 5. The method of claim 4, wherein generating the design for the CNN accelerator comprises implementing configurable status registers (CSR), programmable by a user at runtime, to configure the target to support characteristics required for executing one of the plurality of CNN algorithms. 6. The method of claim 1, wherein generating the design for the CNN accelerator comprises assigning an appropriate size for buffers in response to sizes of images to be processed by the CNN accelerator. 7. The method of claim 1, wherein generating the design for the CNN accelerator comprises generating computation units in response to available resources on the target. 8. The method of claim 1, wherein generating the computation units comprises generating processing elements utilizing digital signal processor blocks, memory blocks, and adders on the target. 9. The method of claim 1, wherein generating the design for the CNN accelerator comprises generating a sequencer unit that coordinates transmission of data to appropriate processing elements on the CNN accelerator at appropriate times in order to time multiplex computations on the processing elements. 10. The method of claim 1 further comprising: identifying a CNN algorithm to execute on the CNN accelerator; identifying a variation of the CNN accelerator that supports execution of the CNN algorithm; and setting configurable status registers on the target to support the variation of the CNN accelerator. 11. A method for implementing a convolutional neural network (CNN) accelerator on a target, comprising: identifying a CNN algorithm to execute on the CNN accelerator; identifying a variation of the CNN accelerator that supports execution of the CNN algorithm; and setting configurable status registers on the target to support the variation of the CNN accelerator. 12. The method of claim 11 further comprising: determining whether a different CNN algorithm is to be executed on the CNN accelerator; identifying a different variation of the CNN accelerator that supports execution of the different CNN algorithm; and setting the configurable status registers on the target to support the different variation of the CNN accelerator. 13. The method of claim 11, wherein setting the configurable status registers adds or subtracts convolution layers on the CNN accelerator. 14. The method of claim 11, wherein setting the configurable status registers sets filter coefficients. 15. The method of claim 11, wherein setting the configurable status registers removes one or more pooling layers. 16. The method of claim 11, wherein setting the configurable status registers reduces a size of a filter. 17. The method of claim 11 further comprising programming the target to implement the CNN accelerator with a configuration file. 18. A non-transitory computer readable medium including a sequence of instructions stored thereon for causing a computer to execute a method for implementing a convolutional neural network (CNN) accelerator on a target, comprising: identifying characteristics and parameters for the CNN accelerator; identifying resources on the target; and generating a design for the CNN accelerator in response to the characteristics and parameters of the CNN accelerator and the resources on target. 19. The non-transitory computer readable medium of claim 18, wherein the characteristics for the CNN accelerator comprises a range of characteristics that allows the CNN accelerator to execute a plurality of CNN algorithms. 20. The non-transitory computer readable medium of claim 19, wherein generating the design for the CNN accelerator comprises implementing configurable status registers (CSR), programmable by a user at runtime, to configure the target to support characteristics required for executing one of the plurality of CNN algorithms.