Frequently Asked Questions


Which Simulink® blocks are supported by QGen?

QGen supports around 100 Simulink® blocks, including:

Abs, Action Port, Assertion, Assignment, Backlash, Bias, BitwiseOperator, Bus Assignment, BusCreator, BusSelector, Clock, Combinatorial logic, Compare To Constant, Compare To Zero, Concatenate, Constant, Cosine, DataStoreMemory, DataStoreRead, DataStoreWrite, DataTypeConversion, Dead Zone, Demux, Detect Change, Difference, Digital Clock, Discrete Derivative, Discrete Filter, Discrete FIR Filter, Discrete State-Space, Discrete Transfer Fcn, Discrete-Time Integrator, Display, Divide, Enabled Subsystem, Enable, Fcn, For each, For Iterator Subsystem, From, Function-Call Generator, Function-Call Subsystem, Gain, Goto, GotoTagVisibility, Ground, Hit Crossing, IC (initial condition), If, If Action Subsystem, Inport, Delay, Interpolation Using Prelookup, Logical operator, Lookup Table nD, Lookup Table Dynamic, Math, Merge, MinMax, Model, MultiportSwitch, Mux, Outport, Prelookup, Product, Product of Elements, Rate Limiter, RateTransition, RelationalOperator, Relay, Reshape, Rounding Function, Saturation Dynamic, Saturation, Scope, Selector, S-Function, Shift Arithmetic, Signal Conversion, Signal Specification, Signum, Sine, Subsystem, Sum, Switch, SwitchCase, ZeroOrderHold, Tapped Delay, Terminator, Transfer Fcn Transfer Fcn, Trigger, Triggered Subsystem, Trigonometry, Unary Minus, Uniform Random Number, UnitDelay, While Iterator Subsystem, Width, Wrap To Zero

Which additional features of the Simulink® environment are supported by QGen?

Model Libraries, Model References, Simulink.Parameter, Simulink.Signal, Storage Classes, Structs

Which Matlab functions are supported by QGen?

abs, acos, acosh, asin, asinh, atan, atan2, atanh, cos, cosh, exp, log, log10, min, max, mod, rem, round, sign, sin, sinh, sqrt, tan, tanh, transpose.

How does AdaCore select which features of the Simulink® environment to support?

We carefully selected a safe subset that guarantees predictable code generation patterns, that does not require any run-time support, and that allows for tool qualification against a safety standard like DO-178C.

When will support for Stateflow® models be available?

In version 1.0.2 planned for June 2015.

What do you mean by "qualifiable"?

The code generation feature of QGen is qualifiable for DO-178C at Tool Qualification Level 1 and for ISO 26262 at TCL3 (developed in compliance with a safety standard). The model verification feature is qualifiable for DO-178C at Tool Qualification Level 5.

Which model properties can you verify with QGen?

Run-time errors (such as integer overflow, signal ranges out of bound, and division by zero)

Logical errors (conditions which are always true or false)

Functional/safety properties modeled using Assertion blocks

What about back-to-back testing?

QGen can be integrated with GNATemulator and GNATcoverage to support processor-in-the-loop (PIL) testing and structural coverage analysis without any code instrumentation.

How do you ensure the generated code is consistent with the simulation performed by the Simulink® environment?

QGen is extensively tested against the simulation of the Simulink® model. A tool validation suite comparing the behavior of the generated code against simulation on a wide range of Simulink® models is available on demand.

QGen has also been developed following a software safety standard, in particular DO-178B/C. A specification of the generated coding pattern for every supported feature is also available on demand.