具有相同灵敏度列表的多个进程

时间:2014-03-05 15:18:54

标签: vhdl

通过在一个架构中使用具有相同灵敏度列表的多个进程,是否会产生任何不良影响?

我在架构中并行发生了几个进程,一个进程从主机读取输入作为从机写入输入,一个用于在主机请求和一个计算时将输出写回主机。所有进程都是时钟进程,其灵敏度列表仅包含复位和时钟信号。

每个进程写入自己的信号,其他进程可以从中读取信号,即没有两个进程写入同一信号的实例。

可以在一个大的过程中实现所有内容,但它会更麻烦。

这种实施是否会产生任何不利影响?

是否有任何理由支持不那么优雅的大型流程而不是几个较小的流程?

1 个答案:

答案 0 :(得分:2)

完全没有。我的大部分流程都有相同的敏感度列表:(reset, clock),这并不罕见。

如果一个大流程真的不那么优雅,并且使用多个较小流程的实现真正更清晰,更容易理解,那么请继续设计。

我倾向于在我的设计中使用更少,更大的流程,但是将它们放在不连续的部分中以便更容易在流程中分离功能,但这不是一个具体的规则:我不会在一个独立的状态机中实现例如,单个过程。

我建议反对的是经常看到的两种风格:

  1. 2进程(或3进程)状态机,其中一个进程纯粹是组合的,具有难以正确的复杂敏感性列表。单一流程SM更简单,更短,至少也很容易理解。
  2. 大量的微小进程,每个进程控制一个或两个信号,这些信号是其他微小进程的输入,这样您就可以花一整天时间跟踪从进程到进程的信号,而无需查找实际工作内容!
  3. 如果我理解你的描述你有3个块:接收器,数据处理器,发射器;这听起来像是一个很好的功能分离给我。 例如,如果它们是单独的进程(甚至是单独的实体),您可以更轻松地替换接收器或发送器,或者将它们与不同的数据处理器一起使用。