2 实现的基本方法
Petri网本身就是一种硬件描述语言,是一种高度抽象的、结构化的并发语言。Petri网非常适合于复杂离散系统的建模和形式化分析,而VHDL则是一种标准的硬件描述语言,可以解决数字系统描述中并发性问题,允许其仿真和综合。Petri网和VHDL可以相互补充,并且也可以提供一个验证子系统接收所有设计任务相同的用户接口描述[4]。并行控制器的VHDL文本Petri网描述在一个实际设计中可获得50%的面积减少及40%的速度改善(相对于最好的FSM综合)[4]。
用大规模可编程逻辑器件来实现由Petri网描述的并行控制器,其实现的基本步骤如下:
(1)对实际系统建立Petri网系统模型。
(2)采用Petri网软件工具对所建立的Petri网系统模型进行分析并加以控制,建立监控器的Petri网系统模型。
(3)确定输入输出变量并选择相应的FPGA或CPLD器件。
(4)根据网的拓扑结构确定条件与事件间的逻辑关系,用硬件描述语言如VHDL对Petri网模型进行描述。
(5)以VHDL描述作为设计输入,通过EDA软件开发工具,如ispDesign EXPERT或Max+PlusⅡ等,进行编译、模拟、适配,然后下载到器件中。 function ImgZoom(Id)//重新设置图片大小 防止撑破表格 { var w = $(Id).width; var m = 650; if(w
整个硬件实现的流程图如图1所示。
2 实现的基本方法
Petri网本身就是一种硬件描述语言,是一种高度抽象的、结构化的并发语言。Petri网非常适合于复杂离散系统的建模和形式化分析,而VHDL则是一种标准的硬件描述语言,可以解决数字系统描述中并发性问题,允许其仿真和综合。Petri网和VHDL可以相互补充,并且也可以提供一个验证子系统接收所有设计任务相同的用户接口描述[4]。并行控制器的VHDL文本Petri网描述在一个实际设计中可获得50%的面积减少及40%的速度改善(相对于最好的FSM综合)[4]。
用大规模可编程逻辑器件来实现由Petri网描述的并行控制器,其实现的基本步骤如下:
(1)对实际系统建立Petri网系统模型。
(2)采用Petri网软件工具对所建立的Petri网系统模型进行分析并加以控制,建立监控器的Petri网系统模型。
(3)确定输入输出变量并选择相应的FPGA或CPLD器件。
(4)根据网的拓扑结构确定条件与事件间的逻辑关系,用硬件描述语言如VHDL对Petri网模型进行描述。
(5)以VHDL描述作为设计输入,通过EDA软件开发工具,如ispDesign EXPERT或Max+PlusⅡ等,进行编译、模拟、适配,然后下载到器件中。 function ImgZoom(Id)//重新设置图片大小 防止撑破表格 { var w = $(Id).width; var m = 650; if(w
整个硬件实现的流程图如图1所示。
3.3 模型的VHDL实现
用VHDL实现的部分源代码如下:
t1<=not p2 and not p4 and x0 and p1;
t2<=not p3 and x1 and p2;
t3<=not p5 and x3 and p4;
t4<=not p6 and not p7 and p3 and p5;
t5<=not p8 and x5 and x6 and p6;
t6<=not p9 and not x2 and not x4 and p7;
t7<=not p6 and not x5 and p8;
t8<=not p1 and not x6 and p6 and p9;
np1<=t8 or (p1 and not t1);
np2<=t1 or (p2 and not t2);
np3<=t2 or (p3 and not t4);
np4<=t1 or (p4 and not t3);
np5<=t3 or (p5 and not t4);
np6<=t4 or t7 or(p6 and not t5 and not t8);
np7<=t4 or (p7 and not t6);
np8<=t5 or (p8 and not t7);
np9<=t6 or (p9 and not t8);
3.4 基于Max+PlusⅡ的并行控制器仿真
在MAX+PlusⅡ中经编译后进行功能仿真,仿真波形如图4所示。波形表明结果是正确的。
3.3 模型的VHDL实现
用VHDL实现的部分源代码如下:
t1<=not p2 and not p4 and x0 and p1;
t2<=not p3 and x1 and p2;
t3<=not p5 and x3 and p4;
t4<=not p6 and not p7 and p3 and p5;
t5<=not p8 and x5 and x6 and p6;
t6<=not p9 and not x2 and not x4 and p7;
t7<=not p6 and not x5 and p8;
t8<=not p1 and not x6 and p6 and p9;
np1<=t8 or (p1 and not t1);
np2<=t1 or (p2 and not t2);
np3<=t2 or (p3 and not t4);
np4<=t1 or (p4 and not t3);
np5<=t3 or (p5 and not t4);
np6<=t4 or t7 or(p6 and not t5 and not t8);
np7<=t4 or (p7 and not t6);
np8<=t5 or (p8 and not t7);
np9<=t6 or (p9 and not t8);
3.4 基于Max+PlusⅡ的并行控制器仿真
在MAX+PlusⅡ中经编译后进行功能仿真,仿真波形如图4所示。波形表明结果是正确的。