硬件语言中并发系统的建模
在硬件设计领域,并发系统的建模是一个关键的课题,它涉及到如何准确描述系统中多个任务同时执行的情况。本文将深入探讨在硬件描述语言中对并发系统进行建模的方法,特别是基于解释 Petri 网的建模技术,并结合 Verilog 语言给出具体示例。
1. 传统建模方法
在传统的硬件描述语言中,解释 Petri 网是描述并发系统的有效工具。下面我们将详细介绍其建模过程,包括并发和冲突的描述。
1.1 并发系统的基本描述
在解释 Petri 网中,输出与位置(places)相关联,通常使用连续赋值语句来描述。例如,对于一个包含多个位置和输出的系统,其输出可以简单地表示为:
assign y1 = p1;
assign y2 = p2;
assign y3 = p3;
assign y4 = p3;
assign y5 = p4;
最终,整个网的描述会将上述代码组合起来,形成一个完整的模块:
module net_concurrency (y1 ,y2 ,y3 ,y4 ,y5 ,x1 ,x2 ,clk , reset );
output y1 ,y2 ,y3 ,y4 ,y5;
input x1 ,x2;
input clk , reset;
wire t1 ,t2 ,t3;
reg p1 ,p2 ,p3 ,p4;
assign t1 = x1 & p1 & p3;
ass