1. A method for performing Viterbi decoding on a microcontroller, the method comprising: initializing a state-metric array by executing load instructions to load state-metric data from a memory module into a set of registers in the microcontroller; performing butterfly processing of the state-metric array by executing a sequence of Viterbi processing instructions fetched from a program storage module to manipulate the state-metric (SM) data in the set of registers for a plurality of Viterbi butterfly operations to form a final set of state-metric data and trace bits for a Viterbi stage; and storing the final set of state-metric data for the Viterbi stage by executing store instructions to store the final set of state-metric data in the memory module.