1. A programmable decoder comprising: at least one programming input for a plurality of programmable trellis parameters including trellis connectivity information for trellis stages, active and inactive states for each trellis stage, a trellis branch transition data value and a metric index for trellis branch transition; and a programmable device connected to said at least one programming input and implementing a programmable trellis decoder comprising at least one trellis structure defined based upon the plurality of programmable trellis parameters.