ASIC设计中一种通用型并行设计方法

时间:2021-04-16 20:18:25

我是个“低调”的人,总不喜欢表达出来,对异性如此,对工作也是如此。在翔哥的鼓励下,决定把自己工作的一些经验和思考写下来,和同道们一起分享。

 

ASIC设计中一种通用型并行设计方法:

 

1)流水网的概念提出

    IC设计中的控制有串行和并行两种思想。状态机方法反应了串行控制思想,有软件的思路,比较好理解,新手比较喜欢用。流水线方法是并行处理的思想,比较抽象,因为其效率高,老手喜欢用。从“流水线“的名字就容易知道,它只是一维的一条线,一个设计中可以有很多条。小设计中可能很容易设计,但对于大设计,流水线会很多条,条与条之间还有交叉,给同步带来很大的麻烦。显然还用流水线的思想去考虑并行的硬件设计显然就力不从心了。因而我们提出二维的流水网的概念,以完善并行设计思想。

 

2)流水级的概念提出及实现

   一条流水线就像一个产品代理线。例如我是一件产品中间的一级代理,我有我的上级代理,我也有我的下级代理。对于很大的一个代理系统中,我只需要和我的上级和下级打交道就可以了,而不会跨级(例如我的上上级或者下下级)。只有我仓库有货,我就可以往下出货,出货成功的条件是刚好下级也要货。一方面只要仓库没有满,我就可以向上级要货,另一方面,即使我的仓库满了,但现在刚好会出货,我也可以向上级要货,入货成功的条件是刚好上级也有货。入货和出货同时进行,正是并行系统的体现。这是典型的互联网分布式设计思想。因而我们可以提出流水级的概念。在流水级中,我们用upen表示上级可以出货,uprdy本级可以入货,dnen表示本级可以出货,dnrdy表示下级可以入货。本级入货成功的条件是上级可以出货并且本级可以入货(upen&uprdy),本级出货成功的条件是本级可以出货,下级可以入货(dnen&dnrdy)。

 

3)流水节点的概念的提出及实现

   一条流水线里面的流水级的上下级都只有一个,但在两端的流水级则可能有多个在其他流水线上的上下级。流水节点实现他们之间的同步,从而形成流水网络。需要同步的每个流水级都有一组输入和输出信号(可能是upenuprdy的一组信号,也可以dnendnrdy的一组信号),本组输出信号就是除本组输入信号外的所有输入信号求与。

 

4)流水级,流水线,流水节点流水网的关系

流水级是一个点,多个流水级首尾相连可以形成流水线,多条流水线通过流水节点同步形成流水网。流水网可以实现任何的并行任务。