| Contents | Index |
Before investigating the specific code generation pieces of the Target Language Compiler (TLC), consider how Target Language Compiler generates code for a simple model. From the next figure, you see that blocks place code into Mdl routines. This shows MdlOutputs.

static void simple_output(int_T tid)
{
/* Sin Block: '<Root>/Sine Wave' */
simple_B.SineWave_d = simple_P.SineWave_Amp *
sin(simple_P.SineWave_Freq * simple_M->Timing.t[0] +
simple_P.SineWave_Phase) + simple_P.SineWave_Bias;
/* Gain: '<Root>/Gain' */
simple_B.Gain_d = simple_B.SineWave_d * simple_P.Gain_Gain;
/* Outport: '<Root>/Out1' */
simple_Y.Out1 = simple_B.Gain_d;
}Blocks have inputs, outputs, parameters, states, plus other general properties. For example, block inputs and outputs are generally written to a block I/O structure (generated with identifiers of the type model_B), where model is the model name). Block inputs can also come from the external input structure (model_U) or the state structure when connected to a state port of an integrator (model_X), or ground (rtGround) if unconnected or grounded. Block outputs can also go to the external output structure, (model_Y). The following diagram shows the general block data mappings.

This discussion should give you a general sense of what the block object looks like. Now, you can look at specific pieces of the code generation process that are specific to the Target Language Compiler.
![]() | Getting Started | Target Language Compiler Overview | ![]() |

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.
| © 1984-2012- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |