A Convolution Multiply and Accumulate, CMAC, system for performing a convolution operation, the CMAC system comprising: a local controller configured to generate a set of signals comprising a first signal, a second signal, a third signal and a fourth signal, wherein the set of signals is generated upon receipt of image data pertaining to an image, and wherein the image data comprises a set of feature matrix, depth information and a kernel size, wherein the image comprise a set of layers and each layer used for convolution operation of the image, wherein the local controller is configured to receive the depth information via a LAYER_DEPTH signal; a Multiply and Accumulator, MAC, configured to generate convoluted data by performing a convolution operation on each feature matrix upon receipt of the first signal, wherein the convolution operation is performed by multiplication of each feature, from the feature matrix, with the depth information; an accumulator configured to generate accumulated data based on accumulation of the convoluted data, when the convolution operation on each feature matrix is performed, wherein the accumulator accumulates the convoluted data upon receipt of the second signal; an adder configured to generate added data based on addition of a predefined value to the accumulated data upon receipt of the third signal; and an activation block configured to filter the added data in order to provide a convolution result for the image, wherein the activation block filters the added data by using a filter function upon receipt of the fourth signal thereby performing the convolution operation on the image, wherein the fourth signal is at least one of a parameter signal which is a set of parameters, a bypass signal to bypass the MAC , the accumulator tttand the adder , and a START_RELU signal in order to receive the filter function. a local controller configured to generate a set of signals comprising a first signal, a second signal, a third signal and a fourth signal, wherein the set of signals is generated upon receipt of image data pertaining to an image, and wherein the image data comprises a set of feature matrix, depth information and a kernel size, wherein the image comprise a set of layers and each layer used for convolution operation of the image, wherein the local controller is configured to receive the depth information via a LAYER_DEPTH signal; a Multiply and Accumulator, MAC, configured to generate convoluted data by performing a convolution operation on each feature matrix upon receipt of the first signal, wherein the convolution operation is performed by multiplication of each feature, from the feature matrix, with the depth information; an accumulator configured to generate accumulated data based on accumulation of the convoluted data, when the convolution operation on each feature matrix is performed, wherein the accumulator accumulates the convoluted data upon receipt of the second signal; an adder configured to generate added data based on addition of a predefined value to the accumulated data upon receipt of the third signal; and an activation block configured to filter the added data in order to provide a convolution result for the image, wherein the activation block filters the added data by using a filter function upon receipt of the fourth signal thereby performing the convolution operation on the image, wherein the fourth signal is at least one of a parameter signal which is a set of parameters, a bypass signal to bypass the MAC , the accumulator tttand the adder , and a START_RELU signal in order to receive the filter function. <EOS>