一个嵌入式系统的Petri网模型与CPLD实现
Pi<= 进程Ri的输出;
……
END PROCESS Ri?
......
END behav?
冲突是由系统资源的共享产生的,与并发是一对对偶的概念?1?。在实际的Petri网模型中可能存在冲突K=<Pi,?T1?T2?……?,M>,网系统自身并不提供解决冲突的方法。避免冲突的方法或措施有:
(1)由用户选择,有冲突的地方通常是需要作出选择和决策的地方。
(2)设置合适的触发规则:确定性产生规则,如优先级;不确定性产生规则,如发生概率。
(3)改变系统结构,即改写Petri网的关联矩阵,增加共享资源回收。
VHDL语言中的并行语句同样不能解决冲突问题。使用VHDL并行语句描述冲突时将导致资源的丢失。而使用VHDL语言中的顺序语句,如进程内部的语句,采用设定不同优先级的方法,可以解决Petri网中存在的冲突。本控制器C/E系统也存在冲突现象,如图3所示。
对每个库所Pi进程的变化(Token的有无),使用电平的高低来表征。事件发生与否,用脉冲出现与否表征。该C/E系统的结构体共有14个并行处理的进程。根据对控制器进行形式描述的思想,在进程内部采用下列结构:
进程Ri:PROCESS(事件参数表)? i∈?1,14?
……
IF?<条件表达式>? THEN
<行为表达式>?
END IF;
END PROCESS 进程Ri;
事件参数表(也称敏感量)中事件触发进程的执行过程是:在判断事件的<条件表达式>为真后,顺序执行其后的<行为表达式>,由新变化的参量引导进程产生输出结果;执行完进程语句后,返回进程的事件参数,等待事件集新的变化,引发进程的再一次进行,往复循环。
图4 顶层模块时序仿真
4 基于VHDL的仿真与CPLD实现
VHDL语言设计技术齐全,方法灵活,支持广泛,对系统硬件描述能力强,具有多层次描述系统硬件的能力,可以从系统的数学模型直到门级电路。对控制器的Petri网模型进行VHDL程序设计后,利用综合器进行逻辑综合和优化,综合后再经仿真器进行时序仿真,得到涉及器件硬件特性的仿真结果,其结果正确。最后下载到Altera系列的EPM7128STC-6芯片上,从而实现视频输入卡逻辑控制器设计。行为仿真结果的仿真波形如图4所示。
将Petri网与EDA技术结合,对视频输入卡逻辑控制器用Petri网的C/E系统建模,并使用VHDL对协议的C/E系统模型进行程序设计,最后由CPLD器件实现控制器模型,使之成为实际的逻辑控制电路。这为硬件电路的高层综合设计提供了一种方法,也为软件系统和硬件系统开辟了一条沟通的渠道。对于其它具有多因素、动态和并发特点的系统,同样可用Petri网建立模型,用CPLD器件对模型进行仿真和实现。
《一个嵌入式系统的Petri网模型与CPLD实现(第3页)》