Model and Validate Requirements
Define formal requirements in Simulink® models by using the Requirements Table block to evaluate logic before and at run time. Use formal requirements to check the outputs of your model or execute block outputs.
Configure the formal requirements directly in the block, in the Requirements Editor, or by using programmatic commands in MATLAB®.
Confirm that your requirements are complete and consistent by analyzing your formal requirements using Simulink Design Verifier™. Validate formal requirements before generating tests and verifying specification models.
You can also verify requirements in Requirements Table blocks by generating tests. For more information, see Verify Requirements by Using Tests.
Blocks
Requirements Table | Model formal requirements with input conditions (Since R2022a) |
Functions
Operators
Objects
Object Functions
Topics
Create Requirements
- Use a Requirements Table Block to Create Formal Requirements
Assess formal requirements by using Requirements Table blocks. (Since R2022a) - Construct Specification Models by Using Requirements Table Blocks
Learn about specification models and how to use them for requirements-based verification. (Since R2022b) - Add Assumptions to Requirements
Use assumptions to constrain formal requirement data in Requirements Table blocks according to physical limitations. (Since R2022a) - Specify Row Type in Requirements Table Blocks
Define the row types for requirements and assumptions in a Requirements Table block. (Since R2022a) - Create Requirements Table Blocks Programmatically
Create and modify Requirements Table blocks from the MATLAB command line. (Since R2022a) - Control Requirement Execution by Using Temporal Logic
Use temporal logic operators to control requirement evaluation and execution. (Since R2022a)
Define Evaluation Logic
- Establish Hierarchy in Requirements Table Blocks
Establish parent-child relationships between requirements or assumptions. (Since R2022a) - Specify Child Evaluation in Requirements Table Blocks
Specify how the block evaluates requirements at each level of the hierarchy in the Requirements Table. (Since R2023b)
- Leverage Evaluation Order of Formal Requirements
Specify the order of evaluation in a Requirements Table block. (Since R2022a) - Detect Read-Before-Write Issues
Use Simulink Design Verifier to detect read-before-write issues in Requirements Table blocks. (Since R2022a)
Configure Properties of Requirements Table Blocks
- Configure Properties of Formal Requirements
Modify the type, description, or rationale for each requirement in a Requirements Table block. (Since R2022a)
Configure Data
- Define Data in Requirements Table Blocks
Add or modify data in a Requirements Table block. (Since R2022a) - Set Data Types in Requirements Table Blocks
Specify the data types to use in your formal requirements. (Since R2022a) - Specify Size of Requirements Table Block Data
Specify data sizes in a Requirements Table block. (Since R2022a) - Detect Data Changes by Using Requirements Table Blocks
Execute formal requirements when data changes between time steps. (Since R2022a)
Validate Requirements
- Analyze Requirements Table Blocks for Modeling Problems
Use Simulink Design Verifier to validate Requirements Table blocks. (Since R2022a) - Identify Inconsistent and Incomplete Formal Requirement Sets
Use Simulink Design Verifier to find inconsistent and incomplete requirement sets. (Since R2022a) - Detect Exclusivity Issues in the Requirements Table Block
Use Simulink Design Verifier to identify issues with exclusive exhaustive child requirements. (Since R2023b)
Troubleshooting
Debug Requirements Table Blocks
Debug Requirements Table blocks by using breakpoints and analyzing block data during simulation. (Since R2023a)