【TTool学习笔记】2:AVATAR建模方法(设计和验证)

1 块图(Block Diagram)

块图通过New Design添加,描述的是系统的主要结构。

其中,建模元素包括:

  • Security pragmas,用规约语言写信息安全性质的地方
  • Safety property (UPPAAL),用规约语言写功能安全性质的地方,用的是UPPAAL的方法
  • Performance property,用规约语言写和性能有关的性质的地方
  • Block,块图中的块,可以添加属性、方法、输入输出信号、原型实现代码
  • Crypto Block,加密块,相比普通的块就只是多添加了各种各样的加解密、签名验证、消息拼接和取值相关的方法
  • Data type,用户自定义的数据类型,可以添加其它已有数据类型的属性,也可以被其它需要使用类型的地方使用,系统内置的就只有intbool两种类型
  • Library Function,库函数,可以定制参数表、输入输出信号、返回值、本地属性、方法
  • Crypto library function,和普通的库函数相比,就只是加入了各种各样的加解密、签名验证、消息拼接和取值相关的方法

【TTool学习笔记】2:AVATAR建模方法(设计和验证)_第1张图片

当创建块或者库函数的时候,在旁边会创建与之相对应的选项卡,可以在里面对其行为进行建模,就是绘制一个状态机图。状态机图中除了初始状态、普通状态、终止状态之外,还有用于选择分支的Choice,用于生成范围内随机数的Select random,用于发送消息的Send signal,用于接收消息的Receive signal,用于调用库函数的Library function call,用于设置计时器时间的Set timer,用于重置计时器的Reset timer,用于等待计时结束的Wait for timer expiration

在块图中,连线包括:

  • Composition connector,表达块之间的组合关系。
  • Port connector,连接两个块,表示两者之间的通信通道,可以设定在这个信道上工作的发送-接收信号。对这个信道可以设置是同步(synchronous)还是异步(asynchronous),还可以指定是否是广播信道(Broadcast channel)。当使用异步方式时,可以指定是否是有损耗的信道(Lossy channel),并可以指定异步传输队列的容量(Size of FIFO),还可以指定在队列满时对写入操作阻塞(Blocking on write when FIFO is full)。最后,可以指定是否是私有信道,如果是私有信道(Private channel),攻击者就无法在这个信道上进行监听。

【TTool学习笔记】2:AVATAR建模方法(设计和验证)_第2张图片

2 验证(Verification)

在TTool里验证模型之前要点大工具栏上的Syntax Analysis进行语法检查,这个时候会让用户去选择要检查的部分,这里就是要检查哪些块:
【TTool学习笔记】2:AVATAR建模方法(设计和验证)_第3张图片
语法检查之后会在状态机和块图上都进行标号,方便指出问题所在的位置。
【TTool学习笔记】2:AVATAR建模方法(设计和验证)_第4张图片
在进行语法分析通过后,就可以点击旁边的Interactive Simulation打开交互式模拟执行的面板,点击Run simulation开始模拟执行,并在下方显示各个块之间的行为和消息传递关系:
【TTool学习笔记】2:AVATAR建模方法(设计和验证)_第5张图片
可以在左侧Save trace选项卡保存这个模拟执行的trace到图片或者文本。

手册这里还讲了下Safety pragma的语法,以及时延分析(Latency Analysis)的内容,后面再单独研究。

你可能感兴趣的:(#,TTool,TTool,形式化验证,嵌入式系统)