簡體   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