Xcos and Scilab code generator with customiseable hooks and block libraries
This module implements a code-generator for Xcos with multiple back-ends. Using hooks and block library to specialize the code generator for a language or a platform. As it is fully implemented in Scilab it allow any user to overload / redefine some behaviors.
Currently it generates : Scilab code directly and C code through emmtrix Code Generator (eCG). The Scilab code is self-contained and only use a subset of the language; types and sizes are infered by the tools.
ABSBLK_f | zero-crossing parameter is ignored |
ABS_VALUE | zero-crossing parameter is ignored |
BIGSOM_f | - |
CLKINV_f | resolved by the frontend |
CLKOUTV_f | resolved by the frontend |
CLKSPLIT_f | resolved by the frontend |
CLINDUMMY_f | - |
CLOCK_c | independent events are re-synchronized to only one master clock |
CONST | |
CONST_f | |
CONST_m | - |
CONVERT | - |
DEMUX | - |
DEMUX_f | - |
DERIV | converted to Laplace discrete ‘z’ notation |
DOLLAR_f | converted to Laplace discrete ‘z’ notation |
DOLLAR_m | converted to Laplace discrete ‘z’ notation |
EXTRACTOR | - |
FROM | resolved by the frontend |
FROMWSB | implemented by the user in Scilab |
GAINBLK | - |
GAINBLK_f | - |
GOTO | resolved by the frontend |
INTRP2BLK_f | |
INTRPLBLK_f | implemented as if / then |
IN_f | label propagated as the input variable name of the superblock function |
LOGIC | - |
LOGICAL_OP | - |
MATMUL | - |
MAXMIN | - |
MUX | - |
MUX_f | - |
M_SWITCH | - |
NRMSOM_f | - |
OUT_f | label propagated as the input variable name of the superblock function |
POWBLK_f | - |
PRODUCT | - |
RELATIONALOP | - |
SATURATION | "zero-crossing parameter is ignored |
scifunc_block_m | implemented by the user in Scilab |
SPLIT_f | resolved by the frontend |
SINBLK_f | - |
SQRT | - |
SUMMATION | - |
SUPER_f | Produce an independent Scilab macro ; the block label will be the function name and each port labels will be used as inputs and outputs names to mimic a function call. |
SWITCH2_m | - |
TANBLK_f | - |
TIME_f | The time will be a double pseudo variable incremented by the computational step. |
TOWS_c | - |
TRASH_f | resolved by the frontend (variable aliases) |