新聞中心

開放源碼硬件簡(jiǎn)史

——
作者: 時(shí)間:2007-10-18 來源:嵌入式在線博客 收藏
1.1 開放硬件史前時(shí)代 

早在60,70 年代,電子愛好者就開始互相交流電路設(shè)計(jì),PCB版圖, 形成了開放硬件的雛形。 在中國, 這個(gè)時(shí)期,出現(xiàn)了很多以業(yè)余無線電和電子設(shè)計(jì)為主題的書刊,雜志。 

集成電路出現(xiàn)后,越來越多的功能集成在一個(gè)芯片中, 電路越來越復(fù)雜, 設(shè)計(jì)制造集成電路的門檻越來越高, 開放和共享集成電路設(shè)計(jì)變得越來越困難。 

ISA(指令集構(gòu)架)的出現(xiàn), 使得電子行業(yè)出現(xiàn)了軟件和硬件大分工, 硬件廠商大規(guī)模生產(chǎn)具有ISA的芯片(如微處理器),以取得芯片生產(chǎn)的規(guī)模效應(yīng), 軟件廠商進(jìn)行軟件開發(fā),以適應(yīng)不同應(yīng)用之間個(gè)性化的需要。 

標(biāo)準(zhǔn)的ISA, 比如X86指令集,加上標(biāo)準(zhǔn)的硬件構(gòu)架, 比如PC,   使得軟件開發(fā)人員可以在同一平臺(tái)上互相交流軟件設(shè)計(jì), 這導(dǎo)致了90年代開放軟件的蓬勃發(fā)展。  

芯片設(shè)計(jì),在80年代90年代, 隨著EDA技術(shù)的日臻完善,硬件設(shè)計(jì)越來越自動(dòng)化,以HDL語言為核心的芯片設(shè)計(jì)越來越像軟件設(shè)計(jì)。 

90年代末, 隨著互聯(lián)網(wǎng)以及開放源碼軟件的盛行, 很自然地, 人們就想到,可以利用開放源碼軟件的理念進(jìn)行硬件設(shè)計(jì), 尤其是芯片設(shè)計(jì)。 

由于芯片設(shè)計(jì)的復(fù)雜性, 一次設(shè)計(jì)一個(gè)完整的系統(tǒng)難度是相當(dāng)大的, 因此, 開放源碼硬件社區(qū)通常采用的自底而上的方法進(jìn)行,也就是,先設(shè)計(jì)小的功能模塊,(稱為芯核,core, 或者IP),  每個(gè)功能模塊都工作正常了,再搭建大的系統(tǒng), 比如片上系統(tǒng)(SOC).   

1.2 開放源碼硬件的產(chǎn)生
 
1998年,Delft University of Technology 的一些學(xué)生和老師在互連網(wǎng)上發(fā)起Open Design Circuits Group, 目的是開放電路設(shè)計(jì)并把它發(fā)布在網(wǎng)上,盡管這個(gè)小組的活動(dòng)逐漸稀少, 但它啟發(fā)了后來最著名的兩個(gè)開放源碼硬件網(wǎng)站的產(chǎn)生:Opencores 和 OpenIPcore.  越來越多的學(xué)校學(xué)生選擇把他們的設(shè)計(jì)公布到網(wǎng)上,并把許多功能集成到一起,以期完成很復(fù)雜的功能。 在2000年的時(shí)候,OpenIPcore 合并入Opencores. 

Jamil Khatib是Opencores的中的教父級(jí)的人物,1975年出生的他,寫了非常多的奠基性的文檔,探討開放源碼硬件的定義以及商業(yè)模式,參與了最早的F-CPU,gEDA等項(xiàng)目的開發(fā),  2006年他在Brandenburg University大學(xué)念研究生。作為阿拉伯人,他的還專門撰文探討了開放源碼硬件如何對(duì)阿拉伯世界的技術(shù)轉(zhuǎn)移產(chǎn)生影響?!∷踔吝€建議在互聯(lián)網(wǎng)上除了http之外,還需要添加Hardware Computing Resource Protocol ,比如說 ``hcrp://'',專門用來進(jìn)行硬件資源下載.

隨著芯片設(shè)計(jì)越來越大,芯片設(shè)計(jì)越來越向SOC方向邁進(jìn),也就是在一個(gè)芯片中集成很多現(xiàn)有的IP核,以達(dá)到快速設(shè)計(jì)出系統(tǒng)的目的。這時(shí),IP核的可重用性和可更改性就成了最關(guān)鍵的問題。而開放源碼的IP核的無疑在這方面具有先天優(yōu)勢(shì)。因此,很多商業(yè)公司也逐漸加入了開放源碼硬件的行列,例如,SUN公司,IBM公司。商業(yè)公司進(jìn)行開放源碼往往是有附加條件的,比如,對(duì)于學(xué)術(shù)界免費(fèi),但是如果商業(yè)應(yīng)用,仍需要收費(fèi)?!?

1.3 開放源碼硬件現(xiàn)狀

目前,開放源碼的硬件中比較著名的項(xiàng)目有:F-CPU是第一個(gè)在互連網(wǎng)上設(shè)計(jì)的處理器, OpenCores中的OpenRISC項(xiàng)目,試圖開發(fā)一個(gè)完全免費(fèi)的RISC構(gòu)架的處理器以及之上的SOC,    歐洲航天局(ESA)開發(fā)的Sparc兼容的Leon2處理器?!?

與開放源碼軟件的完全免費(fèi)不同, 開放源碼硬件最終要物理實(shí)現(xiàn)才能驗(yàn)證其設(shè)計(jì)是否達(dá)到預(yù)期目的。 可編程邏輯器件(PLD), 特別是現(xiàn)場(chǎng)可編程門陣列(FPGA), 以其快速靈活,初期投入成本低廉, 成為開放源碼硬件最適合的開發(fā)平臺(tái)。因此,Opencores的設(shè)計(jì)主要都是在FPGA上進(jìn)行。

為了讓開放源碼社區(qū)的項(xiàng)目易于共同開發(fā)和溝通,通常會(huì)提供統(tǒng)一的開發(fā)板使用,例如,Opencores 社區(qū)廣泛使用的Micro FPGABoard和OCRP-1 board這兩款開發(fā)板,就是統(tǒng)一采用Xilinx公司的Vertix系列FPGA設(shè)計(jì)的。大名鼎鼎的OpenRisc1000 就是在這塊板上開發(fā)設(shè)計(jì)的。 

近年來,很多開放源碼的處理器及總線基本開發(fā)完成,下一步就是在上面運(yùn)行操作系統(tǒng),編寫各種設(shè)備驅(qū)動(dòng)程序, 并配上豐富的應(yīng)用軟件。目前,Leon2 和Openrisc 1200 均可以成功運(yùn)行Linux系統(tǒng),為開放源碼硬件和開放源碼軟件的社區(qū)融合打下了基礎(chǔ)。 

1.4 中國開放源碼硬件發(fā)展?fàn)顩r

中國有案可查的開放源碼硬件項(xiàng)目是2001年3月啟動(dòng)的OpenARM項(xiàng)目, OpenARM并不像他的名字所隱含的那樣ARM處理器的設(shè)計(jì)相關(guān)。實(shí)際上,這個(gè)項(xiàng)目只是利用了現(xiàn)成的ARM 芯片,外面加上一塊MEMEC 公司2002年3月(現(xiàn)已被Avenet收購)捐贈(zèng)的Xilinx FPGA作為外圍擴(kuò)展的模塊。  FPGA的引入? 使得該設(shè)計(jì)可以很容易地用HDL 代碼的形式進(jìn)行管理和跟蹤。該項(xiàng)目后期還充分引入了OpenCores社區(qū)已有的成果,如Wishbone總線。 

有趣的是,開放源碼軟件庫sourceforge中也有一個(gè)OpenARM, 這個(gè)項(xiàng)目的ARM指的是”Application Response Measurement” , 而不是我們所說的ARM 處理器。

在“中國芯“盛行的幾年里,不少學(xué)校和研究單位參考開放源碼的處理器設(shè)計(jì)了自己的微處理器,這個(gè)時(shí)期,中國利用開放源碼硬件的資源進(jìn)行IC設(shè)計(jì)的方法開始悄然流行。

1.5 開放源碼硬件展望

擺在開放源碼硬件支持者面前的一個(gè)頗有趣的問題是,”如果你要自己做一頓免費(fèi)的晚餐,那么是否你做飯用米必須是自己種的,做飯用的 鍋碗瓢盆也必須是免費(fèi)獲得的 ?”.   

一部分開放源碼的信仰者堅(jiān)持認(rèn)為上述問題的答案是肯定的。因此,有一些人堅(jiān)持開發(fā)了例如gEDA 的開放源碼EDA工具。 另一部分人則認(rèn)為, 開放源碼硬件也可以利用商業(yè)工具和商業(yè)原材料, 只要在此基礎(chǔ)上做的系統(tǒng)設(shè)計(jì)開放出來就可以了。 

在利用商業(yè)工具進(jìn)行開放源碼的設(shè)計(jì)方面, Xilinx 公司走在了業(yè)界前列, 例如,Xilinx公司開發(fā)的8位軟處理器Picoblaze 是一種開放源碼的8微處理器,而Xilinx公司的32位軟處理器Micoblaze是在Xilinx公司EDK軟件下支持的處理器,Xilinx公司給出了非常多的可供下載的參考設(shè)計(jì),頗具參考價(jià)值。 再加上對(duì)uclinux的官方支持,可以在Xilinx提供的EDK工具的基礎(chǔ)上,利用Xilinx的參考設(shè)計(jì)并加以改進(jìn), 迅速搭建嵌入式系統(tǒng), 并在uclinux的基礎(chǔ)上完成應(yīng)用軟件設(shè)計(jì).  

在Xilinx 率先宣布65nm 的FPGA量產(chǎn)時(shí), 廣大開放源碼硬件愛好者面臨的是可以容納數(shù)千萬門的可編程邏輯。 傳統(tǒng)的自底而上的設(shè)計(jì)很難快速地構(gòu)建如此大的系統(tǒng)。 電子系統(tǒng)級(jí)設(shè)計(jì)(ESL) 可以用高層次語言來描述系統(tǒng)需求,并自動(dòng)生成硬件設(shè)計(jì)。例如,Xilinx的XtremeDSP方案, 可以在Matlab中,用Simulink這種圖形化的方式搭建復(fù)雜的數(shù)字信號(hào)處理系統(tǒng)(例如3G/B3G數(shù)字前端), 

在開放源碼硬件世界, 也出現(xiàn)了諸如利用SystemC等高層次語言描述的系統(tǒng)(例如SystemCDES).  可以預(yù)計(jì),隨著開放源碼硬件進(jìn)一步普及和成熟,軟件,硬件,系統(tǒng)設(shè)計(jì),算法設(shè)計(jì)等會(huì)在開放源碼的旗幟下日趨融合,  數(shù)年之后,可下載的硬件設(shè)計(jì) (Downloadable Hardware)可以出現(xiàn)在每個(gè)人的掌上。 

1.6 開放源碼硬件遇到的挑戰(zhàn)

開放源碼硬件從誕生到現(xiàn)在將近10年了,很多人為它的發(fā)展付出了大量的努力, 但至今采用開放源碼硬件運(yùn)用在實(shí)際應(yīng)用系統(tǒng)中的案例幾乎沒有。究其原因,開放源碼硬件面臨的問題和挑戰(zhàn)主要有:

1)免費(fèi)EDA工具的獲取?!?

盡管有Alliance 和 gEDA 等EDA工具可供使用,但它的功能和易用性和商業(yè)EDA軟件相比還是不能相提并論?!?duì)于“非完美主義”的開放源碼硬件設(shè)計(jì)者來說,適當(dāng)采用商業(yè)軟件是一個(gè)可以考慮的方案?!≡谏虡I(yè)軟件中,由于FPGA廠商的軟件工具(比如XILINX的ISE, EDK,CHIPSCOPE,SYSTEM GENERATOR等)可以通過大學(xué)計(jì)劃獲得捐贈(zèng),使得利用強(qiáng)大商業(yè)軟件的支持進(jìn)行開放源碼硬件設(shè)計(jì)變得可能。 

2)板卡制造成本

自己制作一塊FPGA原型系統(tǒng)板的成本是相當(dāng)可觀的, 

3)上市時(shí)間

在電子產(chǎn)品數(shù)月就換代的時(shí)代,上市時(shí)間是電子系統(tǒng)設(shè)計(jì)的一個(gè)關(guān)鍵因素,即使是采用商業(yè)IP,  都有可能遇到意想不到的整合問題;而 目前開放源碼硬件在文檔完備性,穩(wěn)定性上,技術(shù)支持方面存在的諸多問題,更是使務(wù)實(shí)的設(shè)計(jì)者望而確步。

4)軟件豐富性和工具鏈問題

如果采用開放源碼的處理器,這就意味著從指令集到編譯器到調(diào)試器都是重新開發(fā)的,幾乎所有的軟件都需要移植和重新編譯,這使得開放源碼的處理器的開發(fā)尤其困難。如果設(shè)計(jì)實(shí)際系統(tǒng),人們更關(guān)心的是如何能解決問題。 商業(yè)處理器更能滿足這種需要。

5)廠商支持

 Linux得以蓬勃發(fā)展,除了廣大愛好者的奉獻(xiàn)之外,IBM 等大公司的積極推動(dòng)也起了非常大的作用。 而開放源碼硬件的發(fā)展,也離不開相關(guān)硬件廠商的支持?!?

正是由于這些挑戰(zhàn)的存在,開放源碼硬件的活動(dòng)目前更多的集中在大學(xué)和研究機(jī)構(gòu)中,尤其在不發(fā)達(dá)國家中,更多得起著硬件設(shè)計(jì)知識(shí)傳播的作用。


關(guān)鍵詞: 源碼

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉