MATLAB: Am I unable to build a model designed with FDATool using Embedded C6000 target (R14SP1)

c6000fdatoolfilterTarget Support Package TC2

I designed a filter with FDATool and realized it into a Simulink model. When I run or build my model (target ti_c6000.tlc) I receive the following error message:
Cannot solve algebraic loop involving 'model/Filter/a(2,1)' because it
consists of blocks that cannot be assigned algebraic variables, i.e., blocks
with discrete-valued outputs, blocks with non-double or complex outputs,
Stateflow blocks, or nonvirtual subsystems

Best Answer

The filter is designed using basic elements--sums, gains, delays--and is set up to handle one sample at a time. The documentation page for the realization panel of FDATool mentions in a highlighted note that inputs to blocks realized using basic elements must be sample-based. The filter, however, being fed a vector of 64 input samples at each time step, i.e. a frame-based signal. The mathematics of such a process involve an algebraic loop that Simulink cannot solve.
You can work around this issue in either of the following ways:
1. Make the signal sample-based before it comes to the filter block by unbuffering the signal. This might make the filter very slow.
2. Realize the filter using the "Digital Filter" block instead of using basic elements. The filter seems to be a straight-forward Direct-Form II IIR filter implemented as a cascaded chain of second-order sections. The "Digital Filter" block in the Signal Processing Blockset support this structure, and handles frame-based signals efficiently. Unchecking the "Build model using basic elements" checkbox causes FDATool to use the "Digital Filter" block to design the filter instead of using basic elements.