FAQ

Workflow

Does CertSAFE know anything about the target platform the implementation of a model will be running on?

No, by design. This ensures that CertSAFE is usable on any target platform and that it is relevant well into the future. It also means you do not need to configure CertSAFE to run for a given target environment. This allows development to occur even when the target environment is unknown.

Modeling

How do I add a timer/filter/some other component to my CertSAFE model? I don’t see anything like that in the palette.

CertSAFE provides only a small set of primitives that can be used to implement more complex behaviors such as timers and digital filters. For larger projects, it is typical to create a library of custom components that are defined once and then reused many times within the project. The Example Components library provides a collection of sample components showing how to implement various common behaviors.

Can I manipulate strings or other character data in CertSAFE models?

Not directly, no. If you are trying to choose from a fixed list of messages or codes, consider whether an enum type is appropriate, since enum types display as user-defined strings in the user interface and test vector files. If you genuinely need ASCII characters, you can always use UInt8, but this doesn’t display as character data in the user interface.

Simulation

How do I change the length of a simulation from the default length of 1200 frames?

Click on an empty space in the timeline to clear any selection of variables or IntelliPoints, then edit the Length (frames) or Length (seconds) property in the Properties view.

_images/Simulation-properties.png

How do I change the number of frames per second in the simulation?

This is currently a project global option. It can be modified by opening the Project options editor through the Projects view and editing the Project frame rate in frames per second (Hz) field. This also controls the value produced by the Frames Per Second primitive component in models.

I want to write a simulation that exhaustively tests logic with Boolean input variables. Is there a faster way to do this than manually creating lots of IntelliPoints?

_images/Exhaustive-Boolean-waveforms.png

You can do this as follows:

  1. Find the first variable you want to control and double-click on it to create a single IntelliPoint.
  2. With the IntelliPoint selected, go to the Properties view. Make sure the IntelliPoint’s Time property is set to the time at which you want to begin exhaustive testing, and the Value property is set to 0.0 (corresponding to Boolean False).
  3. Change the IntelliPoint’s Interpolation modifier property to square wave. The Properties table will gain several additional properties for defining the square wave modifier’s behavior. Make sure the Low value property is set to 0.0 (corresponding to Boolean False), the High value property is set to 1.0 (corresponding to Boolean True), and the Phase offset (sec) property is set to 0.0.
  4. Set the Period (sec) property to twice the length of time that you want each input vector to be held for. For example, suppose you want each input vector to be held for 1 frame, and your project frame rate is 10 Hz. You would compute 2 × (1 frame) / (10 frames / second) = 0.2 seconds, and therefore set the Period (sec) property to 0.2.
  5. Repeat steps 1–4 for each remaining variable in the collection of variables you want to control. However, each time you perform step 4, set the Period (sec) property to double the value you did for the previous variable. So, in the preceding example, you would set the periods for subsequent variables to 0.4, 0.8, 1.6, 3.2, and so on.

User interface

How do I search for diagrams that reference a particular custom component, data type, or variable name?

You can use the drop-down at the top-right corner of the Projects view to change the criteria that the Filter text box uses for searching.

_images/Resource-filter-types.png
  • Filename (the default) searches for resources whose name contains the specified text.
  • Referenced resources searches for definitions that reference a resource, such as a custom component or data type, whose name contains the specified text.
  • Referenced variables searches for definitions that include a variable whose name contains the specified text.