對于sopc的理解 很多人把主要精力放到了nios的定制上,認(rèn)為可定制的CPU這一靈活的功能就是sopc的靈魂,實現(xiàn)了nios后,把fpga作為一個傳統(tǒng)的mcu來使用,這實際上是一種揚長避短的行為,試想,相對于mcu系統(tǒng)來說,僅僅為了那一點點靈活性,就要憑空在系統(tǒng)設(shè)計中增添一項定制工作而得到一個并不是非常穩(wěn)定可靠的cpu,然后用一個并不是很成熟的開發(fā)環(huán)境去進行和mcu系統(tǒng)類似的開發(fā),這實在不是產(chǎn)品開發(fā)之道。當(dāng)然,可以把邏輯電路也一同用fpga來實現(xiàn),這就有那么一點sopc的味道了。我個人對sopc的看法如下: 1:sopc應(yīng)該是nios系統(tǒng)+硬實時部分+邏輯電路的一個組合體,其中nios負責(zé)數(shù)據(jù)管理,通訊,人機交互等實時性相對較低的任務(wù),硬實時部分則是獨立于nios系統(tǒng),充分利用現(xiàn)有IP,用hdl語言實現(xiàn)的某些實時性可靠性要求較高的關(guān)鍵部分,它可以和nios系統(tǒng)通過自定義的接口通訊。至于邏輯電路,這本就是fpga的強項,沒啥可說的,做一些接口以及邏輯處理吧。 2:對于nios系統(tǒng),ALTERA已經(jīng)推出了相對比較完整的方案,現(xiàn)在nios在功能上來講,已經(jīng)非常全面了,并且也有多種os可供選擇,據(jù)說年底要推出帶有mmu的nios,到時候,linux應(yīng)該會在nios上大行其道。 3:對于我認(rèn)為最關(guān)鍵的硬實時部分,我認(rèn)為這才是sopc系統(tǒng)的精華所在,但由于純粹要用hdl語言實現(xiàn),最多是結(jié)合一些現(xiàn)有的ip,因此難度較高,我覺得這也正是ALTERA一直鼓吹sopc但效果卻并不理想的根本原因,不過ALTERA自有妙計,于是推出了dsp builder。 4:至于dsp builder,純粹是為了降低系統(tǒng)硬實時部分編碼過于困難的一個工具,目前ALTERA推出的參考方案多是音視頻等信號處理領(lǐng)域,但是由于靠上了matlab這個大牛(控制領(lǐng)域事實上的標(biāo)準(zhǔn)),自然是要在控制領(lǐng)域多下功夫,只是目前還不支持浮點,并且相應(yīng)的IP也不齊備,但是基于matlab的直接代碼生成,肯定是一個方向,相信dsp builder會馬上支持浮點的,并且應(yīng)該會在控制領(lǐng)域有所動作。實際上,dsp builder或者說XILINX的SYSTEM generator的推出,就是為了降低開發(fā)難度,配合nios實現(xiàn)sopc系統(tǒng),以此來和傳統(tǒng)的dsp處理器市場。 5:舉一個例子說明一下sopc的作用,以pci總線的視頻卡來講,一般來說都是dsp處理器完成視頻信號處理(實時性要求較高)、數(shù)據(jù)后處理、與pc通訊等功能,系統(tǒng)中如果采用fpga,大都是實現(xiàn)pci的橋接器以及其他邏輯功能,現(xiàn)在有了dspbuiler,那么視頻信號處理這一實時性要求較高的功能完全可以用dspbuilder直接生成,然后用nios代替?zhèn)鹘y(tǒng)dsp處理器的數(shù)據(jù)后處理和通訊功能,同時在集成pci接口和其他邏輯功能,如此則sopc大事成矣。 6:在控制領(lǐng)域,關(guān)鍵問題是controller的實現(xiàn),首先在控制領(lǐng)域,我認(rèn)為nios2直接做控制器還難當(dāng)大任,而且就算拋開可靠性、成熟性等因素,控制領(lǐng)域一般都是需要硬實時(hard real-time),同時一般還會有大量的浮點處理,我個人估計nios2恐怕難以實現(xiàn),這些已經(jīng)決定了controller必須用硬件實現(xiàn),也就是用vhdl寫控制器,這樣做的話,對于系統(tǒng)中所需要的浮點運算,最好用相應(yīng)的ip實現(xiàn),否則恐怕很難。
|