FPGA新手入門(mén)
FPGA簡(jiǎn)介
FPGA是英文Field Programmable Gate Array的縮寫(xiě),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在可編程陣列邏輯PAL(Programmable Array Logic)、門(mén)陣列邏輯GAL(Gate Array Logic)、可編程邏輯器件PLD(Programmable Logic Device)等可編程器件的基礎(chǔ)什么是FPGA上進(jìn)一步發(fā)展的產(chǎn)物。
它是作為專(zhuān)用集成電路ASIC(Application Specific Integrated Circuit)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。FPGA能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡(jiǎn)單的74系列電路,都可以用FPGA來(lái)實(shí)現(xiàn)。FPGA如同一張白紙或是一堆積木,工程師可以通過(guò)傳統(tǒng)的原理圖什么是輸入法,或是硬件描述語(yǔ)言自由設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。通過(guò)軟件仿真,我們可以事先驗(yàn)證設(shè)計(jì)的正確性。在PCB完成以后,還可以利用FPGA的在線(xiàn)修改能力,隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路。使用FPGA來(lái)開(kāi)發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少PCB面積,提高系統(tǒng)的可靠性。PLD的這些優(yōu)點(diǎn)使得PLD技術(shù)在90年代以后得到飛速的發(fā)展,同時(shí)也大大推動(dòng)了電子設(shè)計(jì)自動(dòng)化EDA(Electronic Design Automatic)軟件和硬件描述語(yǔ)言VHDL(Very-High-Speed Integrated Circuit Hardware Description)的進(jìn)步。
FPGA的特點(diǎn)
FPGA具有體系結(jié)構(gòu)和邏輯單元靈活、集成度高以及適用范圍寬FPGA等特點(diǎn)。兼容了PLD和通用門(mén)陣列的優(yōu)點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路,編程也很靈活。與門(mén)陣列等其它ASIC相比,它又具有設(shè)計(jì)開(kāi)發(fā)什么是周期短、設(shè)計(jì)制造成本低、開(kāi)發(fā)工具先進(jìn)、標(biāo)準(zhǔn)產(chǎn)品無(wú)需測(cè)試、質(zhì)量穩(wěn)定以及可實(shí)時(shí)在線(xiàn)檢驗(yàn)等優(yōu)點(diǎn),因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計(jì)和產(chǎn)品生產(chǎn)(一般在10,000件以下)之中。幾乎所有應(yīng)用門(mén)陣列、PLD和中小規(guī)模通用數(shù)字集成電路的場(chǎng)合均可應(yīng)用FPGA
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(xiàn)(Interconnect)三個(gè)部分。FPGA的基本特點(diǎn)主要有:
一是采用FPGA設(shè)計(jì)ASIC電路,用戶(hù)不需要投片生產(chǎn),就能得到合用的芯片。
二是FPGA可做其它全定制或半定制ASIC電路的中試樣片。
三是FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。
四是FPGA是ASIC電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。
五是FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。
可以說(shuō),F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。目前FPGA的品種很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。FPGA是由存放在片內(nèi)RAM中的程序來(lái)設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶(hù)可以根據(jù)不同的配置模式,采用不同的編程方式。加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無(wú)須專(zhuān)用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。FPGA有多種配置模式:并行主模式為一片F(xiàn)PGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片F(xiàn)PGA;串行模式可以采用串行PROM編程FPGA;外設(shè)模式可以將FPGA作為微處理器的外設(shè),由微處理器對(duì)其編程。
FPGA與ASIC、CPLD
1、FPGA和ASIC的比較
ASIC是英文的Application Specific Integrated Circuits縮寫(xiě),即專(zhuān)用集成電路,是指應(yīng)特定用戶(hù)要求和特定電子系統(tǒng)的需要而設(shè)計(jì)、制造的集成電路。目前用CPLD(復(fù)雜可編程邏輯器件)和FPGA(現(xiàn)場(chǎng)可編程邏輯陣列)來(lái)進(jìn)行ASIC設(shè)計(jì)是最為流行的方式之一,它們的共性是都具有用戶(hù)現(xiàn)場(chǎng)可編程特性,都支持邊界掃描技術(shù),但兩者在集成度、速度以及編程方式上具有各自的特點(diǎn)。ASIC的特點(diǎn)是面向特定用戶(hù)的需求,品種多、批量少,要求設(shè)計(jì)和生產(chǎn)周期短,它作為集成電路技術(shù)與特定用戶(hù)的整機(jī)或系統(tǒng)技術(shù)緊密結(jié)合的產(chǎn)物,與通用集成電路相比具有體積更小、重量更輕、功耗更低、可*性提高、性能提高、保密性增強(qiáng)、成本降低等優(yōu)點(diǎn)。
FPGA特別適合于樣品研制或小批量產(chǎn)品開(kāi)發(fā),使產(chǎn)品能以最快的速度上市,而當(dāng)市場(chǎng)擴(kuò)大時(shí),它可以很容易的由ASIC實(shí)現(xiàn),因此開(kāi)發(fā)風(fēng)險(xiǎn)也大為降低。但ASIC也有它固有的優(yōu)勢(shì),芯片可以獲得最優(yōu)的性能,即面積利用率高、速度快、功耗低,批量成本低,所以在今后一段時(shí)間內(nèi)ASIC仍然會(huì)占據(jù)高端芯片市場(chǎng)和大批量應(yīng)用的成熟中低端市場(chǎng)。
2、FPGA與CPLD的比較
盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點(diǎn),但由于CPLD和FPGA結(jié)構(gòu)上的差異,具有各自的特點(diǎn):
一是CPLD更適合完成各種算法和組合邏輯,FPGA更適合于完成時(shí)序FPGA邏輯。換句話(huà)說(shuō),FPGA更適合于觸發(fā)器豐富的結(jié)構(gòu),而CPLD更適合于觸發(fā)器有限而乘積項(xiàng)豐富的結(jié)構(gòu)。
二是CPLD的連續(xù)式布線(xiàn)結(jié)構(gòu)決定了它的時(shí)序延遲是均勻的和可預(yù)測(cè)的,而FPGA的分段式布線(xiàn)結(jié)構(gòu)決定了其延遲的不可預(yù)測(cè)性。
三是在編程上FPGA比CPLD具有更大的靈活性。CPLD通過(guò)修改具有固定內(nèi)連電路的邏輯功能來(lái)編程,FPGA主要通過(guò)改變內(nèi)部連線(xiàn)的布線(xiàn)來(lái)編程;FPGA可在邏輯門(mén)下編程,而CPLD是在邏輯塊下編程。
四是FPGA的集成度比CPLD高,具有更復(fù)雜的布線(xiàn)結(jié)構(gòu)和邏輯實(shí)現(xiàn)。
五是CPLD比FPGA使用起來(lái)更方便。CPLD的編程采用E2PROM或FASTFLASH技術(shù),無(wú)需外部存儲(chǔ)器芯片,使用簡(jiǎn)單。而FPGA的編程信息需存放在外部存儲(chǔ)器上,使用方法復(fù)雜。
六是PLD的速度比FPGA快,并且具有較大的時(shí)間可預(yù)測(cè)性。這是由于FPGA是門(mén)級(jí)編程,并且CLB之間采用分布式互聯(lián),而CPLD是邏輯塊級(jí)編程,并且其邏輯塊之間的互聯(lián)是集總式的。
七是在編程方式上,CPLD主要是基于E2PROM或FLASH存儲(chǔ)器編程,編程次數(shù)可達(dá)1萬(wàn)次,優(yōu)點(diǎn)是系統(tǒng)斷電時(shí)編程信息也不丟失。CPLD又可分為在編程器上編程和在系統(tǒng)編程兩類(lèi)。FPGA大部分是基于SRAM編程,編程信息在系統(tǒng)斷電時(shí)丟失,每次上電時(shí),需從器件外部將編程數(shù)據(jù)重新寫(xiě)入SRAM中。其優(yōu)點(diǎn)是可以編程任意次,可在工作中快速編程,從而實(shí)現(xiàn)板級(jí)和系統(tǒng)級(jí)的動(dòng)態(tài)配置。
八是CPLD保密性好,FPGA保密性差。
九是一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯。
fpga相關(guān)文章:fpga是什么
評(píng)論