常見問題

CPLD、FPGA、DSP的聯系和(hé)區(qū)别

    ARM(Advanced RISC Machines)是微處理(lǐ)器(qì)行(xíng)業的一家(jiā)知名企業,設計(jì)了大(dà)量高(gāo)性能、廉價、耗能低(dī)的RISC處理(lǐ)器(qì)、相關技(jì)術(shù)及軟件。ARM也是單片機。ARM架構是面向低(dī)預算(suàn)市場(chǎng)設計(jì)的第一款RISC微處理(lǐ)器(qì),基本是32位單片機的行(xíng)業标準,它提供一系列內(nèi)核、體(tǐ)系擴展、微處理(lǐ)器(qì)和(hé)系統芯片方案,四個(gè)功能模塊可(kě)供生(shēng)産廠商根據不同用戶的要求來(lái)配置生(shēng)産。
    由于所有(yǒu)産品均采用一個(gè)通(tōng)用的軟件體(tǐ)系,所以相同的軟件可(kě)在所有(yǒu)産品中運行(xíng)。目前ARM在手持設備市場(chǎng)占有(yǒu)90以上(shàng)的份額,可(kě)以有(yǒu)效地縮短(duǎn)應用程序開(kāi)發與測試的時(shí)間(jiān),也降低(dī)了研發費用。
    DSP(digital singnal processor)是 一種獨特的微處理(lǐ)器(qì),有(yǒu)自己的完整指令系統,是以數(shù)字信号來(lái)處理(lǐ)大(dà)量信息的器(qì)件。一個(gè)數(shù)字信号處理(lǐ)器(qì)在一塊不大(dà)的芯片內(nèi)包括有(yǒu)控制(zhì)單元、運算(suàn)單元、各種寄 存器(qì)以及一定數(shù)量的存儲單元等等,在其外圍還(hái)可(kě)以連接若幹存儲器(qì),并可(kě)以與一定數(shù)量的外部設備互相通(tōng)信,有(yǒu)軟、硬件的全面功能,本身就是一個(gè)微型計(jì)算(suàn)機。
    DSP采 用的是哈佛設計(jì),即數(shù)據總線和(hé)地址總線分開(kāi),使程序和(hé)數(shù)據分别存儲在兩個(gè)分開(kāi)的空(kōng)間(jiān),允許取指令和(hé)執行(xíng)指令完全重疊。也就是說在執行(xíng)上(shàng)一條指令的同時(shí)就可(kě) 取出下一條指令,并進行(xíng)譯碼,這大(dà)大(dà)的提高(gāo)了微處理(lǐ)器(qì)的速度 。另外還(hái)允許在程序空(kōng)間(jiān)和(hé)數(shù)據空(kōng)間(jiān)之間(jiān)進行(xíng)傳輸,因為(wèi)增加了器(qì)件的靈活性。其工作(zuò)原理(lǐ)是接收模拟信号,轉換為(wèi)0或1的數(shù)字信号,再對數(shù)字信号進行(xíng)修改、删除、強化,并在其他系統芯片中把數(shù)字數(shù)據解譯回模拟數(shù)據或實際環境格式。它不僅具有(yǒu)可(kě)編程性,而且其實時(shí)運行(xíng)速度可(kě)達每秒(miǎo)數(shù)以千萬條複雜指令程序,遠遠超過通(tōng)用微處理(lǐ)器(qì),是數(shù)字化電(diàn)子世界中日益重要的電(diàn)腦(nǎo)芯片。
    它的強大(dà)數(shù)據處理(lǐ)能力和(hé)高(gāo)運行(xíng)速度,是最值得(de)稱道(dào)的兩大(dà)特色。由于它運算(suàn)能力很(hěn)強,速度很(hěn)快,體(tǐ)積很(hěn)小(xiǎo),而且采用軟件編程具有(yǒu)高(gāo)度的靈活性,因此為(wèi)從事各種複雜的應用提供了一條有(yǒu)效途徑。根據數(shù)字信号處理(lǐ)的要求,DSP芯片一般具有(yǒu)如下主要特點:
    (1)在一個(gè)指令周期內(nèi)可(kě)完成一次乘法和(hé)一次加法;
    (2)程序和(hé)數(shù)據空(kōng)間(jiān)分開(kāi),可(kě)以同時(shí)訪問指令和(hé)數(shù)據;
    (3)片內(nèi)具有(yǒu)快速RAM,通(tōng)常可(kě)通(tōng)過獨立的數(shù)據總線在兩塊中同時(shí)訪問;
    (4)具有(yǒu)低(dī)開(kāi)銷或無開(kāi)銷循環及跳(tiào)轉的硬件支持;
    (5)快速的中斷處理(lǐ)和(hé)硬件I/O支持;
    (6)具有(yǒu)在單周期內(nèi)操作(zuò)的多(duō)個(gè)硬件地址産生(shēng)器(qì);
    (7)可(kě)以并行(xíng)執行(xíng)多(duō)個(gè)操作(zuò);
    (8)支持流水(shuǐ)線操作(zuò),使取指、譯碼和(hé)執行(xíng)等操作(zuò)可(kě)以重疊執行(xíng)。
    當然,與通(tōng)用微處理(lǐ)器(qì)相比,DSP芯片的其他通(tōng)用功能相對較弱些(xiē)。
    FPGA(Field Programmable Gate Array)(現場(chǎng)可(kě)編程門(mén)陣列)的縮寫,它是在PAL、GAL、PLD等可(kě)編程器(qì)件的基礎上(shàng)進一步發展的産物,是專用集成電(diàn)路(ASIC)中集成度最高(gāo)的一種。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)新概念,內(nèi)部包括可(kě)配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和(hé)內(nèi)部連線(Interconnect)三個(gè)部分。
    用戶可(kě)對FPGA內(nèi)部的邏輯模塊和(hé)I/O模塊重新配置,以實現用戶的邏輯。它還(hái)具有(yǒu)靜态可(kě)重複編程和(hé)動态在系統重構的特性,使得(de)硬件的功能可(kě)以像軟件一樣通(tōng)過編程來(lái)修改。作(zuò)為(wèi)專用集成電(diàn)路(ASIC)領域中的一種半定制(zhì)電(diàn)路,FPGA既解決了定制(zhì)電(diàn)路的不足,又克服了原有(yǒu)可(kě)編程器(qì)件門(mén)電(diàn)路數(shù)有(yǒu)限的缺點。可(kě)以毫不誇張的講,FPGA能完成任何數(shù)字器(qì)件的功能,上(shàng)至高(gāo)性能CPU,下至簡單的74電(diàn)路,都可(kě)以用FPGA來(lái)實現。FPGA如同一張白紙或是一堆積木,工程師(shī)可(kě)以通(tōng)過傳統的原理(lǐ)圖輸入法,或是硬件描述語言自由的設計(jì)一個(gè)數(shù)字系統。通(tōng)過軟件仿真,我們可(kě)以事先驗證設計(jì)的正确性。在PCB完成以後,還(hái)可(kě)以利用FPGA的在線修改能力,随時(shí)修改設計(jì)而不必改動硬件電(diàn)路。使用FPGA來(lái)開(kāi)發數(shù)字電(diàn)路,可(kě)以大(dà)大(dà)縮短(duǎn)設計(jì)時(shí)間(jiān),減少(shǎo)PCB面積,提高(gāo)系統的可(kě)靠性。
    FPGA是由存放在片內(nèi)RAM中的程序來(lái)設置其工作(zuò)狀态的,因此工作(zuò)時(shí)需要對片內(nèi)的RAM進行(xíng)編程。用戶可(kě)以根據不同的配置模式,采用不同的編程方式。加電(diàn)時(shí),FPGA芯片将EPROM中數(shù)據讀入片內(nèi)編程RAM中,配置完成後,FPGA進入工作(zuò)狀态。掉電(diàn)後,FPGA恢複成白片,內(nèi)部邏輯關系消失,因此,FPGA能夠反複使用。FPGA的編程無須專用的FPGA編程器(qì),隻須用通(tōng)用的EPROM、PROM編程器(qì)即可(kě)。當需要修改FPGA功能時(shí),隻需換一片EPROM即可(kě)。這樣,同一片FPGA,不同的編程數(shù)據,可(kě)以産生(shēng)不同的電(diàn)路功能。因此,FPGA的使用非常靈活。可(kě)以說,FPGA芯片是小(xiǎo)批量系統提高(gāo)系統集成度、可(kě)靠性的最佳選擇之一。目前FPGA的品種很(hěn)多(duō),有(yǒu)XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
    那(nà)麽它們的區(qū)别有(yǒu)哪些(xiē)呢?
    ARM具有(yǒu)比較強的事務管理(lǐ)功能,可(kě)以用來(lái)跑界面以及應用程序等,其優勢主要體(tǐ)現在控制(zhì)方面,而DSP主要是用來(lái)計(jì)算(suàn)的,比如進行(xíng)加密解密、調制(zhì)解調等,優勢是強大(dà)的數(shù)據處理(lǐ)能力和(hé)較高(gāo)的運行(xíng)速度。FPGA可(kě)以用VHDL或verilogHDL來(lái)編程,靈活性強,由于能夠進行(xíng)編程、除錯、再編程和(hé)重複操作(zuò),因此可(kě)以充分地進行(xíng)設計(jì)開(kāi)發和(hé)驗證。當電(diàn)路有(yǒu)少(shǎo)量改動時(shí),更能顯示出FPGA的優勢,其現場(chǎng)編程能力可(kě)以延長産品在市場(chǎng)上(shàng)的壽命,而這種能力可(kě)以用來(lái)進行(xíng)系統升級或除錯。
    作(zuò)為(wèi)Processor,這幾種器(qì)件有(yǒu)什麽有(yǒu)優缺點。
    其實C51,ARM,DSP都不是單獨作(zuò)為(wèi)芯片來(lái)提供給用戶的,都要加一些(xiē)外圍電(diàn)路來(lái)支持。
    例如:memory controller,interrupt controller,timer,UART,SPI,I2C等等。
    所以要比較最好從processor的角度來(lái)比較他們。
    (1). C51是8位的;ARM是32位的;DSP有(yǒu)16位的,也有(yǒu)更高(gāo)的。
    (2).所有(yǒu)說從運算(suàn)能力上(shàng)看,C51最弱,DSP最強,ARM居中。
    (3).結構差别較大(dà),C51最簡單,是一般的馮諾伊曼結構;ARM9以上(shàng)是哈佛結構的RISC;DSP一般使用哈佛結構。
    (4).C51一般芯片面積非常小(xiǎo),工作(zuò)頻率很(hěn)低(dī)(一般是10多(duō)MHz,有(yǒu)的是24MHz),所以功耗低(dī)。DSP則頻率很(hěn)高(gāo)(高(gāo)的達到300MHz以上(shàng)),所以功耗大(dà)。ARM芯片面積也很(hěn)小(xiǎo),ARM7是0.55平方毫米,功耗也比較小(xiǎo)。頻率大(dà)約在(幾十到200MHz之間(jiān))
    (5).所以一般C51主要應用于不需要太多(duō)計(jì)算(suàn)量的控制(zhì)類系統。一般配有(yǒu)豐富的外圍module。DSP則主要應用于需要進行(xíng)複雜計(jì)算(suàn)的高(gāo)端系統,例如圖像處理(lǐ),加密解密,導航系統等,外圍module一般較少(shǎo)。ARM是C51和(hé)DSP之間(jiān)的一個(gè)折衷。
    (6).強調一點:C51的性能遠不如ARM和(hé)DSP,但(dàn)仍然占據重要的一席之地,原因就是性能價格比。因為(wèi)它太成熟了,太小(xiǎo)了,太便宜了。而在一些(xiē)需要複雜計(jì)算(suàn)的領域,DSP也不可(kě)或缺。ARM的成功就是他找到了一個(gè)折衷點,并且建立了一個(gè)非常靈活的商業模型。
    CPLD(Complex Programmable Logic Device)複雜可(kě)編程邏輯器(qì)件, 是從PAL和(hé)GAL器(qì)件發展出來(lái)的器(qì)件,相對而言規模大(dà),結構複雜,屬于大(dà)規模集成電(diàn)路範圍。是一種用戶根據各自需要而自行(xíng)構造邏輯功能的數(shù)字集成電(diàn)路。 其基本設計(jì)方法是借助集成開(kāi)發軟件平台,用原理(lǐ)圖、硬件描述語言等方法,生(shēng)成相應的目标文件,通(tōng)過下載電(diàn)纜(“在系統”編程)将代碼傳送到目标芯片中,實 現設計(jì)的數(shù)字系統.
    FPGA和(hé)CPLD的區(qū)别
    FPGA與 CPLD的辨别和(hé)分類主要是根據其結構特點和(hé)工作(zuò)原理(lǐ)。通(tōng)常的分類方法是:将以乘積項結構方式構成邏輯行(xíng)為(wèi)的器(qì)件稱為(wèi)CPLD,如Lattice的 ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系列和(hé)Lattice(原Vantis)的Mach系列等。
    将以查表法結構方式構成邏輯行(xíng)為(wèi)的器(qì)件稱為(wèi)FPGA,如Xilinx的SPARTAN系列、Altera的FLEX10K或ACEX1K系列等。
    盡管FPGA和(hé)CPLD都是可(kě)編程ASIC器(qì)件,有(yǒu)很(hěn)多(duō)共同特點,但(dàn)由于CPLD和(hé)FPGA結構上(shàng)的差異,具有(yǒu)各自的特點:
    ①CPLD更适合完成各種算(suàn)法和(hé)組合邏輯,FPGA更适合于完成時(shí)序邏輯。換句話(huà)說,FPGA更适合于觸發器(qì)豐富的結構,而CPLD更适合于觸發器(qì)有(yǒu)限而乘積項豐富的結構。
    ②CPLD的連續式布線結構決定了它的時(shí)序延遲是均勻的和(hé)可(kě)預測的,而FPGA的分段式布線結構決定了其延遲的不可(kě)預測性。
    ③在編程上(shàng)FPGA比CPLD具有(yǒu)更大(dà)的靈活性。CPLD通(tōng)過修改具有(yǒu)固定內(nèi)連電(diàn)路的邏輯功能來(lái)編程,FPGA主要通(tōng)過改變內(nèi)部連線的布線來(lái)編程;FPGA可(kě)在邏輯門(mén)下編程,而CPLD是在邏輯塊下編程。
    ④FPGA的集成度比CPLD高(gāo),具有(yǒu)更複雜的布線結構和(hé)邏輯實現。
    ⑤CPLD比FPGA使用起來(lái)更方便。CPLD的編程采用E2PROM或FASTFLASH技(jì)術(shù),無需外部存儲器(qì)芯片,使用簡單。而FPGA的編程信息需存放在外部存儲器(qì)上(shàng),使用方法複雜。
    ⑥CPLD的速度比FPGA快,并且具有(yǒu)較大(dà)的時(shí)間(jiān)可(kě)預測性。這是由于FPGA是門(mén)級編程,并且CLB之間(jiān)采用分布式互聯,而CPLD是邏輯塊級編程,并且其邏輯塊之間(jiān)的互聯是集總式的。
    ⑦在編程方式上(shàng),CPLD主要是基于E2PROM或FLASH存儲器(qì)編程,編程次數(shù)可(kě)達1萬次,優點是系統斷電(diàn)時(shí)編程信息也不丢失。CPLD又可(kě)分為(wèi)在編程器(qì)上(shàng)編程和(hé)在系統編程兩類。FPGA大(dà)部分是基于SRAM編程,編程信息在系統斷電(diàn)時(shí)丢失,每次上(shàng)電(diàn)時(shí),需從器(qì)件外部将編程數(shù)據重新寫入SRAM中。其優點是可(kě)以編程任意次,可(kě)在工作(zuò)中快速編程,從而實現闆級和(hé)系統級的動态配置。
    ⑧CPLD保密性好,FPGA保密性差。
    ⑨一般情況下,CPLD的功耗要比FPGA大(dà),且集成度越高(gāo)越明(míng)顯。



首頁

電(diàn)話(huà)

地址

到底了~