FPGA和微控制器有什麼區別呢?

蔚藍忍者發表於2020-10-10

[導讀]什麼是FPGA,微控制器,DSP,ASIC?你真的知道嗎?ASIC原本就是專門為某一項功能開發的專用整合晶片,比如你看攝像頭裡面的晶片,小小的一片,整合度很低,成本很低,可是夠用了。一個山寨攝像頭賣才賣 30塊,買一片ARM多少錢?後來ASIC發展了一些,稱為半定製專用積體電路,相對來說更接近FPGA,甚至在某些地方,ASIC就是個大概 念,FPGA屬於ASIC之下的一部分。
 

什麼是FPGA,微控制器,DSP,ASIC?你真的知道嗎?ASIC原本就是專門為某一項功能開發的專用整合晶片,比如你看攝像頭裡面的晶片,小小的一片,整合度很低,成本很低,可是夠用了。一個山寨攝像頭賣才賣 30塊,買一片ARM多少錢?後來ASIC發展了一些,稱為半定製專用積體電路,相對來說更接近FPGA,甚至在某些地方,ASIC就是個大概 念,FPGA屬於ASIC之下的一部分。

FPGA基本就是高階的CPLD,兩者非常接近。我現在用的是ALTERA DE2開發板的CYCLONE系列FPGA。這種器件是用邏輯閘來表述效能的。本身他就是一堆的邏輯閘,通過硬體描述語言,比如verilogHDL把它 轉成電路連線,從最基本的邏輯閘層面上連線成電路(參見數位電路書上那些全加器觸發器什麼的)。

應該說,雖然看起來像一塊CPU,其實是完全硬體實現的。後來因為寫程式碼麻煩,對控制部分比較薄弱,本來跟其他CPU配合使用,即麻煩的演算法CPU提交給 FPGA,FPGA算完把結果再返回給CPU。可是這樣外圍電路就變得麻煩。於是提出了SOC設計方法,就是直接在FPGA裡寫一個CPU出來,既然 FPGA萬能,做個CPU自然毫無壓力。

這其中還有軟核和硬核的區別,不過除了效能,使用方法大同小異。所謂IP核,就是把各種專用積體電路用硬體描述語言描述,然後燒到FPGA裡形成專門的電路,這樣就不必另外搭晶片了,所有的電路在一片FPGA裡面形成。

DSP實際應該稱為DSPs,即用於DSP處理的專用晶片。跟普通計算機的區別一方面是他是哈佛結構的,也就是資料和程式空間分開。(普通計算機是馮 諾依曼結構)另一方面他有流水線結構,不過現在其他也有了,見賢思齊。再一方面他有專用的硬體演算法電路,用以完成DSP運算,比如最基本的乘法累加。上過 DSP的就知道,蝶形演算法FFT什麼的,拆成最基本單元就是乘法累加,把這部分加速了,整體效能就有非常大的提高。

DSP對於流媒體的處理能力遠遠的優於通用CPU。所以你看現在手機CPU,至少語音部分都是用DSP的。後來DSP概念也複雜化,各家都把一個控制核心 整合到DSP裡面,比如現在的智慧手機晶片。可以看一下高通或者TI的片,基本是一個ARM核控制整體運算,一個DSP處理語音編解碼,一個GPU負責圖 像運算,一個基帶和天線處理模組負責通訊,再加一些七七八八的東東比如GPS模組什麼的。

微控制器就是一個百搭的通用CPU,提供各種介面來對整體進行控制,相當一個總排程,當然,簡單的功能一片CPU獨立工作也就完成了。原來的51系列就是一 堆IO口,後來慢慢的把常用的PWM,AD之類的功能加入了微控制器。主要包括用了無數年仍然牛逼各大學必教的51系列,還有 AVR,PIC,ARM,HOTEK……其實ARM9以後,已經說不清ARM算哪類了,目前的架構來看,更接近DSP。

總之,現在各種東西都取長補短大融合,所以只要選擇自己需要用的就好,沒必要強求分類。以上就是FPGA,微控制器,DSP,ASIC的分析,希望能給大家幫助。

相關文章