Project Name: MAC unit



This is general purpose Multiply Accumulate Unit. The main goal is to see that it can fit into any DSP Core that needs a MAC Unit. The primary assumptions made for this are:

Though the present MAC Architecture (shown in the fig below) assumes the above set of buses, it doesn't bother even there is Von-Neumann Architecture (Single Memory). In such conditions when MAC is used as a component in its higher level description, we can virtually merge both the buses PRDB & DRDB. However since the loading of the registers is carried out on being qualified by the control signals from the Control Unit, there is absolutely no problem with the Architecture and it will function normally. The only difference would be that, we need as extra cycle to load the data into both registers.

Now we shall have a look at the MAC Architecture. The MXmux selects the loading of MX Reg from either DMDB or Rbus (operand may be a result of earlier arithmetic operation). The MYmux selects the loading of the MY Reg from either DMDB (Data Memory Data Bus) or PMDB (Program Memory Data Bus). The Multiplier is capable of handling the 16bit by 16bit multiplications. The accumulator gets two inputs, one from Multipler and the other from the Result registers. Accumulator is capable of accumulating upto 40 bits. The 40 bit result of accumulator is shared between two registers. LSB 32 bits go into MR1 and MSB 8 bits go into MR2 register.There can be instances when only multiplication is needed and no accumulate is needed. In such cases, the result of Multiplier bypasses the Accumulator via the MR1mux. Further since the Rbus is capable of handling 32 bits at a time, there is a mux network formed by MRUmux & MRLmux which takes care of dumping the result on to Rbus. If we have only a 32 bit result, MRUmux puts out the higher 24 bits and MRL puts out the lower 8 bits. In case if we have 40 bit result, an extra cycle is taken to dump out higher 8 bits from MRLmux. To further clarify the mux network, the MRU mux always puts 24 bit data onto Rbus[32:8] and MRLmux puts 8 bit data onto Rbus[7:0]. The control signals CM1 through CM4 can be issued from the control unit depending on the Memory Architecture of the target DSP Core.

The above considerations makes the MAC Architecture to be totally independent of the Target DSP Core and hence is capable of being ported to any possible Cores.

Current Status:

Author & Maintainer:

Current Team Members: Mailing list: