目錄包含 GHDL 的原始程式碼、VHDL(一種硬體描述語言 (HDL))的開源分析器、編譯器、模擬器和(實驗)合成器。 GHDL 不是解釋器:它允許您分析和詳細說明從設計生成機器碼的原始程式碼。本地程式執行是高速仿真的唯一途徑。
完全支援 IEEE 1076 VHDL 標準的 1987、1993、2002 版本,部分支援 2008 和 2019 修訂版。
部分支援 PSL。
透過使用程式碼產生器(LLVM、GCC 或僅限 x86_64/i386,內建的),它比任何解釋型模擬器都要快得多。它可以處理非常大的設計,例如 leon3/grlib。
GHDL 可在 GNU/Linux、Windows 和 macOS 上運作;在x86
、 x86_64
、 armv6/armv7/aarch32
、 aarch64
和ppc64
。您可以免費下載夜間資產、使用 OCI 映像(又稱 Docker/Podman 容器),或嘗試在您自己的電腦上建置它(請參閱下方的「取得 GHDL」 )。
可以將波形寫入 GHW、VCD 或 FST 檔案。結合基於 GUI 的波形檢視器和優秀的文字編輯器,GHDL 是用於編寫、測試和模擬程式碼的非常強大的工具。
透過 Verilog 程式介面 (VPI) 和/或 VHPIDIRECT 支援與國外應用程式的聯合模擬。請參閱 ghdl.github.io/ghdl-cosim。
可將任意複雜的 VHDL 設計綜合到 VHDL 1993 網表中,該網表可以在開源或供應商綜合框架中隱式或明確使用。
GHDL 是免費軟體:
GHDL 旨在與多種流行的開源工具無縫集成,允許使用者利用模擬和綜合工作流程的附加功能。
其中一個關鍵整合是與領先的開源綜合工具 Yosys 的整合。使用 ghdl-yosys-plugin,GHDL 可以用作 Yosys 的前端,使用戶能夠直接綜合 VHDL 設計。這使得無需離開 GHDL 環境即可從模擬轉向綜合,從而簡化了設計流程。
GHDL 還與 cocotb 集成,cocotb 是一個基於協程的協同模擬框架,允許對 VHDL 設計進行 Python 驅動的測試。這對於用 Python 編寫複雜的測試平台以及與 VHDL 模擬即時互動特別有用。
在驗證方面,GHDL 支援與 OSVVM、UVVM 和 VUnit 等框架集成,為使用者提供用於驗證 VHDL 設計的全套工具。這些驗證庫支援先進的測試技術,例如約束隨機驗證、功能覆蓋和自動回歸測試。
這些第三方整合共同使 GHDL 成為數位設計、模擬、驗證和綜合的綜合工具,適合個人開發人員和大型團隊。
預建置包:
使用 Docker :
對於那些喜歡容器化的人來說,GHDL 也可以作為 Docker 映像提供。如果您想避免手動管理依賴項或需要跨不同電腦的一致環境,這尤其有用。您可以使用 ghdl/docker 或 hdl/containers 中的容器,這兩個容器都提供安裝了 GHDL 的預先設定環境。在 Docker 容器內執行 GHDL 可確保您的設定與主機系統保持隔離,從而更輕鬆地在不同平台上進行維護和複製。此選項非常適合尋求簡化、無麻煩安裝的用戶。
從原始碼建構 GHL :
高級用戶可以選擇從原始程式碼建立 GHDL,從而允許自訂和存取實驗功能。從原始碼建置對於預先建置包未涵蓋的平台或配置也很有用。建置 GHDL 指南提供了有關如何編譯 GHDL 的詳細說明,包括選擇您首選的後端(LLVM、GCC 或 mcode)。此過程使用戶能夠完全控制他們的設置,並允許他們根據自己的特定需求自訂 GHDL。
平台特定註解:
apt
、 dnf
或pacman
進行安裝,具體取決於發行版。安裝通常很簡單,預先建置的軟體包會定期更新。GHDL 具有多種優勢,使其成為 VHDL 模擬和綜合的強大工具。主要優點之一是它的本機程式碼生成,與解釋模擬器相比,它可以實現更快的模擬時間。這種效能提昇在大型複雜設計中尤其明顯,其中模擬速度可能是關鍵因素。
除了效能之外,GHDL 還具有高度的通用性。它支援VHDL標準的多個修訂版,包括1987年、1993年、2002年、2008年和2019年版本。這種廣泛的兼容性使 GHDL 適用於傳統專案以及尖端設計。無論您使用較舊的 VHDL 標準還是最新修訂版,GHDL 都可以靈活地處理所有這些標準。
另一個重要的好處是 GHDL 的跨平台支援。它運行在Linux、Windows、macOS等主流作業系統上,支援x86、x86_64、ARM、PPC64等多種架構。這使得開發人員可以在各種硬體配置上使用 GHDL,讓廣泛的用戶可以使用它。
GHDL 與流行的開源工具(例如用於合成的 Yosys 和用於驗證的 cocotb)的整合進一步增強了其實用性。這些整合允許使用者將 GHDL 的功能擴展到模擬之外,使其成為 VHDL 設計、驗證和綜合工作流程的全面解決方案。
GHDL 歡迎社區做出貢獻。無論您是對改進文件、修復錯誤還是添加新功能感興趣,都有多種參與方式。貢獻是幫助改進該工具和了解更多有關 GHDL 內部工作原理的好方法。
您可以透過以下方式開始貢獻:
尋找要解決的問題:查看 GitHub 儲存庫上的未解決問題。問題通常按難度或類型進行標記(例如,對於初學者來說“好第一個問題”)。您也可以提出自己的想法或改進措施。
分叉並複製儲存庫:選擇要處理的問題後,將 GHDL 儲存庫分叉到您自己的 GitHub 帳戶。將分叉存儲庫克隆到本地計算機以進行更改。
建立一個新分支:最好為您正在處理的每個問題或功能建立一個新分支。這有助於隔離您的更改,並使維護人員更容易審查您的工作。
提交拉取請求:進行變更並提交到您的分支後,向主 GHDL 儲存庫提交拉取請求 (PR)。請務必清楚描述您的 PR 所涉及的內容以及任何相關的上下文或測試步驟。
有關更詳細的指南,請參閱我們的貢獻指南(建立時),其中包括編碼標準、測試說明和貢獻的最佳實踐。
CLI 工具允許分析、編譯、模擬和(實驗)綜合,以產生 VHDL 1993 網表。它是用 Ada 和 C 編寫的,支援三種不同的後端,有時被命名為ghdl_mcode
、 ghdl_gcc
和ghdl_llvm
。這是大多數用戶的切入點。
[實驗] ghdl-yosys-plugin 是 GHDL 的集成,作為 Yosys Open SYNthesis Suite 的前端插件模組,它使用libghdl
庫(使用--enable-synth
構建)。
ghdl-ls
(pyGHDL 的一部分,見下文)在 Python 中實作語言伺服器協定 (LSP)。 GHDL 提供的 VHDL 分析功能可透過libghdl
存取。它可以整合在文字編輯器或 IDES 中,例如 Vim、Emacs、Atom 或 Visual Studio Code。請參閱 ghdl/ghdl-語言-伺服器。
ghdl-ls
為 VHDL 提供語言支援。 libghdl
是一個共享庫,其中包括常規功能的子集以及擴充工具(即pyGHDL
)使用的一些功能。它是與常規 GHDL 一起建構的,它支援不可綜合和可綜合的程式碼。儘管如此,這不是針對用戶的,而是針對構建在核心之上的工具的。當與--enable-synth
一起設定時,此共用程式庫也包含綜合功能。
pyGHDL 是libghdl
的 Python 介面。目前,它僅由ghdl-ls
使用;但是,對於願意基於 GHDL 建立 Python 實用程式的高級用戶來說,它可能很有用。將 libghdl 綁定到 pyVHDLModel 的工作正在進行中(請參閱pyGHDL.dom
)。
ghdl_simul
支援解釋模擬,由於歷史原因且僅可用於開發/調試。與“常規”編譯模擬相比,它非常緩慢,並且並非所有功能都受支援。