繁体   English   中英

多刻度操作推荐的MyHDL设计模式是什么?

[英]What's the recommended MyHDL design pattern for multi-tick operations?

我正在尝试通过编写仅包含少量指令和操作的非常简单的机器来学习MyHDL。 我正在努力的是设计机器以处理需要多个时钟周期才能解决的操作的最佳方法。 目前,我编写的所有硬件组件都只需一个勾即可解决,因此它是我遇到麻烦的控制单元。

例如,假设我的机器的所有操作都需要1到3个时钟周期才能完成,这意味着每条指令需要3个周期(因为我现在不做任何并行处理)。

这意味着我的机器需要三个阶段,或者就HDL而言,需要三个时钟敏感逻辑块。 机器的一次完整迭代如下所示:

  • 控制A
    • 勾号::组件
  • 控制B
    • 勾号::组件
  • 控制C
    • 勾号::组件
  • 回到A

由于没有并行性,并且每个阶段都使用共享硬件,因此我希望按顺序顺序触发控制块。 为此,我需要多个时钟吗? 组件时钟是一个时钟,而控制时钟是一个时钟,在每个控制阶段结束时对组件时钟进行滴答? 但随后,控件A,B和C将在每个时钟滴答时一起执行。 然后,我是否需要四个时钟,每个组件一个时钟,每个控制阶段一个时钟,在每个控制阶段结束时组件时钟和下一阶段的时钟提前? 还是我只需要一个时钟和一些布尔信号来告诉每个阶段它们应该何时进行(每个控制阶段都会检查一个标志,如果已设置,它们将执行并为下一个阶段设置标志)?

根据您的描述,我认为您可以尝试使用状态机来解决您的问题,并将电路分成独立的单元。

由于您说过不想在设计中添加任何并行性,因此可以尝试将设计保持在只有一个时钟的单个电路中,并使用寄存器控制行为。 考虑到每个时钟将采取一项措施,请尝试描述电路。

尝试添加一些示例代码和更具体的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM