Main Content

本页采用了机器翻译。点击此处可查看英文原文。

检测先读后写问题

自 R2022a 起

如果您有Simulink® Design Verifier™,您可以分析该表来识别Requirements Table模块中需求中的先读后写问题。当需求尝试读取尚未定义的数据时,就会出现先读后写问题。有关表分析及其检测到的问题类型的更多信息,请参阅 分析 Requirements Table 模块以解决建模问题

分析模块是否存在先读后写问题

要分析该模块,请在工具条的选项卡中点击分析表。如果模块中存在问题,则分析结果窗格将显示其他信息。例如,在此表中,第一个需求在y2被分配值之前读取输出数据y2

Requirements Table with two requirements. The action for the first requirement reads y2 before it is written.

当您分析示例表时,分析结果窗格会显示有关先读后写问题的其他信息。

Analysis results pane showing information about read-before-write issue detected in the first requirement

解决先读后写问题

您可以通过修改表以不在预条件和后条件中调用输出数据来解决先读后写问题。或者,如果您按顺序列出需求并在模块中启用在预条件中启用输出属性,则可以创建依赖于输出数据的需求预条件。请参阅在预条件中启用输出。例如,使用需求顺序的示例 中使用的模型不会产生需求问题,因为需求顺序在其他需求需要本地数据之前指定了本地数据。如果您更改需求的顺序,以便首先列出需求 3 和需求 4,然后分析需求,分析会发现两个先读后写问题。有关指定需求顺序以防止或解决问题的更多信息,请参阅 利用形式需求的评估顺序

注意

如果在写入数据之前编写了两个以上的读取相同数据的需求,则分析只会在列出的第一个存在问题的需求中检测到问题。解决问题后,重新运行分析以检测下一个先读后写问题。

相关主题