Chips 2.0:基於python語言的高級FPGA設計工具
您可以在如下地址試用Chips的web應用:http://dawsonjon.pythonanywhere.com/
使用C設計組件,使用Python設計FPGA在Chips里,設計過程類似於在單個晶元中實現的計算機網路。一個晶元由許多並行運行的互連組件組成。每個組件就像一台運行C程序的計算機。
這些組件之間通過匯流排相互通信。 晶元的設計——組件和以及組件之間的連接——這部分由Python實現。
Chips主要分為三部分:
1.一個Python庫,通過使用高速匯流排將數字組件連接在一起來構建和模擬晶元。
2. 一個既有的數字組件的集合。
3. 一個用C語言編寫的硬體編譯器,可以使用C語言編寫新的數字組件。
簡單例子代碼如下:
在更高的抽象層次上工作在Chips中,門,時鐘,複位,有限狀態機和流量控制的細節都由工具處理,這可以讓設計人員有更多的精力地思考架構和演算法。這樣做的好處如下:
設計過程更簡單。
更簡單的設計過程使得工作時間減少。
更簡單的設計過程使得bugs出現率較低。
Chips「自帶電池」
相對於傳統的硬體描述語言,對於什麼代碼能夠轉換成硬體語言有很多的限制條件。
使用Chips幾乎所有的合法代碼都可以轉換成硬體語音。包括除法,單精度和雙精度IEEE浮點,數學函數,三角函數,定時等待,偽隨機數和遞歸函數調用。
Python可提供驗證環境Chips提供了在Python中本地模擬設計的功能。Python是一種優秀的編程語言,包含許多應用領域第三方庫,使得它成為驗證晶元的完美環境。
像NumPy,SciPy和MatPlotLib這樣的庫將會對工程師有很大幫助,但這些僅僅是一小部分。
後台在後台方面,Chips使用了一些新穎的技術以達到緊湊高效的邏輯——軟體和硬體的混合體。
編譯器不僅將C代碼轉換為CPU指令,還能即時生成定製的流水線RISC CPU。CPU可以為任何特定的C程序提供最佳指令集。
通過最小化每個並發任務執行所需的邏輯,設計師可以降低功耗和資源或成本。性能的提升則可以通過增加單個設備中並發任務數量來實現(比如小型設備數十個,大型設備大約一千個或更多)。
雖然Chips生成的代碼緊湊且高效,但FPGA設計人員很高興知道如下事實:如果他們需要的話,他們仍然可以處理和性能相關的關鍵數據路徑,甚至還可以加入一些自定義的組件!
從github安裝$ git clone --recursive https://github.com/dawsonjon/Chips-2.0.git
$ cd Chips-2.0
$ sudo python setup install
從PyPI安裝
$ pip-install chips
英文原文:https://github.com/dawsonjon/Chips-2.0
譯者:少年
TAG:Python部落 |