官术网_书友最值得收藏!

前言

2015年底的智能硬件展上,和FPGA原廠的兩位大學計劃經理閑聊的當兒,被問及對于諸如Xilinx Microblaze與Altera Nios Ⅱ這樣的FPGA內嵌軟核處理器的看法時,筆者的第一反應便是“它的實用價值可能并不大,但是非常具有教學價值”。此話一出,大家也一定很好奇,且聽筆者娓娓道來。

筆者以為,軟核處理器哪怕是在今天的Zynq或SoC FPGA(內嵌多個硬核ARM Cortex-A9處理器的FPGA器件)還未面世之時,它的實用性其實就一直頗具爭議。硬核處理器經過優化設計,已經流片成型,用戶拿到手以后,一般也無法再更改處理器本身的性能參數,其使用量通常也非常大,可靠性、穩定性都會做得很好;而反觀FPGA中內嵌的軟核處理器,其本身就不是針對任何一個特定器件型號的FPGA定制的,而是FPGA器件的一個“通用”軟核,因此,它在FPGA器件上跑起來勢必在性能上也會大打折扣,與此對應的,其可靠性、穩定性恐怕也欠佳。當然,并不是說在FPGA器件上跑起來的軟核處理器就一定差強人意,筆者并沒有一棍子打死的意思,并不排除某些發燒級FPGA設計者能夠從時序設計和底層布局布線上將軟核處理器的性能發揮到極致的情況,只是一般比較來看,硬核處理器確實在性能、成本、可靠性等方面相對于軟核處理器都有更明顯的優勢。因此,放眼望去,很難找到有多少電子產品中用上了軟核處理器,但與此相反的是硬核處理器則無處不在。

話說回來,FPGA器件中內嵌的軟核處理器也并非一無是處,否則它就沒有存在的意義了,話說“存在即是合理”。一點不假,FPGA器件中的軟核處理器是可定制的,它的性能水平通常有多個可選項供設計者“編程”設定,并且其周邊的外設也可以完全“定制化”,從這點來看它比硬核處理器要靈活很多。某些特別需要這種“靈活定制”的場合通過軟核處理器還真是“門當戶對”了,只是要玩轉這樣一個靈活的嵌入式處理器系統也并非易事,它涉及純粹的軟、硬件設計以及FPGA等多方面的知識,一個能真正玩轉軟核處理器“靈活性”的FPGA設計者,一定對處理器及其外設架構了然于心。換句話說,如果大家都還記得當年大學里面那門純理論的“微機原理”課程,那么玩轉軟核處理器的過程就是“活生生”的實踐版“微機原理”課程的再現。

說到這,或許讀者有些明白了,沒有錯,之所以說FPGA器件的軟核處理器具有很高的教學價值,就是基于它的實踐過程中能夠幫助讀者對整個處理器的架構有更清楚的了解和認知。比如筆者在學習Nios Ⅱ處理器的過程中,需要將處理器的數據總線、指令總線和外設進行連接;需要分配地址;需要連接中斷;需要自己編寫外設連接到總線上;需要揣摩外設的尋址方式、讀和寫時序,甚至一些常見通信接口的時序……的確,掌握了這些東西,很大程度上就能幫助學習者對嵌入式系統的整個架構有了一個更全面的認知,這些體驗是傳統理論書本給不了的。除此以外,它也是很多正式產品開發調試過程中的好幫手,例如在很多產品的原型開發或測試驗證階段,恰巧需要一個簡單的CPU干點活,這時軟核處理器也就派上用場了。

以筆者自身的經歷來說,也正是通過軟核處理器的“磨練”,才對軟硬件的認知有了很大的提升,雖然這些年多從事偏于硬件設計方面的工作(包括一些FPGA設計工作),但是在很多的調試過程中,尤其是需要軟硬件協同調試的過程中,往往能夠快速地區分和定位問題是出于軟件還是硬件,甚至還能夠協助軟件工程師解決一些具體的問題。筆者以為,軟核處理器的教學意義在于,它能夠幫助學習者深入了解處理器系統設計的架構。而在如今的電子產品設計中,軟硬件分工越來越細,很難在實際的開發過程中跨越“鴻溝”,但是具備這樣系統性設計思維的工程師,必定是“人見人愛”的。

基于以上這些考量,筆者在第一本Nios Ⅱ圖書《愛上FPGA開發——特權和你一起學Nios Ⅱ》出版五年后(由于書中的平臺較舊,考慮到市場因素,第一次印刷售罄后就沒有復印),決定重新梳理這方面的知識,在Quartus Ⅱ的Qsys平臺上大干一場,同時借助Altera Cyclone IV FPGA入門平臺“勇敢的芯”(可訪問淘寶網店了解該FPGA平臺詳情:https://myfpga.taobao.com/),和大家一起重拾玩轉Nios Ⅱ嵌入式處理器的激情。

作者

2016年1月于上海

主站蜘蛛池模板: 勃利县| 个旧市| 漳州市| 襄城县| 屏东市| 蓬莱市| 双牌县| 隆安县| 象州县| 纳雍县| 龙里县| 阳山县| 永安市| 孙吴县| 搜索| 玉屏| 昌吉市| 马边| 汕头市| 满洲里市| 鄂尔多斯市| 余干县| 土默特左旗| 汉中市| 来宾市| 清河县| 雅江县| 富平县| 平阴县| 社会| 信阳市| 家居| 南雄市| 延安市| 苏州市| 夏河县| 调兵山市| 华坪县| 临夏市| 莱芜市| 宝丰县|