Skip to Main Content Skip to Search
Home |   Select Country  Choose Country  |  Contact Us  |  Cart Store 
Create Account | Log In
Products & Services Industries Academia Support User Community Company

 

Real-Time Workshop® 7.1

Latest Features


Version 7.1

Released: 01 Mar 2008
 

Version 7.1, part of Release 2008a, includes the following enhancements:

  • Removed static libraries rtwlib_* to simplify code integration
  • New API for registering hardware device vendor and type
  • More cases supported for automatic Rate Transition Block insertion
  • Removed limitations for number of referenced models built
  • Enhanced BuildInfo API to contain a composite Model Reference description
  • MATLAB Editor syntax highlighting for Target Language Compiler (TLC) code
  • Context-sensitive help available for Configuration Parameters dialog box

See the Release Notes for details.


Update Now


Version 7.0.1

Released: 08 May 2008
 

Version 7.0.1, part of the Simulink product family update for Release 2007b, resolves several key customer-reported issues.

Read about the latest bug fixes for:

Version 7.0

Released: 01 Sep 2007
 

Version 7.0, part of Release 2007b, includes the following enhancements:

  • New emlc command-line function for generating C code from Embedded MATLAB, including Embedded MATLAB code that spans multiple M-files
  • Support for Stateflow animation with Simulink External Mode
  • Auto insertion of asynchronous Rate Transition blocks handled for more cases
  • New configuration parameters for controlling compiler optimization level and specifying custom optimization settings
  • Additional microprocessors and enhanced graphical interface for selecting code generation target hardware
  • Improved code integration for Stateflow local data by inheriting Simulink signal object properties
  • Enhanced efficiency in generated code of Iterator-Selector-Assignment patterns

See the Release Notes for details.

Version 6.6.1

Released: 03 May 2007
 
Real-Time Workshop 6.6.1 resolves several key customer-reported issues. It is part of a Simulink product family update for Release 2007a. See the Release Notes for details.

In addition to Real-Time Workshop, seven other products were included in this update:

Version 6.6

Released: 01 Mar 2007
 

Version 6.6, part of Release 2007a, includes the following enhancements:

  • Static file dependencies reduced for improved integration and builds
  • Enhanced code efficiency, including Merge and Concatenate block optimizations
  • Enhanced checking and reporting for identifier conflicts
  • Support for multidimensional signals
  • Support for indexed tunable parameters used in tunable expressions
  • Support for Simulink Legacy Code Tool enhancements
  • New TLC tutorial

See the Release Notes for details.

Version 6.5

Released: 01 Sep 2006
 
Version 6.5, part of Release 2006b, includes the following enhancements:
  • Support for Simulink Report Generator to create code generation reports
  • New packNGo function for relocating static and generated code files for a model
  • Support for new Simulink.SubSystem.getChecksum method for determining why subsystem code is not reused
  • Merge block enhancement that supports storage classes for input signals
  • Consistency improvements to formatting of generated code
  • Support for Simulink Legacy Code Tool, which speeds creation of S-functions from legacy C/C++ code
See the Release Notes for details.

Version 6.4.1

Released: 20 Apr 2006
 
Real-Time Workshop 6.4.1 resolves many customer-reported issues. It is part of a Simulink product family update for Release 2006a. See the Release Notes for details.

In addition to Real-Time Workshop, seven other products were included in this update:

Version 6.4

Released: 01 Mar 2006
 

Version 6.4, part of Release 2006a, includes the following enhancements:

  • Support for Visual Studio 2005 (MSVC8.0) on 32-bit Windows platforms
  • New application programming interface (API) for managing model build information
  • Switch block optimization for wide control port signals
  • Support for Simulink signal object initialization
  • Support for Simulink parameters of all numeric data types, including fixed-point, user-defined, and alias data types

See the Release Notes for details.

Version 6.3

Released: 01 Sep 2005
 

Version 6.3, part of Release 14 with Service Pack 3, includes the following enhancements:

  • Embedded MATLAB block support for fixed-point code generation
  • C++ target language support for Real-Time Windows Target and External Mode
  • Code efficiency improvements, including optimized vector selection for Data Store Memory
  • rtw_precompile_libs function for optimizing builds involving S-Function libraries
  • MATLAB desktop window no longer superimposed on the Simulink model window during code generation
  • Additional documentation topics, including profiling generated code

See the Release Notes for details.

Version 6.2.1

Released: 26 May 2005
 
Real-Time Workshop 6.2.1 resolves many customer-reported issues. It is part of a Simulink product family update for Release 14 with Service Pack 2. See the Release Notes for details on version 6.2.1.

In addition to Real-Time Workshop, six other products were included in this update:

Version 6.2

Released: 07 Mar 2005
 
  • C++ target language support to facilitate integration of generated code with legacy or custom user code written in C++
  • Model Advisor enhancements including several new checks and the grouping of checks based on their application for simulation or code generation
  • Rate Transition block enhancements including support for automatic insertion of transitions to or from asynchronous tasks, automatic insertion for single-tasking execution mode, and asynchronous rates when no priority is specified
  • Optimized code generated for the Data Store Read block to eliminate the use of temporary variables, when possible.

Version 6.2, part of MathWorks Release 14 with Service Pack 2, also includes the latest bug fixes. See the Release Notes for details.

Version 6.1

Released: 22 Sep 2004
 

Version 6.1 of the Real-Time Workshop contains minor enhancements and latest bug fixes. It is fully compatible with MathWorks Release 14 products.

Version 5.1.1

Released: 29 Apr 2004
 

Real-Time Workshop 5.1.1 resolves many customer-reported issues.

For additional information about Real-Time Workshop 5.1.1, see the Release Notes.

Version 6

Released: 02 Jun 2004
 

Model Referencing, Model Blocks, and Incremental Code Generation

Model Referencing lets a model include references to other models using Model blocks. The advantages include modular development, inclusion by reference (instead of wasteful copies), faster loading and updates, and incremental code generation.

Embedded MATLAB Functions block

The Embedded MATLAB Functions block lets you include MATLAB code in Simulink and Stateflow models for simulation and code generation.

Code Generation Unification

Real-Time Workshop Embedded Coder fully extends the set of features provided by Real-Time Workshop. Both products now share a common code format.

Bus Creator Blocks Now Can Emit Structures

Bus signals can be made non-virtual using the Bus Editor and occupy contiguous memory in the generated code.

Model Explorer

The Model Explorer lets you quickly navigate, view, create, configure, search, and modify all data and properties of a Simulink model or Stateflow chart.

Data Dictionary Support

Real-Time Workshop generates code according to attributes defined for data within a data dictionary established by the Model Explorer and Simulink Data Objects.

Configuration Sets

Configuration sets let you easily define and manage all simulation and code generation parameters. You can create multiple configuration sets for a given model.

Hardware Characteristics

Hardware configuration sets make it easy to specify word sizes and other target hardware characteristics. A handy Device type menu provides pre-set default hardware configuration values for dozens of well known target processors.

Code Reports

You can browse files generated by Real-Time Workshop directly in the Model Explorer.

Model Advisor

The Model Advisor helps you quickly configure a model for code generation and identify aspects of your model that impede deployment or limit code efficiency.

New C-API for Accessing Model Block Outputs and Parameters Data

The new C-API is more efficient and capability than before, plus provides support for referenced models, fixed point, complex data, and reusable code.

External Mode Enhancements

External Mode includes a number of enhancements such as support for Floating Scope blocks and serial communication mode.

Custom Code Block Library

The Custom Code Block library contains 10 blocks that insert custom code into the generated model files and functions.

Combining User C++ Files with Generated Code

Real-Time Workshop lets you incorporate user C++ files into a Real-Time Workshop build. The Real-Time Workshop itself does not generate C++ code but simply enables it to be called.

Designating Target-Specific Math Functions

You can specify ISO-C/C99 or GNU floating-point math libraries, in addition to ANSI-C. This makes the code more efficient because it can use single-precision operations.

New Asynchronous Block Library

This asynchronous block library targets a particular RTOS (VxWorks Tornado) and provides full source code and documentation so that you can support event handling for your target RTOS.

Rate Transition Block Improvements

The updated Rate Transition block automatically detects whether transitions must be slow-to-fast or fast-to-slow, and acts appropriately. Simulink can also now auto-insert rate transitions.

Enhanced Absolute and Elapsed Time Computation

The Real-Time Workshop now provides more efficient time computation services to blocks that request absolute or elapsed time.

Improved Single Tasking Code Generation

Code is more efficient for Single Tasking mode since it no longer test for base rate sample hits.

Real-Time Workshop Now Supports Intel Compiler

Real Time Workshop now supports the Intel compiler (version 7.1 for Microsoft Windows).

ASAP2 File Generation Changes

ASAP2 file generation is now generally available to all Real-Time Workshop targets.

Version 5.1

Released: 22 Sep 2003
 

Version 5.1, included the latest bug fixes and the following:

Model Assistant Tool

The Model Assistant Tool lets you configure a model quickly for code generation. It also helps identify aspects of your model that impede production deployment or limit code efficiency. Designed primarily for Real-Time Workshop, the Model Assistant Tool also operates with other targets.

Version 5.0.1

Released: 26 Sep 2002
 

Expanded Hook File Options

This update adds new options for specifying target characteristics via hook files.

During its build process, Real-Time Workshop checks for <target>_rtw_info_hook.m, where <target> is the base file name of the active system target file. For example, if your system target file is grt.tlc, then the hook file name is grt_rtw_info_hook.m. If the hook file is present (i.e., is on the MATLAB path), the API in this file extracts the target-specific information. Otherwise, the host computer is the assumed target.

Three hook file keyword options have been added since release 13:

  • TypeEmulationWarnSuppressLevel: Suppresses warnings about emulation of word sizes. The default value is 0, which gives full warnings. This is the preferred setting when generating code for the production target. Increasing the value gives fewer warnings. When generating code for a rapid prototyping system, emulation may not be a concern and a suppression level of 2 may be desirable.
  • PreprocMaxBitsSint: Specifies limitations of the target C preprocessor to perform math with signed integers. This prevents errors in the preprocessor phase.
  • PreprocMaxBitsUint: Specifies limitations of the target C preprocessor to perform math with unsigned integers. This is just like PreprocMaxBitsSint except that it pertains to unsigned integer operations.

Hook Files for Customizing Make Commands

Custom targets may require a target-specific hook file to generate an appropriate make command when you are using a nondefault compiler. Such M-files should be located on the MATLAB path and be named <target>_wrap_make_cmd_hook.m, e.g. MPC555pil_wrap_make_cmd_hook.m for the MPC555 PIL target. When such a file exists, and returns an appropriate make command, Real-Time Workshop will override its default (e.g., LCC) batch file wrapping code. For an example make command hook file, see matlabroot/toolbox/rtw/rtw/wrap_make_cmd.m. Note that such hook files are distinct from the target-specific hook files that describe hardware characteristics (see above).

Version 5

Released: 05 Aug 2002
 

Code Generation Infrastructure Enhancements

Code for Nonvirtual Subsystems Is Now Reusable

Real-Time Workshop 5 alters certain aspects of generated code to implement the capability to reuse code for nonvirtual subsystems. You have the ability to select or override this feature, as well as to specify function and file names from the Real-Time Workshop GUI.

In prior releases, each nonvirtual subsystem in a model generated a separate block of code. In some circumstances— for example, when a library block is used multiple times in the same fashion— it is possible to generate a single shared function for the block and call that function multiple times. Consolidating code in this fashion can significantly improve the size and efficiency of generated code.

To implement code reuse, the Real-Time Workshop must pass in appropriate data elements (as function arguments) for each caller of a reused subsystem. Code generated by Real-Time Workshop 5 enables such arguments for functions generated for nonvirtual subsystems.

Reusable code will also be generated, when feasible, when you set Real-Time Workshop system code to Auto. Then, if only one instance of the subsystem exists, it will be inlined. Otherwise a reusable function will be generated if other characteristics of the model allow.

Certain conditions may make it impossible to reuse code, causing Real-Time Workshop to revert to another Real-Time Workshop system code option even though you specify the Reusable function.

See Nonvirtual SubsystemCode Generation in the Real Time Workshop documentation for further details.

Packaging of Generated Code Files Simplified

The packaging of generated code into .c and .h files has changed. The following table summarizes the structure of source code generated by the Real-Time Workshop. All code modules described are written to the build directory.

Table 1-1: Real-Time Workshop File Packaging

model.c

Contains entry points for all code implementing the model algorithm (MdlStart, MdlOutputs, MdlUpdate, MdlInitializeSizes, MdlInitializeSampleTimes). Also contains model registration code
model_private.h Contains local defines and local data that are required by the model and subsystems. This file is included by subsystem .c files in the model. You do not need to include model_private.h when interfacing handwritten code to a model. Note that model_private.h is sub-included by model.h.
model.h Defines model data structures and a public interface to the model entry points and data structures. Also provides an interface to the real-time model data structure (model_rtM) via accessor macros. model.h is included by subsystem .c files in the model. If you are interfacing your handwritten code to generated code for one or more models, you should include model.h for each model to which you want to interface.
model_data.c(conditional)

model_data.c is conditionally generated. It contains the declarationsfor the parameters data structure and the constant block I/O data structure. If these data structures are not used in the model, model_data.c is not generated. Note that these structures are declared extern in model.h.
model_types.h Provides forward declarations for the real-time model data structure and the parameters data structure. These may be needed by function declarations of reusable functions. model_types.h is included by all subsystem .h files in the model.
rtmodel.h Contains #include directives required by static main program modules such as grt_main.c and grt_malloc_main.c. Since these modules are not created at code generation time, they include rt_model.h to access model-specific data structures and entry points. If you create your own main program module, take care to include rtmodel.h.
model_pt.c (optional) Provides data structures that enable a running program to access model parameters without use of external mode. To learn how to generate and use the model_pt.c file, see C API for Parameter Tuning.
model_bio.c (optional) Provides data structures that enable your code to access block outputs. To learn how to generate and use the model_bio.c file, see Signal Monitoring via Block Outputs.


If you have interfaced handwritten code generated by previous releases of the Real-Time Workshop, you may need to remove dependencies on header files that are no longer generated. Use #includemodel.h directives, and remove #include directives referencing any of the following:
  • model_common.h (replaced by model_types.h and model_private.h)
  • model_export.h (replaced by model.h)
  • model_prm.h (replaced by model_data.c)
  • model_reg.h (subsumed by model_.c)

Most Targets Use rtModel Instead of Root SimStruct

The GRT, GRT-Malloc, ERT, and Tornado targets now use the rtModel data structure to store information about the root model. In prior releases, this information was stored in the SimStruct data structure. Since the SimStruct data structure was also used by non-inlined S-functions, it contained a number of S-function-specific fields that were not needed to represent root model information. The new rtModel is a lightweight data structure that eliminates these unused fields in representing the root model. Fields in the rtModel capture model-wide information pertaining to timing, solvers, logging, model data (such as block I/O and Dwork parameters), etc. To generate code for the ERT target, the rtModel data structure is further pruned to contain only those fields that are relevant to the model under consideration.

Hookfiles for Communicating Target-Specific Word Characteristics

In order to communicate details about target hardware characteristics, such as word lengths and overflow behavior, you now need to supply an M-file named <target>_Real-Time Workshop_info_hook.m. Each system target file needs to implement a hook file. For GRT (grt.tlc), for example, the file must be named grt_Real-Time Workshop_info_hook.m, and needs to be on the MATLAB path. If the hookfile is not provided, default values based on the host's characteristics will be used, which may not be appropriate. For an example, see toolbox/Real-Time Workshop/Real-Time Workshopdemos/example_Real-Time Workshop_info_hook.m. In addition, note that the TLC directive %assign DSP = 1 no longer has any effect. You need to provide a hook file instead.

Code Generation Unified for Real-Time Workshop and Stateflow

In earlier releases, code generated from Stateflow charts in a model was written to source code files distinct from the source code files (such as model.c, model.h, etc.) generated from the rest of the model. Now, by default, Stateflow no longer generates any separate files from Real-Time Workshop. In addition, Stateflow generated code is seamlessly integrated with other generated code. For example, all Stateflow initialization code is now inlined.

You can override the default and instruct Real-Time Workshop to generate separate functions, within separate code files, for a Stateflow chart. To do this, use the Real-Time Workshop system code options in the Block parameters dialog of the Stateflow chart (see Nonvirtual Subsystem Code Generation in the Real-Time Workshop documentation). You can control both the names of the functions and the code files generated.

Conditional Input Branch Execution Optimization

This release introduces a new optimization called conditional input branch execution, speeding simulation and execution of code generated from the model. Previously, when simulating models containing Switch or Multiport Switch blocks, Simulink executed all blocks required to compute all inputs to each switch at each time step. In this release, Simulink, by default, executes only the blocks required to compute the control input and the data input selected by the control input at each time step. Likewise, stand-alone applications generated from the model by Real-Time Workshop execute only the code needed to compute the control input and the selected data input. To explore this feature, look at the coninputexec demo.

Custom storage classes are now ignored if Real-Time Workshop Embedded Coder is not licensed

To use custom storage classes, you must obtain a license for Real-Time Workshop Embedded Coder and install the product. If you load a model that uses custom storage classes, but you are not licensed for Real-Time Workshop Embedded Coder, the custom storage class is ignored, the storage class reverts to auto, and a warning is displayed.

Version 4.1.1

Released: 08 Jan 2002
 

This release included the latest bug fixes.

Real-Time Workshop Embedded Coder 2.1 was also included in that release.

Version 4.1

Released: 02 Jul 2001
 

Real-Time Workshop Embedded Coder 2 is also available.

Code Generation Enhancements

  • Block reduction option is turned on by default, resulting in faster model execution.
  • Complete documentation for the parameter tuning C API is now available.
  • Enhancements have been made to the readability of the generated code, including elimination of redundant parenthesis, splitting of long C statements across multiple lines, and generation of more informative block comments.
  • New expression-folding code optimization improves the efficiency and readability of generated code.

This model demonstrates expression folding performed by Real-Time Workshop.

This model demonstrates "expression folding" performed by Real-Time Workshop. In this model, each block (gain, lookup tables, relational operator, logic, and constant) is folded into the switch block operation to improve the code efficiency and readability. Note that the branches of the switch block are conditionally executed, increasing CPU throughput.

  • Subsystem code generation and rapid simulation targets support inline parameters.
  • Generate comments option lets you specify whether comments are written in the generated code.
  • Buffer reuse option is now available in the Code Generation Options section of the Real-Time Workshop graphical user interface.
  • Build Subsystem and Generate S-function windows display additional information about block parameters referenced by the subsystem.
  • Include System Hierarchy in Identifiers option inserts system identification tags in the generated code to help identify the nesting level of the block within your source model that generated a given line of code.
  • Wrap lines option for the MATLAB Command Window lets you control whether text displayed in the Command Window is wrapped to the window or displayed as one continuous line.
  • For certain block types, you can control how block states in your model are stored and represented in the generated code.
  • Control-flow blocks (if, for, while, switch-case) produce very efficient, readable code.

Real -Time Workshop Embedded Coder generates production code for Simulink's software constructs: if, case, for, and while.

Real -Time Workshop Embedded Coder generates production code for Simulink's software constructs: if, case, for, and while. This example demonstates the code generated for the if-then-else construct. Note that analysis determines that the outputs of the if-else systems can be stored in a temporary variable when exclusively merged.

External Mode Enhancements

  • Support for inline parameters enables you to improve overall code efficiency while retaining the flexibility of run-time tuning for selected parameters.
  • The simulation time is now displayed and updated while Simulink is connected to a running external mode target.

Support for New Blocks

  • Support is now provided for the control flow blocks implemented in Simulink 4.1, including the If, SwitchCase, For Iterator, and While Iterator blocks.

Target Language Compiler 4.1

  • The TLC debugger helps you identify programming errors in your TLC code. The debugger lets you set breakpoints in your TLC code, execute TLC code line by line, examine and change variables, and perform many other useful operations.

Version 4

Released: 02 Nov 2000
 
  • Significantly faster Target Language CompilerTM (TLC) code generation process
  • TLC Profiler report for debugging TLC programs
  • New optimizations in generated code, including improved signal storage reuse, block reduction, and parameter pooling
  • User Interface improvements, including a redesigned Real-Time Workshop page and Model Parameter Configuration (tunable parameters) dialog
  • Support for additional Simulink blocks, including Look-Up Table blocks with highly efficient generated code
  • S-function target support for variable-step solvers and parameter tuning
  • Support for frame-based processing for DSP Blockset blocks and matrix operations for most Simulink blocks
  • External mode now supports additional blocks for signal uploading, including Dials & Gauges Blockset, Display, and To Workspace blocks
  • Support for code generation from subsystems
  • Simulink data objects control how signals and parameters are represented in the generated code
  • Support for generation of ASAP2 data definition files
  • Tunable expressions are now supported during simulation and in the generated code
  • New build directory stores generated source code and other files created during the build process
  • Nonvirtual subsystem code generation enables you to control how many files are generated from a subsystem as well as the file and function names
  • Support for Version 5.4 of the Borland C/C++ compiler
Contact sales
Free technical kit
Trial software

Get Pricing and
Licensing Options

Update to the Latest Version