FPGA,單片機(jī),DSP,ASIC,你都了解嗎?
什么是FPGA,單片機(jī),DSP,ASIC?你真的知道嗎?ASIC原本就是專門為某一項(xiàng)功能開發(fā)的專用集成芯片,比如你看攝像頭里面的芯片,小小的一片,集成度很低,成本很低,可是夠用了。一個(gè)山寨攝像頭賣才賣 30塊,買一片ARM多少錢?后來(lái)ASIC發(fā)展了一些,稱為半定制專用集成電路,相對(duì)來(lái)說(shuō)更接近FPGA,甚至在某些地方,ASIC就是個(gè)大概 念,F(xiàn)PGA屬于ASIC之下的一部分。
FPGA基本就是高端的CPLD,兩者非常接近。我現(xiàn)在用的是ALTERA DE2開發(fā)板的CYCLONE系列FPGA。這種器件是用邏輯門來(lái)表述性能的。本身他就是一堆的邏輯門,通過(guò)硬件描述語(yǔ)言,比如verilogHDL把它 轉(zhuǎn)成電路連接,從最基本的邏輯門層面上連接成電路(參見數(shù)字電路書上那些全加器觸發(fā)器什么的)。
應(yīng)該說(shuō),雖然看起來(lái)像一塊CPU,其實(shí)是完全硬件實(shí)現(xiàn)的。后來(lái)因?yàn)閷懘a麻煩,對(duì)控制部分比較薄弱,本來(lái)跟其他CPU配合使用,即麻煩的算法CPU提交給 FPGA,F(xiàn)PGA算完把結(jié)果再返回給CPU。可是這樣外圍電路就變得麻煩。于是提出了SOC設(shè)計(jì)方法,就是直接在FPGA里寫一個(gè)CPU出來(lái),既然 FPGA萬(wàn)能,做個(gè)CPU自然毫無(wú)壓力。
這其中還有軟核和硬核的區(qū)別,不過(guò)除了性能,使用方法大同小異。所謂IP核,就是把各種專用集成電路用硬件描述語(yǔ)言描述,然后燒到FPGA里形成專門的電路,這樣就不必另外搭芯片了,所有的電路在一片F(xiàn)PGA里面形成。
DSP實(shí)際應(yīng)該稱為DSPs,即用于DSP處理的專用芯片。跟普通計(jì)算機(jī)的區(qū)別一方面是他是哈佛結(jié)構(gòu)的,也就是數(shù)據(jù)和程序空間分開。(普通計(jì)算機(jī)是馮 諾依曼結(jié)構(gòu))另一方面他有流水線結(jié)構(gòu),不過(guò)現(xiàn)在其他也有了,見賢思齊。再一方面他有專用的硬件算法電路,用以完成DSP運(yùn)算,比如最基本的乘法累加。上過(guò) DSP的就知道,蝶形算法FFT什么的,拆成最基本單元就是乘法累加,把這部分加速了,整體性能就有非常大的提高。
DSP對(duì)于流媒體的處理能力遠(yuǎn)遠(yuǎn)的優(yōu)于通用CPU。所以你看現(xiàn)在手機(jī)CPU,至少語(yǔ)音部分都是用DSP的。后來(lái)DSP概念也復(fù)雜化,各家都把一個(gè)控制核心 整合到DSP里面,比如現(xiàn)在的智能手機(jī)芯片??梢钥匆幌赂咄ɑ蛘逿I的片,基本是一個(gè)ARM核控制整體運(yùn)算,一個(gè)DSP處理語(yǔ)音編解碼,一個(gè)GPU負(fù)責(zé)圖 像運(yùn)算,一個(gè)基帶和天線處理模塊負(fù)責(zé)通信,再加一些七七八八的東東比如GPS模塊什么的。
單片機(jī)就是一個(gè)百搭的通用CPU,提供各種接口來(lái)對(duì)整體進(jìn)行控制,相當(dāng)一個(gè)總調(diào)度,當(dāng)然,簡(jiǎn)單的功能一片CPU獨(dú)立工作也就完成了。原來(lái)的51系列就是一 堆IO口,后來(lái)慢慢的把常用的PWM,AD之類的功能加入了單片機(jī)。主要包括用了無(wú)數(shù)年仍然牛逼各大學(xué)必教的51系列,還有 AVR,PIC,ARM,HOTEK……其實(shí)ARM9以后,已經(jīng)說(shuō)不清ARM算哪類了,目前的架構(gòu)來(lái)看,更接近DSP。
總之,現(xiàn)在各種東西都取長(zhǎng)補(bǔ)短大融合,所以只要選擇自己需要用的就好,沒必要強(qiáng)求分類。以上就是FPGA,單片機(jī),DSP,ASIC的分析,希望能給大家?guī)椭?