使用CADP对DTD电路进行模型检查和协同仿真
1. 应用与处理器建模
首先,定义了一个枚举类型 PC_T ,用于表示任务函数的地址。为了规避LOTOS NT编译器拒绝某些非尾递归调用的限制,在处理器模型中引入了调用栈,该调用栈通过引用传递给执行任务的 Execute 和 Dup 进程。
任务函数的执行由一个简单的 Execute 进程建模,主要是在 PC_T 的不同值之间进行切换,示例代码如下:
type PC_T is pc_1, pc_2, pc_3 with ”==”, ”!=” end type
process Execute [ST, LD_RQ, LD_RSP, MSG: any]
(j: Job_Desc_T, inout S:Job_Desc_Stack_T) is
var pc: PC_T, index: Nat in
pc := get_PC (j);
case pc in
pc_1 -> MSG (”pc_1”);
Dup [ST, LD_RQ, LD_RSP, MSG] (pc_3, 4, EXEC(pc_2, -1), !?S)
| pc_2 -> MSG (”pc_2: Master after Dup”)
| pc_3 -> MSG (”pc_3: slave with index ”, get_Index (j))
end case
end var end process
超级会员免费看
订阅专栏 解锁全文
1

被折叠的 条评论
为什么被折叠?



