1. 程式人生 > >MyHDL中文手冊(一)——概述

MyHDL中文手冊(一)——概述

硬體開源程式設計利器MyHDL簡介


(本系列基於MyHDL 0.10.0 版 on Python3)

MyHDL專案的目標是通過python語言的優雅和簡潔性來增強硬體設計者的能力。

MyHDL是一種免費、開源的軟體包,用於使用python作為硬體描述和驗證語言。python是一種非常高階的語言,硬體設計者可以利用它的全部力量來建模和模擬他們的設計。此外,可以將設計轉換為verilog或vhdl語言。這提供了一個融入傳統設計流程的切入口。

建模

python的強大和清晰性使MyHDL成為高層次建模的理想解決方案。python以為複雜建模問題提供優雅解決方案而聞名。此外,python對於快速應用程式開發和試驗是非常優秀的。

MyHDL背後的關鍵思想是使用python生成器來建模硬體併發性。生成器最好被描述為可(從暫停狀態中)恢復函式。MyHDL生成器類似於verilog的always塊和vhdl中的過程。

一個硬體模組(MyHDL術語中的塊)建模為返回生成器的函式。這種方法使支援諸如任意層次結構、命名埠關聯、例項陣列和條件例項化等特性變得簡單明瞭。此外,MyHDL提供了實現傳統硬體描述概念的類。它提供了一個訊號類來支援生成器之間的通訊、支援面向位操作的類以及列舉型別類。

模擬與驗證

內建模擬器執行在python直譯器的頂部。它支援通過觀看波形來跟蹤vcd檔案中的訊號變化。

使用MyHDL,python單元測試框架可以用於硬體設計。雖然單元測試是一種流行的現代軟體驗證技術,但在硬體設計領域還是比較少見的。

MyHDL還可以作為verilog設計的硬體驗證語言,通過與傳統的hdl模擬器進行模擬。

轉換為Verilog語言與VHDL語言

遵從一定的限制後,可將MyHDL設計轉換為verilog語言或vhdl語言,這是切入傳統設計流程的一條路徑,包括綜合和實現。可轉換子集受到限制,但比標準可綜合子集要寬得多。它包括可用於高層次建模和test benches的功能。

轉換器處理一個已完全解析的設計例項。因此,原有的設計結構可以任意複雜。此外,轉換限制僅適用於生成器內部的程式碼。除了外部生成器,python的能力可以充分釋放,而不影響可轉換性。

最後,轉換器自動地實現了許多用verilog或vhdl編寫困難的任務。一個顯著點是自動處理有符號算術問題。

  1. http://www.myhdl.org/