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

Vhdl 具有多个具有相同灵敏度列表的过程,vhdl,Vhdl,在一个体系结构中有多个具有相同灵敏度列表的进程会产生任何不必要的影响吗 在一个体系结构中,我有几个并行的进程,一个进程作为从进程从写入输入的主进程读取输入,一个进程在主进程请求时将输出写回主进程,还有一个进程进行计算。所有进程均为时钟进程,其灵敏度列表仅包含复位和时钟信号 每个进程写入自己的信号,其他进程可以从中读取,即没有两个进程写入同一信号的实例 在一个大流程中实现所有内容是可能的,但会更加麻烦 这样的实施是否会产生不利影响 有什么理由支持不太优雅的一个大流程而不是几个小流程吗?一点也不。我

在一个体系结构中有多个具有相同灵敏度列表的进程会产生任何不必要的影响吗

在一个体系结构中,我有几个并行的进程,一个进程作为从进程从写入输入的主进程读取输入,一个进程在主进程请求时将输出写回主进程,还有一个进程进行计算。所有进程均为时钟进程,其灵敏度列表仅包含复位和时钟信号

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

在一个大流程中实现所有内容是可能的,但会更加麻烦

这样的实施是否会产生不利影响


有什么理由支持不太优雅的一个大流程而不是几个小流程吗?

一点也不。我的大多数流程都有相同的敏感度列表:
(重置,时钟)
,这并不罕见

如果一个大流程真的不那么优雅,而使用多个小流程的实现确实更清晰、更容易理解,那么就继续这样设计吧

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

我建议反对两种常见的风格:

  • 2进程(或3进程)状态机,其中一个进程是纯组合的,具有复杂的敏感度列表,很难得到正确的结果。单进程SM更简单、更短,并且至少同样容易理解
  • 大量的微小进程,每个进程控制一个或两个信号,这些信号是其他微小进程的输入,因此您可以花一整天的时间跟踪进程之间的信号,而不必找到实际的工作原理 如果我理解你的描述,你有3个模块:接收器,数据处理器,发射器;这听起来像是一个很好的功能分离。
    例如,如果接收器或发射器是单独的进程(或甚至是单独的实体),您可以更轻松地更换它们,或使用不同的数据处理器重新使用它们。

    WRT问题1:使用VHDL-2008“进程(全部)”,灵敏度列表参数消失了,编写良好的双进程状态机与编写良好的单进程状态机没有什么不同。各有所长。例如,在一个两进程状态机中,注意默认所有输出以避免锁存-这也是代码简化和提高可读性的关键。在单进程状态机中,请注意重置所有输出,否则这些信号在重置期间具有保留其值的逻辑-通常是在重置激活时关闭的负载启用。同意,我应该在-2008中提到进程(全部)。在一些单进程SMs中,我有一些输出的默认值。然后,这些输出的单独重置将是多余的。