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驗證工程師

15K-20K/北京/1-3年/本科及以上/全職

上海新捷電子 | ASIC設計經理

25K-35K/5年以上/碩士及以上/全職、

Marvell | Senior DSP Engineer

15K-30K/上海/1-3年/碩士及以上/全職

摩爾精英,全球半導體職業機會 www.moore.ren

推薦閱讀:

嵌入式軟體工程師該不該看ASIC工程師寫的代碼(硬體描述語言如verilog)?
FPGA設計工程師與數字IC前端設計工程師職業發展對比如何?
IC行業的項目經理是做什麼的?
能不能推薦一款入門級FPGA開發板?
quartus中對某個module寫tb時,tb中可以用FSM寫個數據流做激勵嗎?

TAG:DSP数字信号处理 | 现场可编辑逻辑门阵列FPGA | ASIC |