開源硬件開發簡介

本文翻譯自做者 Mohamed A. Salem 和 Jamil I. Khatib 的文章 An introduction to open-source hardware development算法

本文介紹了硬件設計與開發開源硬件的新趨勢。它定義了開源硬件設計的術語、特色和要求。它介紹了基於 FPGA 的平臺是最適合開源設計實現的。它還討論了開源硬件的商業模式。編程

介紹和動機

開源軟件已經成爲軟件開發過程當中的重要組成部分。經過硬件與軟件的類比,所以也能夠考慮開源硬件。HDL 相似於傳統的軟件編程語言,可編程實現平臺則相似於通用處理器。網絡

開源現象有幾個特性,使其研究起來頗有意思,與工程設計學科相關。開源摒棄了傳統的工程概念,如規劃和原型設計,反而採用更有機的方法。例如,開源的 Linux 內核就是一個達到高質量的工程壯舉。架構

開源的經濟性違背了傳統的經濟原則,由於參與者都是自願的。COCOMO 對普遍分佈的開源程序進行了分析,認爲這些程序若是用常規手段建立,價值將達到 10 億美圓。開源是互聯網的產物,它使開源產品產生了實實在在的效果。框架

將開源應用於硬件,給硬件開發過程帶來新的好處。開源硬件將減小開發時間和設計成本。開源的 IP 核能夠重複使用,有黑盒模式和白盒模式。白盒模式容許設計者根據本身的要求定製特定的內核。編程語言

開源硬件定義

開源硬件的基礎是公佈硬件的全部必要數據。設計規範、HDL 文件、仿真測試臺、合成結果、使用說明和與其餘系統的接口都應該被記錄下來。必要的設計文檔的開放和對外公開應遵循相似 GPL 的許可條款。工具

根據類 GPL 許可證的條款,全部信息都是免費公開的。用於開發開放硬件的 EDA 工具也應該是開放的。資源的開放是容許社區重用、開發和改進開放設計的必要條件。性能

開源硬件的實現

傳統的硬件實現平臺有多種選擇。設計能夠適合 ASIC、custom silicon、FPGA 和 CPLD。問題是,什麼是適合開源硬件的設計?開發工具

硬件與軟件的類比指向可編程實現平臺;所以,答案是可編程邏輯器件,如 PLD、FPGA、CPLD 和 FPAA。軟件和硬件實現之間的類比適用於開發過程當中的不一樣方面。軟件程序運行在通用處理器上,但開放的硬件設計適合在可編程邏輯器件上。測試

軟件彙編器根據處理器的指令集生成彙編代碼。硬件合成工具使用數字或模擬庫,生成特定器件的網表。軟件編譯器根據處理器的指令集的彙編生成二進制代碼格式。FPGA 的編程元件從器件的組件庫的網表生成位流格式。

FPGA 的動態可重構性利用可編程邏輯陣列上硬件元件的實時動態加載和卸載,優化了硬件設計的性能。這種軟件和硬件執行和實現階段的類比有助於證實採用開源硬件策略的可行性。

商業模式

開源硬件有一套商業模式,包括如下幾種:

  • 設計發行:公司能夠像 Linux 發行版同樣,將成套的設計打包並出售發行版。OpenTech CD-ROM 就是這種方法的一個例子。
  • 設計技術支持:專家能夠爲開放設計提供支持。Asics.ws 是一家遵循這種模式的公司,發佈 IP 核心並向客戶收取技術支持費用。
  • 設計實現:公司能夠根據設計的發佈許可,實現設計、銷售設計、並向原設計者支付版稅。
  • 發佈:在 GPL 兼允許可證的控制下,只要實現被認爲是商業性的,就能夠發佈開放設計。

開源硬件路線圖

開源硬件路線圖能夠分爲如下三個主要階段。

  • 第一階段(初級)

初級階段的目標是開始開發一套簡單和通用的基於 FPGA 的原型板,可用於測試和實現簡單的開源 IP 核心。將使用開放的 EDA 開發工具,這樣設計者能夠向開源工具開發者提供反饋。基於 FPGA 的板卡設計者、開放 IP 核心設計者和開放 EDA 開發者之間的交流將改善整個開源硬件的開發過程,並進入下一階段。

  • 第二階段(高級)

這個高級階段假設已經進行了開源硬件宣傳。設計者將發佈先進的開源設計,包括 FPGA 原型板。市場對原型板的需求將蓬勃發展,從而鼓勵廠商以低價大量生產。低價存在的緣由是板卡設計原本就是開源的,市場需求大。

廠商能夠生產開源的器件編程工具,以擴大市場基礎。這個階段的目標是讓一個開源硬件用戶從互聯網上下載開放的設計,並在原型板上實現設計,就像計算機用戶下載開源軟件並在我的計算機的通用處理器上運行同樣。

  • 第三階段(運行時配置)

在這一階段,設計的複雜性和密度將達到傳統可編程邏輯器件的限制。某些可編程器件的動態可重構性的特色是,它們可以在運行時從新配置其邏輯和路由資源的子集,同時繼續正常工做。這種內在的動態從新配置的結果是在保持高性能的同時,適應複雜和密集的設計。

這一階段的目標是開源複雜系統的設計和實現。這假定系統模型的無縫架構,其中軟件和硬件之間的界限消失了。例如,有人努力將 Linux 內核做爲一個主要依靠動態可重構的純硬件平臺來運行。

發展中國家的高新技術推廣

開放源碼硬件可有助於縮小發展中國家與發達國家之間的技術、教育和文化差距。基於如下考慮,開放源碼有助於在這些地區創建一個高技術基地。

  • 開源硬件是工業和學術領域的開放資源。
  • 缺少高科技活動和公司。
  • 缺少高科技領域的專業知識。
  • 開源能夠與世界各地高科技領域的專家普遍交流。
  • 解決基於可編程邏輯器件實現平臺的 HDL 設計能夠負擔得起,由於芯片製造超出了經濟能力。
  • 開源可能有助於將焦點集中在發展中國家因爲市場限制而被隱藏的高科技人才和資質上。

新的計算引擎和互聯網

開源硬件能夠產生新一代的計算機和互聯網。計算引擎可能會從基於在硬件資源上執行的軟件指令的傳統結構,轉變爲處理硬件功能的算法,在可編程邏輯平臺上動態加載和卸載。

將來的我的計算機可能會由基於 FPGA 的電路板構建而成,這些電路板包含與外部世界的鏈接器。硬件設計者將能夠爲特定的 FPGA 計算機或將來的計算機編碼模塊或內核。互聯網做爲開源設計者的基本框架,可能會受到動態從新配置和開源硬件設計概念的影響。FPGA 原型板能夠鏈接到互聯網上,做爲自由計算機和調試機。

將來可能會產生一種新的互聯網服務,稱爲"硬件計算資源協議"或 HCRP。這可能使開發者可以設計出基於硬件內核的算法,並將其上傳到這些機器上運行和實現。開源設計、開源計算資源和全球網絡引入了一個創新技術和應用的新時代。

面臨的挑戰和建議的解決方案

設計人員面臨着一些問題,阻礙他們開發開源硬件。

  • EDA 工具的成本

設計人員沒法負擔 EDA 工具的費用。建議的解決方案是繼續開發開源 EDA 工具,並根據設計社區的反饋對其進行改進。Alliance 和 gEDA 是開放 EDA 工具的良好模式。

  • 制形成本

硬件製造相對昂貴。建議的解決方案是在基於 FPGA 的原型板上實現,或者使用形式化驗證技術對設計進行仿真。

  • 設計保護

建議的解決方案是使用相似於 GPL 的許可證來保護開放設計,根據特定的條款和規則爲原始設計者保留權利。

  • 市場

市場競爭主要是基於專利和知識產權,這些專利和知識產權維護了原始公司的全部權利。公司可能會反對開放源碼在某些方面爲受商業保護的產品提供替代品。

建議的解決方案是,公司能夠利用開放源碼做爲彌補研發時間和成本缺口的一種方式。研究人員可能會發現他們沒必要從新發明已有的輪子。公司可能會發現採用開源設計,並擁有大量的客戶基礎,是一種共贏的交易。公司能夠用可承受的價格完善開源設計,並利用社區提供的錯誤修復。最終的結果是尖端可靠的產品和實惠的價格。

  • 信譽

開源必須創建信心。所建議的解決辦法是,設計者應制做高質量和徹底記錄的設計。讓用戶羣體相信開放設計的可信度只是時間問題。例如,因爲開發社區努力提升質量和性能,Linux 操做系統已經變得可靠和有競爭力。

結論

本文介紹了開源硬件是硬件開發過程當中的一個新趨勢。它定義了被認爲是開放的硬件設計的要求。本文介紹了商業模式和開源硬件路線圖的各個階段。本文還討論了挑戰、問題和建議的解決方案。本文向工程界介紹了開源硬件,將其做爲一個相關的實踐、研究和將來研究領域。

相關文章
相關標籤/搜索