ARM(Advanced RISC Machines)是微處理器行業(yè)的一家知名企業(yè),設(shè)計了大量高性能、廉價、耗能低的RISC處理器、相關(guān)技術(shù)及軟 件。ARM架構(gòu)是面向低預(yù)算市場設(shè)計的第一款RISC微處理器,基本是32位單片機的行業(yè)標(biāo)準(zhǔn),它提供一系列內(nèi)核、體系擴展、微處理器和系統(tǒng)芯片方案,四 個功能模塊可供生產(chǎn)廠商根據(jù)不同用戶的要求來配置生產(chǎn)。由于所有產(chǎn)品均采用一個通用的軟件體系,所以相同的軟件可在所有產(chǎn)品中運行。目前ARM在手持設(shè)備 市場占有90以上的份額,可以有效地縮短應(yīng)用程序開發(fā)與測試的時間,也降低了研發(fā)費用。
DSP(digital signal processor)是一種獨特的微處理器,有自己的完整指令系統(tǒng),是以數(shù)字信號來處理大量信息的器件。一個數(shù) 字信號處理器在一塊不大的芯片內(nèi)包括有控制單元、運算單元、各種寄存器以及一定數(shù)量的存儲單元等等,在其外圍還可以連接若干存儲器,并可以與一定數(shù)量的外 部設(shè)備互相通信,有軟、硬件的全面功能,本身就是一個微型計算機。DSP采用的是哈佛設(shè)計,即數(shù)據(jù)總線和地址總線分開,使程序和數(shù)據(jù)分別存儲在兩個分開的 空間,允許取指令和執(zhí)行指令完全重疊。
也就是說在執(zhí)行上一條指令的同時就可取出下一條指令,并進行譯碼,這大大的提高了微處理器的速度 。另外還允許在程 序空間和數(shù)據(jù)空間之間進行傳輸,因為增加了器件的靈活性。其工作原理是接收模擬信號,轉(zhuǎn)換為0或1的數(shù)字信號,再對數(shù)字信號進行修改、刪除、強化,并在其 他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實時運行速度可達(dá)每秒數(shù)以千萬條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過通用微處理器, 是數(shù)字化電子世界中日益重要的電腦芯片。
它的強大數(shù)據(jù)處理能力和高運行速度,是最值得稱道的兩大特色。由于它運算能力很強,速度很快,體積很小,而且采用 軟件編程具有高度的靈活性,因此為從事各種復(fù)雜的應(yīng)用提供了一條有效途徑。
當(dāng)然,與通用微處理器相比,DSP芯片的其他通用功能相對較弱些。
FPGA是英文Field Programmable Gate Array(現(xiàn)場可編程門陣列)的縮寫,它是在PAL、GAL、PLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物,是專用集成電路(ASIC)中集成度最高的一種。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個 新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB (Input Output Block)和內(nèi)部連線(Interconnect)三個部分。
用戶可對FPGA內(nèi)部的邏輯模塊和I/O模塊重新配置,以實 現(xiàn)用戶的邏輯。它還具有靜態(tài)可重復(fù)編程和動態(tài)在系統(tǒng)重構(gòu)的特性,使得硬件的功能可以像軟件一樣通過編程來修改。作為專用集成電路(ASIC)領(lǐng)域中的一種 半定制電路,F(xiàn)PGA既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。
可以毫不夸張的講,F(xiàn)PGA能完成任何數(shù)字器件的功能,上至高 性能CPU,下至簡單的74電路,都可以用FPGA來實現(xiàn)。FPGA如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法,或是硬件描述語言自由 的設(shè)計一個數(shù)字系統(tǒng)。通過軟件仿真,我們可以事先驗證設(shè)計的正確性。在PCB完成以后,還可以利用FPGA的在線修改能力,隨時修改設(shè)計而不必改動硬件電路。使用FPGA來開發(fā)數(shù)字電路,可以大大縮短設(shè)計時間,減少PCB面積,提高系統(tǒng)的可靠性。FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的, 因此工作時需要對片內(nèi)的RAM進行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。
加電時,F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM 中,配置完成后,F(xiàn)PGA進入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無須專用的FPGA 編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可 以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。目前FPGA的品種很 多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
區(qū)別是什么呢?ARM具有比較強的事務(wù)管理功能,可以用來跑界面以及應(yīng)用程序等,其優(yōu)勢主要體現(xiàn)在控制方面,而DSP主要是用來計算的,比如進行加密解 密、調(diào)制解調(diào)等,優(yōu)勢是強大的數(shù)據(jù)處理能力和較高的運行速度。FPGA可以用VHDL或verilogHDL來編程,靈活性強,由于能夠進行編程、除錯、 再編程和重復(fù)操作,因此可以充分地進行設(shè)計開發(fā)和驗證。當(dāng)電路有少量改動時,更能顯示出FPGA的優(yōu)勢,其現(xiàn)場編程能力可以延長產(chǎn)品在市場上的壽命,而這種能力可以用來進行系統(tǒng)升級或除錯。
FPGA可以通過并行處理和流水線,達(dá)到比CPU和DSP更高的數(shù)據(jù)處理能力。而且現(xiàn)在FPGA也內(nèi)嵌了DSP模塊和CPU,可以設(shè)計成片上系統(tǒng)。對于對CPU要求不高的單板,只要使用FPGA內(nèi)的CPU就可以了,不需要另外再貼塊CPU芯片了。因為三種器件各有其優(yōu)勢,所以是誰也沒有辦法替代誰。主要的競爭在FPGA與DSP,低端CPU之間展開。因為DSP和CPU都是專用集成電路,所以內(nèi)部時鐘頻率可以做的很高,密度可以做的很高,特別是CPU,往往都代表了半導(dǎo)體的最新最高工藝。
現(xiàn)在PC機上的CPU以GHz為計量單位,而FPGA基本500MHz就封頂了。FPGA雖然在執(zhí)行頻率上沒有DSP和FPGA那么高,工藝可能也沒有那么先進,但是FPGA可以通過并行處理和流水線,達(dá)到比CPU和DSP更高的數(shù)據(jù)處理能力。而且現(xiàn)在FPGA也內(nèi)嵌了DSP模塊和CPU,可以設(shè)計成片上系統(tǒng)。對于對CPU要求不高的單板,只要使用FPGA內(nèi)的CPU就可以了,不需要另外再貼塊 CPU芯片了。
因為三種器件各有其優(yōu)勢,所以是誰也沒有辦法替代誰。主要的競爭在FPGA與DSP,低端CPU之間展開。DSP是軟件實現(xiàn)算法。FPGA是硬件實現(xiàn)算法,所以FPGA的處理速度會更高。FPGA比DSP快的一個重要原因是FPGA可以實現(xiàn)并行運算,而DSP由于硬件結(jié)構(gòu)條件限制,主要還是依靠軟件來提取指令執(zhí)行,理解為還是串行執(zhí)行的!
ARM、DSP、FPGA、CPLD、SOPC、SOC 之間有什么區(qū)別和聯(lián)系?
arm是一種嵌入式芯片,比單片機功能強,可以針對需要增加外設(shè)。類似于通用cpu,但是不包括桌面計算機。
DSP主要用來計算,計算功能很強悍,一般嵌入式芯片用來控制,而DSP用來計算,譬如一般手機有一個arm芯片,主要用來跑界面,應(yīng)用程序,DSP可能有兩個,adsp,mdsp,或一個,主要是加密解密,調(diào)制解調(diào)等。
FPGA和CPLD都是可編程邏輯器件,都可以用VHDL或verilog HDL來編程,一般CPLD使用乘積項技術(shù),粒度粗些;FPGA使用查找表技術(shù),粒度細(xì)些,適用觸發(fā)器較多的邏輯。其實多數(shù)時候都忽略它們的差異,一般在設(shè)計ASIC芯片時要用FPGA驗證,然后再把VHDL等程序映射為固定的版圖,制作ASIC芯片,在設(shè)計VHDL程序時,有可能要使用C仿真。
SOC就是單片系統(tǒng),主要是器件太多設(shè)計復(fù)雜,成本高,可靠性差等缺點,所以單片系統(tǒng)是一個發(fā)展趨勢。
SOPC就是可編程芯片系統(tǒng),就是可以用FPGA/CPLD實現(xiàn)一個單片系統(tǒng),譬如altera的Nios軟核處理器嵌入到Stratix中。●FPGA與CPLD的區(qū)別
系統(tǒng)的比較,與大家共享:盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點,但由于CPLD和FPGA結(jié)構(gòu)上的差異,具有各自的特點:①CPLD更適合完成各種算法和組合邏輯,FPGA更適合于完成時序邏輯。換句話說,FPGA更適合于觸發(fā)器豐富的結(jié)構(gòu),而CPLD更適合于觸發(fā)器有限而乘積項豐富的結(jié)構(gòu)。
②CPLD的連續(xù)式布線結(jié)構(gòu)決定了它的時序延遲是均勻的和可預(yù)測的,而FPGA的分段式布線結(jié)構(gòu)決定了其延遲的不可預(yù)測性。③在編程上FPGA比CPLD具有更大的靈活性。CPLD通過修改具有固定內(nèi)連電路的邏輯功能來編程,FPGA主要通過改變內(nèi)部連線的布線來編程;FPGA可在邏輯門下編程,而CPLD是在邏輯塊下編程。
④FPGA的集成度比CPLD高,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實現(xiàn)。⑤CPLD比FPGA使用起來更方便。CPLD的編程采用E2PROM或FASTFLASH技術(shù),無需外部存儲器芯片,使用簡單。而FPGA的編程信息需存放在外部存儲器上,使用方法復(fù)雜。
⑥CPLD的速度比FPGA快,并且具有較大的時間可預(yù)測性。這是由于FPGA是門級編程,并且CLB之間采用分布式互聯(lián),而CPLD是邏輯塊級編程,并且其邏輯塊之間的互聯(lián)是集總式的。
⑦在編程方式上,CPLD主要是基于E2PROM或FLASH存儲器編程,編程次數(shù)可達(dá)1萬次,優(yōu)點是系統(tǒng)斷電時編程信息也不丟失。CPLD又可分為在編程器上編程和在系統(tǒng)編程兩類。FPGA大部分是基于SRAM編程,編程信息在系統(tǒng)斷電時丟失,每次上電時,需從器件外部將編程數(shù)據(jù)重新寫入SRAM中。其優(yōu)點是可以編程任意次,可在工作中快速編程,從而實現(xiàn)板級和系統(tǒng)級的動態(tài)配置。
⑧CPLD保密性好,FPGA保密性差。⑨一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯。隨著復(fù)雜可編程邏輯器件(CPLD)密度的提高,數(shù)字器件設(shè)計人員在進行大型設(shè)計時,既靈活又容易,而且產(chǎn)品可以很快進入市場。許多設(shè)計人員已經(jīng)感受到CPLD容易使用、時序可預(yù)測和速度高等優(yōu)點,然而,在過去由于受到CPLD密度的限制,他們只好轉(zhuǎn)向FPGA和ASIC。現(xiàn)在,設(shè)計人員可以體會到密度高達(dá)數(shù)十萬門的CPLD所帶來的好處。
CPLD結(jié)構(gòu)在一個邏輯路徑上采用1至16個乘積項,因而大型復(fù)雜設(shè)計的運行速度可以預(yù)測。因此,原有設(shè)計的運行可以預(yù)測,也很可靠,而且修改設(shè)計也很容易。CPLD在本質(zhì)上很靈活、時序簡單、路由性能極好,用戶可以改變他們的設(shè)計同時保持引腳輸出不變。與FPGA相比,CPLD的I/O更多,尺寸更小。如今,通信系統(tǒng)使用很多標(biāo)準(zhǔn),必須根據(jù)客戶的需要配置設(shè)備以支持不同的標(biāo)準(zhǔn)。
CPLD可讓設(shè)備做出相應(yīng)的調(diào)整以支持多種協(xié)議,并隨著標(biāo)準(zhǔn)和協(xié)議的演變而改變功能。這為系統(tǒng)設(shè)計人員帶來很大的方便,因為在標(biāo)準(zhǔn)尚未完全成熟之前他們就可以著手進行硬件設(shè)計,然后再修改代碼以滿足最終標(biāo)準(zhǔn)的要求。CPLD的速度和延遲特性比純軟件方案更好,它的NRE費用低於ASIC,更靈活,產(chǎn)品也可以更快入市。CPLD可編程方案的優(yōu)點如下:
●邏輯和存儲器資源豐富(Cypress Delta39K200的RAM超過480 Kb)
●帶冗余路由資源的靈活時序模型
●改變引腳輸出很靈活
●可以裝在系統(tǒng)上后重新編程
●I/O數(shù)目多
●具有可保證性能的集成存儲器控制邏輯
●提供單片CPLD和可編程PHY方案
由于有這些優(yōu)點,設(shè)計建模成本低,可在設(shè)計過程的任一階段添加設(shè)計或改變引腳輸出,可以很快上市。
CPLD的結(jié)構(gòu)
CPLD是屬於粗粒結(jié)構(gòu)的可編程邏輯器件。它具有豐富的邏輯資源(即邏輯門與寄存器的比例高)和高度靈活的路由資源。CPLD的路由是連接在一起的,而FPGA的路由是分割開的。FPGA可能更靈活,但包括很多跳線,因此速度較CPLD慢。
CPLD以群陣列(array of clusters)的形式排列,由水平和垂直路由通道連接起來。這些路由通道把信號送到器件的引腳上或者傳進來,并且把CPLD內(nèi)部的邏輯群連接起來。
之所以稱作粗粒,是因為,與路由數(shù)量相比,邏輯群要大得多。CPLD的邏輯群比FPGA的基本單元大得多,因此FPGA是細(xì)粒的。
CPLD最基本的單元是宏單元。一個宏單元包含一個寄存器(使用多達(dá)16個乘積項作為其輸入)及其它有用特性。
因為每個宏單元用了16個乘積項,因此設(shè)計人員可部署大量的組合邏輯而不用增加額外的路徑。這就是為何CPLD被認(rèn)為是“邏輯豐富”型的。
宏單元以邏輯模塊的形式排列(LB),每個邏輯模塊由16個宏單元組成。宏單元執(zhí)行一個AND操作,然后一個OR操作以實現(xiàn)組合邏輯。每個邏輯群有8個邏輯模塊,所有邏輯群都連接到同一個可編程互聯(lián)矩陣。
每個群還包含兩個單端口邏輯群存儲器模塊和一個多端口通道存儲器模塊。前者每模塊有8,192b存儲器,后者包含4,096b專用通信存儲器且可配置為單端口、多端口或帶專用控制邏輯的FIFO。
CPLD有什麼好處?
I/O數(shù)量多
CPLD的好處之一是在給定的器件密度上可提供更多的I/O數(shù),有時甚至高達(dá)70%。
時序模型簡單CPLD優(yōu)于其它可編程結(jié)構(gòu)之處在于它具有簡單且可預(yù)測的時序模型。這種簡單的時序模型主要應(yīng)歸功于CPLD的粗粒度特性。CPLD可在給定的時間內(nèi)提供較寬的相等狀態(tài),而與路由無關(guān)。這一能力是設(shè)計成功的關(guān)鍵,不但可加速初始設(shè)計工作,而且可加快設(shè)計調(diào)試過程。
粗粒CPLD結(jié)構(gòu)的優(yōu)點
CPLD是粗粒結(jié)構(gòu),這意味著進出器件的路徑經(jīng)過較少的開關(guān),相應(yīng)地延遲也小。因此,與等效的FPGA相比,CPLD可工作在更高的頻率,具有更好的性能。CPLD的另一個好處是其軟件編譯快,因為其易于路由的結(jié)構(gòu)使得布放設(shè)計任務(wù)更加容易執(zhí)行。細(xì)粒FPGA結(jié)構(gòu)的優(yōu)點FPGA是細(xì)粒結(jié)構(gòu),這意味著每個單元間存在細(xì)粒延遲。如果將少量的邏輯緊密排列在一起,F(xiàn)PGA的速度相當(dāng)快。然而,隨著設(shè)計密度的增加,信號不得不通過許多開關(guān),路由延遲也快速增加,從而削弱了整體性能。CPLD的粗粒結(jié)構(gòu)卻能很好地適應(yīng)這一設(shè)計布局的改變。
靈活的輸出引腳
CPLD的粗粒結(jié)構(gòu)和時序特性可預(yù)測,因此設(shè)計人員在設(shè)計流程的后期仍可以改變輸出引腳,而時序仍保持不變。
新的CPLD封裝
CPLD有多種密度和封裝類型,包括單芯片自引導(dǎo)方案。自引導(dǎo)方案在單個封裝內(nèi)集成了FLASH存儲器和CPLD,無須外部引導(dǎo)單元,從而可降低設(shè)計復(fù)雜性并節(jié)省板空間。在給定的封裝尺寸內(nèi),有更高的器件密度共享引腳輸出。這就為設(shè)計人員提供了“放大”設(shè)計的便利,而無須更改板上的引腳輸出。
●arm是一種嵌入式芯片,比單片機功能強,可以針對需要增加外設(shè)。類似于通用cpu,但是不包括桌面計算機。
DSP主要用來計算,計算功能很強悍,一般嵌入式芯片用來控制,而DSP用來計算,譬如一般手機有一個arm芯片,主要用來跑界面,應(yīng)用程序,DSP可能有兩個,adsp,mdsp,或一個,主要是加密解密,調(diào)制解調(diào)等。
●ARM其實就是一個知識產(chǎn)權(quán),ARM公司本身不生產(chǎn)芯片,但是向其它公司提供授權(quán)。
alterA有嵌入ARM內(nèi)核的SOPC芯片,搜搜應(yīng)該能搜的到的。
如果自己設(shè)計一個ARM芯片,顯然是不大可能的,即使設(shè)計出來嵌入式芯片,也不能叫ARM。
當(dāng)然用FPGA設(shè)計簡單的處理器芯片應(yīng)該還是有可能的,好象外國大學(xué)都有這樣的課程設(shè)計,也有很多書籍介紹設(shè)計簡單的處理器芯片的。感覺處理器芯片主要就是把指令譯碼,分派給不同的功能部件來執(zhí)行工作,如果再加上流水線,預(yù)測執(zhí)行以及存儲器、外設(shè)等等功能,應(yīng)該工作量很大的。
●其實象工作量特別大的運算,一般還是用FPGA/ASIC來實現(xiàn)的,譬如在手機基帶芯片中,碼片級的運算,一般是用FPGA/ASIC,而比特級的運算,應(yīng)該用DSP實現(xiàn)的多。
責(zé)任編輯:haq
-
dsp
+關(guān)注
關(guān)注
554文章
8057瀏覽量
349551 -
FPGA
+關(guān)注
關(guān)注
1630文章
21769瀏覽量
604648 -
ARM
+關(guān)注
關(guān)注
134文章
9121瀏覽量
368235
原文標(biāo)題:ARM、DSP、FPGA的特點和區(qū)別
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論