FPGA基本概念與DE2開發(fā)平臺_第1頁
FPGA基本概念與DE2開發(fā)平臺_第2頁
FPGA基本概念與DE2開發(fā)平臺_第3頁
FPGA基本概念與DE2開發(fā)平臺_第4頁
FPGA基本概念與DE2開發(fā)平臺_第5頁
已閱讀5頁,還剩172頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第1章FPGA基本概念與DE2開發(fā)平臺

1.1可編程邏輯器件1.2CycloneⅡ系列FPGA1.3DE2開發(fā)平臺1.4DE2平臺的開發(fā)環(huán)境1.1可編程邏輯器件1.1.1可編程邏輯器件概述數(shù)字電子領(lǐng)域中三種基本的器件類型為存儲(chǔ)器、微處理器和邏輯器件。存儲(chǔ)器用來存儲(chǔ)數(shù)據(jù)表、數(shù)據(jù)庫、程序代碼等隨機(jī)信息;微處理器通過執(zhí)行軟件指令來完成如文字處理、視頻處理及工業(yè)控制等各種任務(wù);邏輯器件提供器件間的接口、數(shù)據(jù)通信、信號處理、數(shù)據(jù)顯示、時(shí)序和控制操作以及系統(tǒng)運(yùn)行等各種特定功能。邏輯器件可分為兩大類,即固定邏輯器件和可編程邏輯器件(PLD)。固定邏輯器件中的電路是永久性的,用于完成一種或一組功能。固定邏輯器件一旦制造完成,就無法改變,專用集成電路(ASIC)就是其中的一種。根據(jù)器件復(fù)雜程度的不同,固定邏輯器件從設(shè)計(jì)、定型到最終生產(chǎn)所需要的時(shí)間一般為數(shù)月至一年多不等,如果器件工作不滿足設(shè)計(jì)要求,或者應(yīng)用要求發(fā)生了變化,就必須重新開發(fā)全新的設(shè)計(jì)。設(shè)計(jì)和驗(yàn)證固定邏輯的前期工作需要大量的“非重發(fā)性工程成本”,或簡稱NRE。NRE表示在固定邏輯器件最終從芯片制造廠制造出來以前客戶需要投入的所有成本,這些成本包括工程資源、昂貴的設(shè)計(jì)工具軟件、用來制造芯片不同金屬層的昂貴的光刻掩模組以及初始原型器件的生產(chǎn)成本。這些NRE成本可能從數(shù)十萬美元至數(shù)百萬美元不等??删幊踢壿嬈骷鳛橐活悩?biāo)準(zhǔn)成品部件,能夠?yàn)橛脩籼峁└鞣N邏輯能力、速度和電壓特性,而且可以在任何時(shí)候?qū)Υ祟惼骷M(jìn)行修改,以完成多種不同的功能。對于可編程邏輯器件,設(shè)計(jì)人員可利用價(jià)格低廉的軟件工具快速開發(fā)、仿真和測試其設(shè)計(jì),然后將設(shè)計(jì)快速編程到器件中,并立即在實(shí)際運(yùn)行的電路中對設(shè)計(jì)進(jìn)行測試。原型中使用的PLD器件與正式生產(chǎn)最終設(shè)備(如網(wǎng)絡(luò)路由器、DSL調(diào)制解調(diào)器、DVD播放器或汽車導(dǎo)航系統(tǒng))時(shí)所使用的PLD器件完全相同,完全沒有NRE成本,最終的設(shè)計(jì)也比采用定制固定邏輯器件完成得更快。采用PLD的另一個(gè)關(guān)鍵優(yōu)點(diǎn)是在設(shè)計(jì)階段客戶可根據(jù)需要不斷地修改電路,直到對設(shè)計(jì)工作感到滿意為止,這是因?yàn)镻LD的結(jié)構(gòu)是基于可重寫的存儲(chǔ)器技術(shù),當(dāng)要改變設(shè)計(jì)時(shí),只需要簡單地對器件進(jìn)行重新編程即可。一旦設(shè)計(jì)完成,客戶可立即投入生產(chǎn),即利用最終的軟件設(shè)計(jì)文件簡單地對PLD器件進(jìn)行編程??删幊踢壿嬈骷膬煞N主要類型是現(xiàn)場可編程門陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD),這兩類可編程邏輯器件的結(jié)構(gòu)不同。與CPLD相比,F(xiàn)PGA可提供更高的邏輯密度、更豐富的特性和更高的性能。最新的FPGA器件可提供數(shù)百萬門的邏輯電路,這些先進(jìn)的器件還提供諸如內(nèi)建硬核處理器、大容量存儲(chǔ)器、時(shí)鐘管理系統(tǒng)等特性,并支持多種最新的高速接口技術(shù)。FPGA應(yīng)用范圍廣泛,如在數(shù)據(jù)處理和存儲(chǔ)、儀器儀表、電信和數(shù)字信號處理等方面都有大量應(yīng)用。與FPGA相比,CPLD提供的邏輯資源少得多,最高約一萬門左右。但CPLD可預(yù)測性好,對于關(guān)鍵的控制應(yīng)用非常理想。而且CPLD器件功耗相對較低且價(jià)格低廉,使其在成本敏感的、電池供電的便攜式應(yīng)用(如移動(dòng)電話和數(shù)字手持助理)中非常理想?!禘DN》雜志對可編程邏輯器件作過這樣的評價(jià):“可編程邏輯器件是邏輯器件產(chǎn)品中增長最快的領(lǐng)域,這主要有兩個(gè)基本原因。可編程邏輯器件不斷提高的單片器件邏輯門數(shù)量集成了眾多功能,不然的話,這些功能只能采用大量分立邏輯和存儲(chǔ)器芯片才能實(shí)現(xiàn),這可以改善最終系統(tǒng)的體積、功耗、性能、可靠性和成本。同樣重要的是這樣的事實(shí),在許多情況下只需要數(shù)十秒或數(shù)分鐘的時(shí)間,就可以在工作站或系統(tǒng)組裝線上配置和重新配置這些器件。這一能力提供了強(qiáng)大的靈活性,支持迅速地對最后一分鐘的設(shè)計(jì)修改,以及在設(shè)計(jì)定型前對各種想法進(jìn)行原型實(shí)驗(yàn),同時(shí)還可滿足在消費(fèi)者需求和競爭壓力下不斷縮短的上市時(shí)間最終期限要求。”(EDN,“PLD年度目錄”,2000年8月17日。)固定邏輯器件和可編程邏輯器件各有自己的優(yōu)點(diǎn)。例如,固定邏輯器件適合大批量應(yīng)用,因?yàn)樗鼈兛筛鼮榻?jīng)濟(jì)地大批量生產(chǎn)。對有些需要極高性能的應(yīng)用,固定邏輯器件也可能是最佳的選擇。然而,可編程邏輯器件提供了一些優(yōu)于固定邏輯器件的重要優(yōu)點(diǎn),主要包括以下幾個(gè)方面:(1)在設(shè)計(jì)過程中為客戶提供了更大的靈活性,因?yàn)閷τ诳删幊踢壿嬈骷碚f,設(shè)計(jì)反復(fù)只需要簡單地改變編程文件就可以了,而且設(shè)計(jì)改變的結(jié)果可立即在工作器件中看到。(2)不需要漫長的前置時(shí)間來制造原型或正式產(chǎn)品,因?yàn)榭删幊踢壿嬈骷呀?jīng)放在分銷商的貨架上并可隨時(shí)交付。(3)不需要客戶支付高昂的NRE成本和購買昂貴的掩模組,因?yàn)楣?yīng)商在設(shè)計(jì)其可編程器件時(shí)已經(jīng)支付了這些成本,并且可通過可編程邏輯器件產(chǎn)品線延續(xù)多年的生命期來分?jǐn)傔@些成本。(4)允許客戶在需要時(shí)僅訂購所需要的數(shù)量,從而使客戶可控制庫存。采用固定邏輯器件的客戶經(jīng)常會(huì)需要廢棄過量的庫存,而當(dāng)對其產(chǎn)品的需求高漲時(shí),他們又可能為器件供貨不足而苦惱,并且不得不面對生產(chǎn)延遲的現(xiàn)實(shí)。(5)甚至在設(shè)備交付給客戶以后還可以重新編程。由于有了可編程邏輯器件,因此設(shè)備制造商現(xiàn)在可以為已經(jīng)安裝在現(xiàn)場的產(chǎn)品增加新功能或者進(jìn)行升級。要實(shí)現(xiàn)這一點(diǎn),只需要通過Internet將新的編程文件下載到可編程邏輯器件中,就可以在系統(tǒng)中創(chuàng)建出新的硬件邏輯。(6)有越來越多的知識產(chǎn)權(quán)(IP)核心庫的支持。用戶可利用這些預(yù)定義和預(yù)測試的軟件模塊在可編程邏輯器件內(nèi)迅速實(shí)現(xiàn)系統(tǒng)功能。IP核心包括復(fù)雜數(shù)字信號處理算法、存儲(chǔ)器控制器直到總線接口和成熟的軟核微處理器等。此類IP核心為客戶節(jié)約了大量的時(shí)間和費(fèi)用,否則用戶可能需要數(shù)月的時(shí)間才能實(shí)現(xiàn)這些功能,而且還會(huì)進(jìn)一步延遲產(chǎn)品推向市場的時(shí)間。可編程邏輯器件的價(jià)值在于其能夠大大縮短電子產(chǎn)品制造商的開發(fā)周期,以及幫助他們更快地將產(chǎn)品推向市場。隨著PLD供應(yīng)商繼續(xù)致力于在可編程邏輯器件中集成更多的功能、降低其成本并提高能夠節(jié)約時(shí)間的IP核心的可用性,可編程邏輯器件一定會(huì)在數(shù)字設(shè)計(jì)人員中進(jìn)一步普及。1.1.2CPLD的結(jié)構(gòu)與原理大部分CPLD采用基于乘積項(xiàng)(Product-Term)的PLD結(jié)構(gòu),如Altera公司的MAX7000和MAX3000系列(EEPROM工藝)、Xilinx公司的XC9500系列(FLASH工藝)以及Lattice公司和Cypress公司的大部分產(chǎn)品(EEPROM工藝)。這里先看一下這種PLD的總體結(jié)構(gòu)(以MAX7000系列為例,其他型號的結(jié)構(gòu)與此都非常相似)。圖1.1是MAX7000E和MAX7000S系列CPLD的結(jié)構(gòu)框圖。這種PLD一般由三部分組成:宏單元(Macrocell)、可編程連線(PIA)和I/O控制塊。宏單元是PLD的基本結(jié)構(gòu),用以實(shí)現(xiàn)基本的邏輯功能。在MAX7000系列CPLD中,每16個(gè)宏單元組成一個(gè)邏輯陣列塊(LAB)。可編程連線負(fù)責(zé)信號傳遞,連接所有的宏單元。I/O控制塊負(fù)責(zé)輸入/輸出的電氣特性控制,比如可以設(shè)定集電極開路輸出、擺率控制、三態(tài)輸出等。圖1.1左上角的INPUT/GCLK1、INPUT/OE2/GCLK2和INPUT/OE1是全局時(shí)鐘、清零和輸出使能信號,這幾個(gè)信號通過PIA(可編程互連陣列)及專用連線與PLD中的每個(gè)宏單元相連,這些信號到每個(gè)宏單元的延時(shí)相同并且延時(shí)最短。圖1.1基于乘積項(xiàng)的PLD內(nèi)部結(jié)構(gòu)MAX7000E和MAX7000S系列CPLD的宏單元結(jié)構(gòu)如圖1.2所示。每個(gè)宏單元主要由三部分組成:邏輯陣列、乘積項(xiàng)選擇矩陣和可編程寄存器。圖中左側(cè)是邏輯陣列,也就是一個(gè)與或陣列,陣列連線的每一個(gè)交點(diǎn)都是一個(gè)可編程熔絲,如果導(dǎo)通就實(shí)現(xiàn)“與”邏輯;其后的乘積項(xiàng)選擇矩陣是一個(gè)“或”陣列,兩者一起完成組合邏輯。圖右側(cè)是一個(gè)可編程寄存器,它的時(shí)鐘、清零輸入都可以編程選擇,可以使用專用的全局清零和全局時(shí)鐘,也可以使用由內(nèi)部邏輯(邏輯陣列)產(chǎn)生的時(shí)鐘和清零。如果不需要該寄存器,也可以將它旁路,使信號直接輸給PIA或輸出到I/O腳。圖1.2宏單元結(jié)構(gòu)圖1.3是一個(gè)簡單的電路,參照該電路具體說明PLD是如何利用以上結(jié)構(gòu)來實(shí)現(xiàn)特定邏輯的。假設(shè)圖1.3中組合邏輯的輸出(AND3的輸出)為f,則f?=?(A?+?B)CD=?ACD+?BDD圖1.3一個(gè)簡單的組合邏輯電路CPLD將以圖1.4所示的方式實(shí)現(xiàn)圖1.3中的簡單組合邏輯電路。A、B、C、D由CPLD芯片的管腳輸入后進(jìn)入可編程連線陣列(PIA),在內(nèi)部會(huì)產(chǎn)生A、A、B、B、C、C、D、D等8個(gè)輸出。圖中每一個(gè)叉表示相連(可編程熔絲導(dǎo)通),可以得到:f?=?f1?+?f2D?=?ACD+?BCD從而實(shí)現(xiàn)了圖1.3中的組合邏輯。圖1.3電路中D觸發(fā)器的實(shí)現(xiàn)比較簡單,直接利用宏單元中的可編程D觸發(fā)器就可實(shí)現(xiàn)。時(shí)鐘信號CLK由I/O腳輸入后進(jìn)入芯片內(nèi)部的全局時(shí)鐘專用通道,直接連接到可編程觸發(fā)器的時(shí)鐘端??删幊逃|發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片管腳,這樣CPLD就完成了如圖1.3所示電路的功能。以上這些步驟都是由軟件自動(dòng)完成的,不需要人為干預(yù)。圖1.4電路在CPLD中的實(shí)現(xiàn)圖1.3所示的電路是一個(gè)很簡單的例子,只需要一個(gè)宏單元就可以完成。對于一個(gè)復(fù)雜的電路,一個(gè)宏單元是不能實(shí)現(xiàn)的,這時(shí)就需要通過并聯(lián)擴(kuò)展項(xiàng)和共享擴(kuò)展項(xiàng)將多個(gè)宏單元相連,宏單元的輸出也可以連接到可編程連線陣列,再作為另一個(gè)宏單元的輸入。這樣,CPLD就可以實(shí)現(xiàn)更復(fù)雜的邏輯。這種基于乘積項(xiàng)的PLD基本上都是由EEPROM和FLASH工藝制造的,上電即可自動(dòng)工作,無需其他芯片配合。1.1.3FPGA的結(jié)構(gòu)與原理FPGA最常用的結(jié)構(gòu)是查找表(Look-Up-Table,LUT)結(jié)構(gòu),如Altera的ACEX、APEX、Cyclone、CycloneⅡ系列和Xilinx的Spartan、Virtex系列等。這里以CycloneⅡ系列FPGA為例來說明。邏輯單元(LogicElement,LE)是構(gòu)成FPGA的基本單位之一,一個(gè)LE主要由一個(gè)4輸入LUT、一個(gè)寄存器及進(jìn)位和互連邏輯組成。LUT本質(zhì)上是一個(gè)RAM。目前FPGA中多使用4輸入的LUT,即一個(gè)LUT可以看成有4位地址線的16×1的RAM。當(dāng)用戶通過原理圖或HDL語言描述了一個(gè)邏輯電路以后,F(xiàn)PGA開發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路所有可能的結(jié)果,并把結(jié)果事先寫入RAM,這樣每輸入一個(gè)信號進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)地址進(jìn)行查表,找出地址對應(yīng)的內(nèi)容,然后輸出即可。也可以把它當(dāng)作一個(gè)4輸入的函數(shù)發(fā)生器,能夠?qū)崿F(xiàn)4變量輸入的所有邏輯。圖1.5是CycloneⅡ系列FPGA的一個(gè)LE的普通工作模式原理圖。FPGA的基本單元一般為一個(gè)4輸入查找表后接一個(gè)寄存器。圖1.5CycloneⅡ系列FPGA的LE的普通工作模式表1.1為一個(gè)4輸入與門的例子。A、B、C、D由FPGA芯片的管腳與可編程連線相連,然后作為地址線連到LUT,LUT中已經(jīng)事先寫入了所有可能的邏輯結(jié)果,通過地址查找到相應(yīng)的數(shù)據(jù)然后輸出,從而實(shí)現(xiàn)了組合邏輯。如果要用CycloneⅡFPGA實(shí)現(xiàn)圖1.3所示的電路,用查找表實(shí)現(xiàn)f=ACD+BCD,則電路中的D觸發(fā)器可直接利用LUT后的寄存器來實(shí)現(xiàn)。時(shí)鐘信號CLK由I/O腳輸入后進(jìn)入芯片內(nèi)部的時(shí)鐘專用通道,直接連接到觸發(fā)器的時(shí)鐘端。觸發(fā)器的輸出可以與I/O腳相連,把結(jié)果輸出到芯片管腳,這樣FPGA就完成了圖1.3所示電路的功能。與CPLD一樣,這些步驟都是由軟件自動(dòng)完成的,不需要人為干預(yù)。這個(gè)電路是一個(gè)很簡單的例子,只需要一個(gè)LUT加上一個(gè)觸發(fā)器就可以完成。對于一個(gè)LUT無法完成的電路,需要通過進(jìn)位邏輯將多個(gè)單元相連,這樣FPGA就可以實(shí)現(xiàn)復(fù)雜的邏輯。由于LUT主要適合采用SRAM工藝生產(chǎn),因此目前大部分FPGA都是基于SRAM工藝的,而基于SRAM工藝的芯片在掉電后信息就會(huì)丟失,必須外加一片專用配置芯片。上電時(shí),由這個(gè)專用配置芯片把數(shù)據(jù)加載到FPGA中,F(xiàn)PGA才可以正常工作,由于配置時(shí)間很短,因而不會(huì)影響系統(tǒng)的正常工作。也有少數(shù)FPGA采用反熔絲或FLASH工藝,這種FPGA不需要外加專用的配置芯片。隨著技術(shù)的發(fā)展,在2004年以后,一些廠家推出了一些新的可編程邏輯器件,這些產(chǎn)品模糊了CPLD和FPGA的界線。例如Altera的MAXⅡ系列PLD,就是一種基于FPGA(LUT)結(jié)構(gòu)、集成配置芯片的PLD,本質(zhì)上它是一種在內(nèi)部集成了配置芯片的FPGA,但由于配置時(shí)間極短,上電后就可以工作,對用戶來說,感覺不到配置過程,可以像傳統(tǒng)的CPLD一樣使用,加上容量和傳統(tǒng)的CPLD類似,因此Altera把它歸為CPLD。還有像Lattice的XP系列FPGA,也是使用了同樣的原理,將外部配置芯片集成到內(nèi)部,在使用方法上和CPLD類似,但是因?yàn)槿萘看?,性能和傳統(tǒng)FPGA的相同,也采用LUT架構(gòu),所以Lattice把它歸為FPGA。從可編程邏輯器件的結(jié)構(gòu)和原理可以知道,CPLD分解組合邏輯的功能很強(qiáng),一個(gè)宏單元就可以分解十幾個(gè)甚至二三十個(gè)組合邏輯輸入。而FPGA的一個(gè)LUT只能處理4輸入的組合邏輯,因此CPLD適用于設(shè)計(jì)譯碼器等復(fù)雜的組合邏輯。但FPGA的制造工藝決定了FPGA芯片中包含的LUT和觸發(fā)器的數(shù)量非常多,往往都是成千上萬,而CPLD一般只能做到512個(gè)邏輯單元,而且如果用芯片價(jià)格除以邏輯單元數(shù)量,F(xiàn)PGA的平均邏輯單元成本將大大低于CPLD。如果設(shè)計(jì)中使用到大量觸發(fā)器,例如設(shè)計(jì)一個(gè)復(fù)雜的時(shí)序邏輯,那么使用FPGA就是一個(gè)很好的選擇。CPLD具有上電即可工作的特性,而大部分FPGA需要一個(gè)加載過程,如果系統(tǒng)要求可編程邏輯器件上電就能工作,那么就應(yīng)該選擇CPLD。1.1.4結(jié)構(gòu)化ASIC在過去相當(dāng)長的時(shí)間內(nèi),ASIC和FPGA一直是電子設(shè)計(jì)的主流技術(shù),二者不同的技術(shù)特征決定了它們應(yīng)用于不同的市場:ASIC被用于大批量的專用產(chǎn)品,以盡可能攤薄高額的設(shè)計(jì)與制造成本,實(shí)現(xiàn)良好的性價(jià)比;FPGA雖單價(jià)昂貴,但由于其可編程的靈活性而廣受小批量應(yīng)用的青睞。近年來半導(dǎo)體市場發(fā)生了顯著的變化,打破了二者之間的平衡,產(chǎn)品面市時(shí)間的壓力以及市場對產(chǎn)品設(shè)計(jì)的快捷性和靈活性要求的提升,使得FPGA的發(fā)展勢頭強(qiáng)勁。但原有FPGA架構(gòu)固有的功耗高、速度慢、資源冗余、價(jià)格昂貴等弱點(diǎn)使其在面對復(fù)雜功能設(shè)計(jì)的要求時(shí)還是會(huì)感到吃力,因此人們開始考慮通過技術(shù)上的融合,在ASIC和FPGA之間找到一條“中間道路”,結(jié)構(gòu)化ASIC便是到目前為止最成功的嘗試。Altera是結(jié)構(gòu)化ASIC市場的領(lǐng)導(dǎo)者,其結(jié)構(gòu)化ASIC技術(shù)HardCopy和HardCopyⅡ目前在市場中占有超過50%的份額。2006年上半年,結(jié)構(gòu)化ASIC技術(shù)的開創(chuàng)者LSILogic公司宣布停止對其Rapidchip結(jié)構(gòu)化ASIC技術(shù)的進(jìn)一步研發(fā)投入,將定制芯片技術(shù)集中服務(wù)于核心市場,使Altera公司在這個(gè)領(lǐng)域中的優(yōu)勢更加明顯。據(jù)市場調(diào)研公司GartnerDataquest副總裁兼首席半導(dǎo)體分析師BryanLewis的預(yù)測,2006年結(jié)構(gòu)化ASIC的銷售額將從其之前預(yù)測的4.73億美元降至4.17億美元,但在2007年,結(jié)構(gòu)化ASIC的銷售額將增長至5.64億美元,待到2010年時(shí),其銷售額將突破10億美元。在每年300億美元左右的半導(dǎo)體市場中,結(jié)構(gòu)化ASIC技術(shù)約占3%左右的市場份額。In-Stat的ASIC/ASSP首席分析師JerryWorchel認(rèn)為:“如果你尋找一種高復(fù)雜度但需求量小的芯片,F(xiàn)PGA是不二選擇。如果你需要1000至20?000片,而成本要在你的系統(tǒng)預(yù)算約束內(nèi),則FPGA也是一種好方法。但你肯定不會(huì)買10萬片單價(jià)5美元的FPGA,這就是結(jié)構(gòu)化ASIC的市場了。”HardCopy與HardCopyⅡ利用原有的FPGA開發(fā)工具,將成功實(shí)現(xiàn)于FPGA器件上的系統(tǒng)通過特定的技術(shù)直接向ASIC轉(zhuǎn)化,從而克服了傳統(tǒng)ASIC設(shè)計(jì)中普遍存在的問題。與HardCopy技術(shù)相比,對于系統(tǒng)級的大規(guī)模ASIC開發(fā),有不少難于克服的問題,其中包括開發(fā)周期長、產(chǎn)品上市慢、一次性成功率低、有最少投片量的要求、設(shè)計(jì)軟件工具繁多且昂貴、開發(fā)流程復(fù)雜等。例如,此類ASIC開發(fā),首先要求可觀的技術(shù)人員隊(duì)伍、高達(dá)數(shù)十萬美元的開發(fā)軟件費(fèi)用和高昂的掩模費(fèi)用,整個(gè)設(shè)計(jì)周期可能長達(dá)一年。導(dǎo)致ASIC設(shè)計(jì)的高成本和一次性低成功率的原因很大部分是由于需要設(shè)計(jì)和掩模的層數(shù)太多(多達(dá)十幾層)。然而,如果利用HardCopyⅡ技術(shù)設(shè)計(jì)ASIC,則開發(fā)軟件費(fèi)用僅2000美元左右(QuartusⅡ),SOC級規(guī)模的設(shè)計(jì)周期不超過20周,轉(zhuǎn)化的ASIC與用戶設(shè)計(jì)習(xí)慣的掩模層只有兩層,可實(shí)現(xiàn)FPGA向ASIC的無縫轉(zhuǎn)化,一次性投片的成功率近乎100%。而且用ASIC實(shí)現(xiàn)后的系統(tǒng)性能將比以前在HardCopyⅡFPGA上驗(yàn)證的模型的性能提高近50%,功耗則降低40%。一次性成功率的大幅度提高即意味著設(shè)計(jì)成本的大幅降低和產(chǎn)品上市速度的大幅提高。HardCopyⅡ技術(shù)是一種全新的ASIC設(shè)計(jì)解決方案,即將專用的硅片設(shè)計(jì)和FPGA至HardCopy的自動(dòng)遷移過程結(jié)合在一起的技術(shù),它首先利用QuartusⅡ?qū)⑾到y(tǒng)模型成功實(shí)現(xiàn)于HardCopyFPGA上,然后幫助設(shè)計(jì)者把可編程解決方案無縫地遷移到低成本的ASIC上。這樣,HardCopy器件就把大容量FPGA的靈活性和ASIC的市場優(yōu)勢結(jié)合起來,對于有大批量要求并對成本敏感的電子系統(tǒng)產(chǎn)品,避開了直接設(shè)計(jì)ASIC的困難。從原型設(shè)計(jì)提升至產(chǎn)品制造,通過將FPGA的設(shè)計(jì)十分容易地移植到HardCopy器件上,達(dá)到既降低成本又加快面市周期的目的。本質(zhì)上,HardCopyⅡ器件是FPGA的精確復(fù)制,剔除了可編程性、專用配置和采用金屬互連的走線,這類器件的硅片面積就更小,成本就更低,而且還改善了時(shí)序特性。HardCopyⅡ的前端設(shè)計(jì)流程如圖1.6所示,整個(gè)設(shè)計(jì)流程都由QuartusⅡ完成。Altera提供了一種簡單、統(tǒng)一的設(shè)計(jì)方法,可以從FPGA原型中開發(fā)結(jié)構(gòu)化ASIC。在一個(gè)QuartusⅡ工程中可以選擇兩種流程之一,即HardCopyⅡ在先的設(shè)計(jì)流程和StratixⅡ在先的設(shè)計(jì)流程,來設(shè)計(jì)StratixⅡFPGA和HardCopyⅡ配套器件。圖1.6HardCopyⅡ的前端設(shè)計(jì)流程HardCopyⅡ在先的流程:首先在HardCopyⅡ中編譯設(shè)計(jì),然后選擇StratixⅡFPGA配套器件,對設(shè)計(jì)進(jìn)行原型開發(fā)及在系統(tǒng)驗(yàn)證。這種流程可以避免在標(biāo)準(zhǔn)單元ASIC流程中由于功能問題而出現(xiàn)的重制風(fēng)險(xiǎn);它支持FPGA在系統(tǒng)軟件早期的協(xié)同設(shè)計(jì)。在以下情況中可以使用這種流程:①項(xiàng)目的目標(biāo)是在ASIC中實(shí)現(xiàn)設(shè)計(jì);②項(xiàng)目所需要的是大批量產(chǎn)品,并且批量價(jià)格要低;③項(xiàng)目的設(shè)計(jì)特性比較平穩(wěn),不會(huì)出現(xiàn)大的改動(dòng);④與FPGA原型相比,項(xiàng)目HardCopyⅡ設(shè)計(jì)需要更高的性能及更低的功耗。StratixⅡ在先的流程:首先在StratixⅡFPGA中編譯設(shè)計(jì),然后移植到HardCopyⅡ配套器件。采用這種流程時(shí),用戶可先采用StratixⅡFPGA將產(chǎn)品推向市場,然后將設(shè)計(jì)移植到HardCopyⅡ來降低成本。在以下情況中可以使用這種流程:①希望采用FPGA來降低開發(fā)成本,獲得最大的靈活性;②需要等待客戶反饋來預(yù)測設(shè)計(jì)更新;③條件合適時(shí),根據(jù)需要將設(shè)計(jì)轉(zhuǎn)換到HardCopyⅡ器件,以降低成本。與FPGA設(shè)計(jì)類似的HardCopyⅡ,其前端設(shè)計(jì)流程使用FPGA進(jìn)行全面的在系統(tǒng)驗(yàn)證,降低了設(shè)計(jì)的重制風(fēng)險(xiǎn),支持軟件早期協(xié)同設(shè)計(jì),使開發(fā)總成本降至最低,并且可實(shí)現(xiàn)從FPGA向HardCopyⅡ結(jié)構(gòu)化ASIC的無縫移植。FPGA和HardCopy器件具有相同的知識產(chǎn)權(quán)(IP)和引腳,無需電路板重制,根據(jù)產(chǎn)量和產(chǎn)品壽命,可以靈活地選擇使用FPGA或HardCopy器件并縮短產(chǎn)品的上市時(shí)間。HardCopyⅡ采用業(yè)界標(biāo)準(zhǔn)的后端設(shè)計(jì)流程,設(shè)計(jì)通過了FPGA在系統(tǒng)的全面驗(yàn)證。在QuartusⅡ軟件中生成了所需的設(shè)計(jì)文件后,用戶將設(shè)計(jì)文件提交給AlteraHardCopy設(shè)計(jì)中心,設(shè)計(jì)中心經(jīng)驗(yàn)豐富的ASIC設(shè)計(jì)工程師使用業(yè)界標(biāo)準(zhǔn)的設(shè)計(jì)方法和EDA工具獲得HardCopyⅡ器件后端的物理實(shí)現(xiàn)。HardCopyⅡ后端設(shè)計(jì)流程如表1.2所示。根據(jù)設(shè)計(jì)的復(fù)雜程度,從提交網(wǎng)表到設(shè)計(jì)下單,其后端設(shè)計(jì)周轉(zhuǎn)時(shí)間只有一到兩個(gè)月。QuartusⅡ軟件為后端最終布線提供了前端注釋單元布局。由于在提交網(wǎng)表前,必須在QuartusⅡ軟件中同時(shí)達(dá)到FPGA和HardCopy器件的時(shí)序逼近,因此與標(biāo)準(zhǔn)單元ASIC流程相比,最終的后端時(shí)序逼近要相對簡單一些。在典型的標(biāo)準(zhǔn)單元ASIC流程中,網(wǎng)表提交后還需要進(jìn)行設(shè)計(jì)驗(yàn)證,導(dǎo)致多次進(jìn)行驗(yàn)證迭代、工程改動(dòng)要求(ECO)以及布局布線合并等,進(jìn)一步推遲了計(jì)劃。而HardCopy設(shè)計(jì)在FPGA中進(jìn)行了全面的在系統(tǒng)驗(yàn)證,在后端流程中不需要功能ECO,這樣就可以預(yù)測Altera的后端設(shè)計(jì)周轉(zhuǎn)時(shí)間,降低了在標(biāo)準(zhǔn)單元ASIC流程中出現(xiàn)的計(jì)劃推遲的風(fēng)險(xiǎn)。1.2CycloneⅡ系列FPGA1.2.1CycloneⅡ系列FPGA概述Altera的DE2教育平臺選用的FPGA是CycloneⅡ系列FPGA中的EP2C35F672C6。CycloneⅡ系列FPGA是繼Cyclone系列低成本FPGA在市場上取得成功之后,Altera公司推出的更低成本的FPGA,它將低成本FPGA的密度擴(kuò)展到了68416個(gè)邏輯單元(LEs),從而可以在低成本FPGA上實(shí)現(xiàn)復(fù)雜的數(shù)字系統(tǒng)。CycloneⅡ系列FPGA采用TSMC(臺積電)的90?nm工藝,與競爭對手采用的90?nm工藝的FPGA相比,其性能高出60%而功耗減低一半,而其價(jià)格則幾乎可以與ASIC產(chǎn)品競爭。優(yōu)異的性價(jià)比使CycloneⅡ系列FPGA可以廣泛地應(yīng)用于汽車電子、消費(fèi)電子、音/視頻處理、通信以及測試測量等終端產(chǎn)品市場。CycloneⅡ系列FPGA支持Altera公司的NiosⅡ嵌入式軟核處理器。NiosⅡ具有靈活的可配置特性而且可以非常容易地實(shí)現(xiàn)各種外設(shè)的擴(kuò)展。對于并行事務(wù)處理,可以在一個(gè)FPGA上放置多個(gè)NiosⅡ軟核,大大提高了處理器的效率,也方便多個(gè)小組同時(shí)開發(fā),進(jìn)一步加快了新產(chǎn)品的研發(fā)速度。在數(shù)字信號處理方面,CycloneⅡ系列FPGA也具有明顯的優(yōu)勢。CycloneⅡ系列FPGA可以內(nèi)置多達(dá)150個(gè)18×18的硬件乘法器,片上大容量的M4KRAM以及經(jīng)過專門優(yōu)化的對外部存儲(chǔ)器的高速存取特性,使它們非常適合于數(shù)字信號處理器或協(xié)處理器的應(yīng)用場合。Altera公司提供的數(shù)字信號處理器IP核以及DSPBuilder軟件包使數(shù)字信號處理產(chǎn)品的開發(fā)非常容易。CycloneⅡ系列FPGA的主要性能比較見表1.3。圖1.7是EP2C20的內(nèi)部結(jié)構(gòu)示意圖,CycloneⅡ系列FPGA的內(nèi)部結(jié)構(gòu)基本上都是這種排列方式。CycloneⅡ系列器件主要由以行列形式排列的邏輯陣列塊(LogicArrayBlock,LAB)、嵌入式存儲(chǔ)器塊及嵌入式乘法器組成,鎖相環(huán)(PLL)為FPGA提供時(shí)鐘,輸入/輸出單元(Input/OutputElements,IOEs)提供輸入/輸出接口邏輯。邏輯陣列、嵌入式存儲(chǔ)器塊、嵌入式乘法器、輸入/輸出單元及鎖相環(huán)之間可實(shí)現(xiàn)各種速度的信號互連。圖1.7CycloneⅡ系列FPGA的內(nèi)部結(jié)構(gòu)示意圖邏輯單元是CycloneⅡ系列中可以實(shí)現(xiàn)用戶邏輯定制的最小單元。每16個(gè)LE組成一個(gè)邏輯陣列塊(LAB)。LAB以行列形式在FPGA器件中排列。CycloneⅡ系列FPGA的LE數(shù)量在4608~68416范圍之間變化(參見表1.3)。CycloneⅡ系列FPGA有片內(nèi)PLL,并有多達(dá)16個(gè)全局時(shí)鐘線的全局時(shí)鐘網(wǎng)絡(luò)為邏輯陣列塊、嵌入式存儲(chǔ)器塊、嵌入式乘法器和輸入/輸出單元提供時(shí)鐘。CycloneⅡ系列FPGA的全局時(shí)鐘線也可以作為高速輸出信號使用。CycloneⅡ的PLL可以實(shí)現(xiàn)FPGA片內(nèi)時(shí)鐘的合成、移相,也可以實(shí)現(xiàn)高速差分信號的輸出。M4K嵌入式存儲(chǔ)器塊由帶校驗(yàn)的4?K位(4096位)真雙口(TureDual-Port)RAM組成,可配置成真雙口模式、簡單雙口模式或單口模式的存儲(chǔ)器,位寬最高可達(dá)36位,存取速度最高260?MHz。M4K嵌入式存儲(chǔ)器分布于邏輯陣列塊之間。CycloneⅡ系列FPGA的M4K嵌入式存儲(chǔ)器的容量為119?K~1152?K位不等。每個(gè)嵌入式乘法器可以配置成兩個(gè)9×9或一個(gè)18×18的乘法器,處理速度最高可達(dá)250?MHz。CycloneⅡ的嵌入式乘法器在FPGA上按列排列。輸入/輸出單元排列在邏輯陣列塊的行和列的末端,可以提供各種類型的單端或差分邏輯輸入/輸出。1.2.2邏輯單元邏輯單元是CycloneⅡ系列FPGA邏輯的最小單元,它能夠完成各種復(fù)雜的邏輯應(yīng)用。一個(gè)邏輯單元的主要特性如下:(1)?4輸入查找表相當(dāng)于一個(gè)4輸入的函數(shù)發(fā)生器,能夠?qū)崿F(xiàn)4變量輸入的所有邏輯。(2)一個(gè)可編程寄存器。(3)一個(gè)進(jìn)位鏈連接(CarryChainConnection)。(4)一個(gè)寄存器鏈連接(RegisterChainConnection)。(5)能夠驅(qū)動(dòng)所有可能的互連,包括本地互連、列間、行間、寄存器鏈以及直接互連。(6)支持寄存器打包。(7)支持寄存器反饋。CycloneⅡ邏輯單元的結(jié)構(gòu)如圖1.8所示。圖1.8CycloneⅡ邏輯單元的結(jié)構(gòu)每個(gè)邏輯單元(LE)都可以配置成D、T、JK或SR模式,每一個(gè)LE都有獨(dú)立的數(shù)據(jù)輸入(data1、data2、data3、data4)、清除(labclr1、labclr2、DEV_CLRn)、時(shí)鐘(labclk1、labclk2)及時(shí)鐘使能輸入(labclkena1、labclkena2)。時(shí)鐘網(wǎng)絡(luò)、GPIO(GeneralPurposeInput/Output,通用輸入/輸出)及內(nèi)部邏輯都可以驅(qū)動(dòng)寄存器的時(shí)鐘及清除信號。內(nèi)部邏輯及GPIO可以驅(qū)動(dòng)時(shí)鐘使能信號。用于組合邏輯時(shí),查找表旁路掉寄存器而直接驅(qū)動(dòng)輸出。每個(gè)LE有三個(gè)輸出,可以用來驅(qū)動(dòng)行、列布線,直接連接布線和本地布線。其中兩個(gè)輸出用來驅(qū)動(dòng)行、列以及直接布線,一個(gè)輸出用來驅(qū)動(dòng)本地互連布線。查找表輸出和寄存器輸出可以完全獨(dú)立地分別驅(qū)動(dòng)三個(gè)輸出中的兩個(gè),即用查找表驅(qū)動(dòng)其中一個(gè)輸出時(shí),可以用寄存器的輸出驅(qū)動(dòng)另一個(gè)輸出。由于這種做法可以讓查找表和寄存器各自獨(dú)立完成互不相干的功能,因此有效提高了器件的利用率。這種工作方式稱做寄存器打包(RegisterPacking)。在寄存器打包模式下工作時(shí),LAB同步加載信號無效。另外一種特殊的打包模式是把寄存器的輸出反饋到同一邏輯單元的查找表的輸入,也就是說,寄存器與同一邏輯單元的查找表打包。這個(gè)邏輯單元可以驅(qū)動(dòng)被寄存的或未被寄存的查找表輸出。除上述的輸入、輸出之外,CycloneⅡ的邏輯單元還有一個(gè)進(jìn)位鏈路輸入和一個(gè)進(jìn)位鏈路輸出,這種LAB內(nèi)的進(jìn)位鏈路可以使同一個(gè)LAB中的邏輯單元級聯(lián)起來。寄存器鏈路輸出可以讓同一個(gè)LAB中的查找表完成組合邏輯的任務(wù),而用這個(gè)LAB中的寄存器可以完成移位寄存器的功能。這樣可以提高LAB間互連的速度并節(jié)省布線資源。LE有兩種工作模式:普通模式和算術(shù)模式。將LE的六個(gè)輸入(四個(gè)數(shù)據(jù)輸入、進(jìn)位輸入和寄存器鏈輸入)進(jìn)行不同的處理可以實(shí)現(xiàn)不同的功能。LAB范圍的信號(時(shí)鐘輸入、異步清除、同步清除、同步加載及時(shí)鐘使能等信號)在兩種工作模式下都是有效的。QuartusⅡ軟件通過參數(shù)化模塊庫(LibraryofParameterizedModules,LPM)自動(dòng)選擇LE的工作模式,用戶也可根據(jù)自己的應(yīng)用來選擇LE的工作模式,以提高設(shè)計(jì)的性能。LE的普通工作模式如圖1.9所示,其適用于通用邏輯以及組合邏輯的場合。在這種模式下,LE相當(dāng)于一個(gè)4輸入查找表,QuartusⅡ編譯器自動(dòng)從data3或進(jìn)位輸入(Cin)中選擇一個(gè)作為4輸入查找表的輸入。普通工作模式下的LE支持寄存器打包和寄存器反饋。圖1.9LE的普通工作模式LE的算術(shù)工作模式如圖1.10所示,其適用于實(shí)現(xiàn)加法器、累加器、計(jì)數(shù)器和比較器。算術(shù)工作模式下的LE實(shí)際上是一個(gè)2輸入查找表。算術(shù)模式下工作時(shí),查找表輸出可以是帶寄存器的輸出,也可以是不帶寄存器的輸出。算術(shù)模式下的LE也支持寄存器反饋和寄存器打包。圖1.10LE的算術(shù)工作模式QuartusⅡ的編譯器會(huì)自動(dòng)選擇進(jìn)位鏈邏輯,用戶也可以在設(shè)計(jì)時(shí)自己使用進(jìn)位鏈邏輯,一些LPM則會(huì)根據(jù)功能的需求自動(dòng)選擇進(jìn)位邏輯。當(dāng)進(jìn)位鏈超過16個(gè)LE,即超過一個(gè)LAB的范圍時(shí),QuartusⅡ的編譯器會(huì)自動(dòng)連接同列的LAB。LAB與M4KRAM塊都是垂直布置的,當(dāng)QuartusⅡ?yàn)樵鰪?qiáng)型適配時(shí),會(huì)自動(dòng)垂直連接多個(gè)LAB以實(shí)現(xiàn)較長的進(jìn)位鏈,從而方便LAB與M4KRAM塊的橫向互連。1.2.3邏輯陣列塊(LAB)每一個(gè)LAB包括16個(gè)LE、LAB控制信號(清除、時(shí)鐘、時(shí)鐘使能、復(fù)位等)、LE進(jìn)位鏈、寄存器進(jìn)位鏈及LAB本地互連。LAB本地互連用以連接LAB內(nèi)各個(gè)LE。寄存器鏈把LAB內(nèi)一個(gè)LE寄存器的輸出與相鄰LE寄存器的輸入連在一起。圖1.11是CycloneⅡ系列FPGA的一個(gè)LAB的內(nèi)部結(jié)構(gòu)及可能的各種互連。QuartusⅡ的編譯器會(huì)用一個(gè)LAB或相鄰的多個(gè)LAB實(shí)現(xiàn)相關(guān)的邏輯,從而利用LAB本地互連的優(yōu)勢提高設(shè)計(jì)的效率。LAB本地互連可以驅(qū)動(dòng)本LAB的LE,行互連、列互連及本LAB的LE的輸出可以驅(qū)動(dòng)本地互連。相鄰的LAB、鎖相環(huán)PLL、M4KRAM塊、乘法器可以通過直接互連來驅(qū)動(dòng)本地互連。直接互連減少了對列互連和行互連的占用,提高了使用的靈活性。每個(gè)LE可通過本地互連和直接互連驅(qū)動(dòng)48個(gè)LE。圖1.12是LAB互連的示意圖。圖1.11LAB的結(jié)構(gòu)圖1.12LAB互連示意圖LAB的控制信號主要有:2個(gè)時(shí)鐘、2個(gè)時(shí)鐘使能、2個(gè)異步清除、1個(gè)同步清除和1個(gè)同步加載。圖1.13是LAB控制信號的示意圖,其最多有7個(gè)控制信號同時(shí)可用。同步加載與寄存器打包不能同時(shí)使用。每個(gè)LAB最多可以有4個(gè)非全局控制信號,其他的控制信號只有是全局控制信號的才可用。圖1.13LAB控制信號示意圖同步清除和同步加載信號是針對整個(gè)LAB范圍而言的,即這兩個(gè)信號對整個(gè)LAB范圍內(nèi)的所有寄存器有效。每個(gè)LAB可以使用2個(gè)時(shí)鐘信號和2個(gè)時(shí)鐘使能信號,時(shí)鐘信號和時(shí)鐘使能信號是同時(shí)使用的。例如,當(dāng)一個(gè)LE選用了一個(gè)時(shí)鐘信號labclk1時(shí),意味著它同時(shí)選擇了labclkena1。如圖1.13所示,LAB行時(shí)鐘和LAB本地互連共同產(chǎn)生LAB的控制信號。LAB的清除信號是針對寄存器的,LE可通過異步清除信號直接清除。每個(gè)LAB最多支持2個(gè)異步清除信號:labclr1和labclr2。LAB不支持異步加載功能。除上述的同步清除和異步清除控制之外,CycloneⅡ系列FPGA還支持芯片范圍的清除功能。DEV_CLRn可以清除FPGA上所有寄存器的值,而且其優(yōu)先級高于所有的控制信號。1.2.4MultiTrack互連CycloneⅡ系列FPGA內(nèi)部M4KRAM、嵌入式乘法器、LE、IOE之間的互連由采用DirectDrive技術(shù)的MultiTrack互連結(jié)構(gòu)完成。MultiTrack互連線由連續(xù)的不同長度的性能經(jīng)過優(yōu)化的連線組成,用以進(jìn)行不同設(shè)計(jì)模塊之間的通信。DirectDrive技術(shù)是專有的確定連線技術(shù),它確保任何功能無論在器件的什么位置都具有一致的布線。這項(xiàng)技術(shù)免除了由改變設(shè)計(jì)引起的系統(tǒng)重優(yōu)化過程,從而大大簡化了模塊設(shè)計(jì)的系統(tǒng)集成過程,使得設(shè)計(jì)者可以自由添加、修改和移動(dòng)設(shè)計(jì)的不同部分,而不會(huì)對設(shè)計(jì)的性能造成不利影響。CycloneⅡ系列FPGA的MultiTrack互連由跨越固定距離的行互連(直接連接、R4和R24)與列互連(寄存器鏈、C4和C6)組成。對在不同器件中實(shí)現(xiàn)的布線,MultiTrack可以保證布線長度具有可預(yù)測性與重復(fù)性,從而可方便地實(shí)現(xiàn)在不同密度器件上的移植設(shè)計(jì)。行互連用于實(shí)現(xiàn)位于同一行的M4KRAM塊、嵌入式乘法器以及PLL之間的信號互連。行互連資源包括相鄰LAB之間以及相鄰塊之間的直接連接,可以向左或向右跨越4個(gè)塊的R4互連以及可以橫向跨越24個(gè)塊的R24互連。直接互連使LAB、M4KRAM、嵌入式乘法器以及鎖相環(huán)可以直接與自己的左右鄰居互連,PLL只能有一邊可以連接直接互連或行互連。直接互連可以實(shí)現(xiàn)相鄰塊之間的高速互連而不需要占用其他行互連資源。R4互連的示意圖如圖1.14所示。R4互連可以向左或向右跨越4個(gè)LAB、3個(gè)LAB和1個(gè)M4KRAM或者3個(gè)LAB和1個(gè)嵌入式乘法器。通過R4互連可以實(shí)現(xiàn)相鄰的4個(gè)塊范圍內(nèi)的高速互連。每一個(gè)LAB都有自己向左和向右的R4互連。圖1.14中選擇了一個(gè)LAB作為主LAB,來描述它的兩個(gè)R4互連。所有LAB都具有相同的R4互連結(jié)構(gòu)。R4互連可以驅(qū)動(dòng)LAB、M4KRAM、嵌入式乘法器、PLL和行IOE,同樣也可以被這些塊驅(qū)動(dòng);R4互連與LAB相連時(shí),可以被主LAB與相鄰的LAB驅(qū)動(dòng),主LAB和左側(cè)相鄰的LAB可以驅(qū)動(dòng)主LAB的左側(cè)R4互連,主LAB和右側(cè)相鄰的LAB可以驅(qū)動(dòng)主LAB的右側(cè)R4互連。R4互連可以驅(qū)動(dòng)相鄰的R4互連以擴(kuò)展其驅(qū)動(dòng)LAB的能力。為了實(shí)現(xiàn)跨行驅(qū)動(dòng),R4互連也可以驅(qū)動(dòng)R24互連、C4和C16互連。圖1.14R4互連示意圖R24互連可以實(shí)現(xiàn)橫跨24個(gè)LAB、M4KRAM、嵌入式乘法器及IOE的互連,從而實(shí)現(xiàn)大范圍的互連。R24不直接驅(qū)動(dòng)LAB,而是通過C4和R4實(shí)現(xiàn)對LAB的驅(qū)動(dòng)。R24可以直接驅(qū)動(dòng)R24、R4、C4和C16。列互連與行互連類似,用以縱向連接M4KRAM、LAB、嵌入式乘法器和IOE。列互連包括LAB內(nèi)的寄存器鏈、C4互連和C16互連。寄存器鏈可以實(shí)現(xiàn)LAB內(nèi)LE寄存器之間的快速連接。一個(gè)LE寄存器鏈的輸出可以與另一個(gè)LE寄存器鏈的輸入直接相連,從而實(shí)現(xiàn)高速移位寄存器。用寄存器鏈實(shí)現(xiàn)同一個(gè)LAB內(nèi)LE間互連的示意圖如圖1.15所示。圖1.15同一個(gè)LAB內(nèi)LE間互連示意圖如圖1.16所示的C4互連,可以實(shí)現(xiàn)向下或者向上的跨越4個(gè)M4KRAM、乘法器或者LAB的互連。每個(gè)LAB都有自己向上和向下的C4互連。C4互連可以驅(qū)動(dòng)M4KRAM、嵌入式乘法器、LAB、PLL和IOE中的任何一塊,也可以被它們驅(qū)動(dòng)。C4互連還可以驅(qū)動(dòng)其他的C4互連以增加自己的驅(qū)動(dòng)范圍。相鄰LAB可以驅(qū)動(dòng)對方的C4互連。C16互連可以實(shí)現(xiàn)垂直跨越16個(gè)LAB、M4KRAM、嵌入式乘法器及IOE的互連,從而實(shí)現(xiàn)大范圍的互連。C16互連不直接驅(qū)動(dòng)LAB,而是通過C4和R4實(shí)現(xiàn)對LAB的驅(qū)動(dòng)。CycloneⅡ系列FPGA內(nèi)部各功能模塊之間的互連途徑見表1.4。圖1.16C4互連示意圖1.2.5全局時(shí)鐘網(wǎng)絡(luò)及鎖相環(huán)CycloneⅡ系列FPGA通過全局時(shí)鐘網(wǎng)絡(luò)和鎖相環(huán)實(shí)現(xiàn)時(shí)鐘管理。CycloneⅡ系列FPGA最多可以有4個(gè)鎖相環(huán)和16個(gè)全局時(shí)鐘網(wǎng)絡(luò)。每個(gè)全局時(shí)鐘網(wǎng)絡(luò)由獨(dú)立的時(shí)鐘控制塊來實(shí)現(xiàn)其時(shí)鐘源的動(dòng)態(tài)選擇。PLL時(shí)鐘輸出、CLK引腳輸入、DPCLK引腳輸入及內(nèi)部邏輯都可以驅(qū)動(dòng)全局時(shí)鐘網(wǎng)絡(luò)。不同CycloneⅡ器件的時(shí)鐘資源如表1.5所示。CycloneⅡ系列中,EP2C20及以上FPGA的PLL、CLK引腳、DPCLK引腳及時(shí)鐘控制塊的分布如圖1.17所示。FPGA每邊有4個(gè)時(shí)鐘控制塊,在FPGA的4個(gè)角的每一個(gè)角上各有兩個(gè)DPCLK引腳,稱做CDPCLK,這兩個(gè)DPCLK引腳同時(shí)只能有一個(gè)作為時(shí)鐘輸入,另一個(gè)作為GPIO使用。圖1.17EP2C20及以上FPGA的PLL、CLK引腳、DPCLK引腳及時(shí)鐘控制塊的分布EP2C20以上的CycloneⅡ系列FPGA有16個(gè)時(shí)鐘輸入專用引腳,每邊4個(gè)。如果不作時(shí)鐘輸入使用,則可以通過MultiTrack互連作為通用輸入引腳,但只能使用基于LE的寄存器,而不支持基于LOE的寄存器。EP2C20以上的CycloneⅡ系列FPGA共有20個(gè)雙用途時(shí)鐘輸入引腳(左右各4個(gè)、上下各2個(gè)以及芯片4個(gè)角的每個(gè)角上各2個(gè))。CDPCLK引腳輸入的時(shí)鐘信號先經(jīng)過復(fù)用之后才進(jìn)入時(shí)鐘控制塊,與其他的DPCLK相比,會(huì)產(chǎn)生額外的延遲。在DPCLK的引腳輸入和驅(qū)動(dòng)輸出之間有一個(gè)可編程延遲鏈,用于設(shè)定其傳播延時(shí),可以用QuartusⅡ軟件中的“InputDelayfromDual-PurposeClockPintoFan-OutDestinations”設(shè)置延時(shí)。DPCLK可以連接到全局時(shí)鐘網(wǎng)絡(luò)上用作時(shí)鐘、異步清除、預(yù)置、時(shí)鐘使能信號,也可以用作類似于PCI接口中的TRDY(TargetReady)、IRDY(InitiatorReady)和外部存儲(chǔ)器接口中的DQS等協(xié)議控制信號。全局時(shí)鐘網(wǎng)絡(luò)可以為FPGA上的各種資源(如LE、IOE、嵌入式乘法器、M4KRAM)提供時(shí)鐘源,也可以作為控制信號(如時(shí)鐘、異步清除、預(yù)置、時(shí)鐘使能信號等),還可以用作類似于PCI接口中的TRDY、IRDY和外部存儲(chǔ)器接口中的DQS等協(xié)議控制信號。每一個(gè)全局時(shí)鐘網(wǎng)絡(luò)都有一個(gè)時(shí)鐘控制塊,用以動(dòng)態(tài)選擇該時(shí)鐘網(wǎng)絡(luò)的時(shí)鐘源以及使能或禁用該時(shí)鐘網(wǎng)絡(luò)。以下信號可以作為時(shí)鐘控制塊的輸入:與時(shí)鐘控制塊在同一側(cè)的4個(gè)時(shí)鐘輸入引腳,PLL的3個(gè)PLL時(shí)鐘輸出,與時(shí)鐘控制塊在同一側(cè)的4個(gè)DPCLK引腳(包括CDPCLK引腳)以及4個(gè)片內(nèi)邏輯生成的信號。但同時(shí)最多只能有2個(gè)時(shí)鐘輸入引腳、2個(gè)PLL時(shí)鐘、1個(gè)DPCLK引腳和1個(gè)內(nèi)部信號輸入。這6個(gè)輸入中,2個(gè)PLL時(shí)鐘和2個(gè)時(shí)鐘輸入引腳可以動(dòng)態(tài)地選擇,以驅(qū)動(dòng)全局時(shí)鐘網(wǎng)絡(luò),而DPCLK引腳輸入和內(nèi)部信號輸入只能靜態(tài)地選擇。時(shí)鐘控制塊的原理如圖1.18所示。圖1.18時(shí)鐘控制塊的原理圖1.18中的CLKSWITCH信號可以在配置文件中設(shè)置,或者在使用手動(dòng)PLL轉(zhuǎn)換特性時(shí)動(dòng)態(tài)切換。CLKSELECT[1..0]由內(nèi)部邏輯產(chǎn)生,當(dāng)器件工作在用戶模式時(shí),可以用來動(dòng)態(tài)選擇時(shí)鐘網(wǎng)絡(luò)的時(shí)鐘源。靜態(tài)時(shí)鐘的選擇在配置文件中實(shí)現(xiàn),不能在用戶模式下控制。在用戶模式下,可以通過CLKENA動(dòng)態(tài)地使能或禁止全局時(shí)鐘網(wǎng)絡(luò)。CycloneⅡ系列FPGA器件使用復(fù)用器將16個(gè)全局時(shí)鐘網(wǎng)絡(luò)組合成一個(gè)6位總線,作為列IOE時(shí)鐘、LAB行時(shí)鐘和行IOE時(shí)鐘,如圖1.19所示。在LAB層面上,再用復(fù)用器將6個(gè)LAB行時(shí)鐘分配給該LAB中的LE寄存器。LAB行時(shí)鐘可以為LAB、M4KRAM、嵌入式乘法器和行I/O提供時(shí)鐘。圖1.19EP2C20以上器件的時(shí)鐘分配CycloneⅡ系列FPGA的PLL為器件提供通用時(shí)鐘,它具有以下特性:(1)輸入時(shí)鐘的倍頻和分頻。(2)時(shí)鐘移相。(3)可編程的占空比。(4)三個(gè)內(nèi)部時(shí)鐘輸出。(5)一個(gè)專用的外部時(shí)鐘輸入。(6)支持差分時(shí)鐘輸出。(7)支持手動(dòng)時(shí)鐘切換。(8)支持三種差分時(shí)鐘反饋模式。(9)鎖定指示輸出。(10)具有專門的控制信號。EP2C20以上的CycloneⅡ系列FPGA器件都有4個(gè)PLL。PLL的結(jié)構(gòu)如圖1.20所示。PLL主要完成壓控振蕩器VCO的輸出頻率與輸入?yún)⒖夹盘栴l率及相位的同步。輸入頻率經(jīng)m分頻后進(jìn)入鑒頻鑒相器PFD,經(jīng)PLL鎖定后,PFD的兩個(gè)輸入具有相同的頻率,即圖1.20PLL的結(jié)構(gòu)一般k取1,也可以設(shè)置為2。當(dāng)k取1時(shí),有PLL輸出到全局時(shí)鐘網(wǎng)絡(luò)或外部時(shí)鐘電路的時(shí)鐘頻率為m和c的取值范圍為1~32,n的取值范圍為1~4。CycloneⅡ系列FPGA的PLL具有可編程的時(shí)鐘移相能力,移相的步長最小為45°,即移相的分辨率是壓控振蕩器VCO的周期除以8,如果VCO的頻率為1000?MHz,則分辨率為

/8=125ps。PLL的輸出不僅可以驅(qū)動(dòng)全局時(shí)鐘,其c2輸出還可以驅(qū)動(dòng)專用的PLL輸出引腳PLL<#>_OUT。PLL的輸出頻率由下式給出:其中,c分別為c0、c1和c2三個(gè)計(jì)數(shù)器的設(shè)定值。1.2.6嵌入式存儲(chǔ)器CycloneⅡ系列FPGA的存儲(chǔ)器由多列M4KRAM塊組成。M4KRAM可以靈活地配置成各種工作模式,如真雙口RAM、簡單雙口RAM、單口RAM、ROM或者FIFO,可以帶校驗(yàn)位,也可以不帶校驗(yàn)位。EP2C35有105個(gè)M4KRAM塊,共483840位。M4KRAM的特性如表1.6所示??梢园袽4KRAM塊配置成各種模式的存儲(chǔ)器,如表1.7所示。M4KRAM塊支持4種時(shí)鐘模式,表1.8列出了不同的時(shí)鐘模式。表1.9列出了不同存儲(chǔ)器模式下能夠使用的時(shí)鐘模式。來自相鄰LAB塊的直接互連、R4互連和C4互連都可以驅(qū)動(dòng)M4KRAM的本地互連,最多可達(dá)16根線的M4KRAM塊的數(shù)據(jù)輸出可以直接驅(qū)動(dòng)R4互連、C4互連以及左右相鄰的LAB直接互連。LAB行時(shí)鐘提供M4KRAM塊的時(shí)鐘,M4KRAM塊的本地互連將來自M4K相鄰的LAB塊的直接互連、R4互連和C4互連的信號轉(zhuǎn)換為地址信號與數(shù)據(jù)輸入信號。圖1.21所示為M4KRAM塊的布線。圖1.21M4KRAM塊的布線1.2.7嵌入式乘法器嵌入式乘法器為CycloneⅡ系列FPGA提供了數(shù)字信號處理(DigitalSignalProcessing,DSP)的能力,可以用來實(shí)現(xiàn)快速傅里葉變換(FFT)、離散余弦變換(DCT)及有限脈沖響應(yīng)(FIR)等數(shù)字信號處理,使CycloneⅡ系列FPGA可以高效地用于音頻/視頻信號處理。CycloneⅡ系列FPGA的嵌入式乘法器可以配置成9×9或18×18的乘法器進(jìn)行工作,在這兩種工作模式下,如果同時(shí)使用輸入/輸出寄存器,則最高性能可達(dá)到250?MHz。各種器件的乘法器資源見表1.10。嵌入式乘法器由兩個(gè)輸入寄存器、一個(gè)乘法單元、一個(gè)輸出寄存器以及相關(guān)的控制信號組成,其內(nèi)部結(jié)構(gòu)如圖1.22所示。如表1.10所示,嵌入式乘法器按列排列,根據(jù)器件的不同,可以是1~3列。嵌入式乘法器的高度與LAB行的高度一樣。嵌入式乘法器在CycloneⅡ系列FPGA中的位置如圖1.23所示。圖1.22嵌入式乘法器的結(jié)構(gòu)圖1.23嵌入式乘法器在CycloneⅡ系列FPGA中的位置嵌入式乘法器的兩個(gè)操作數(shù)可以是符號數(shù),也可以是無符號數(shù)。如果兩個(gè)操作數(shù)都是無符號數(shù),則相乘的結(jié)果是無符號數(shù);只要其中有一個(gè)是符號數(shù),則相乘的結(jié)果是符號數(shù)??刂菩盘杝igna和signb分別表示數(shù)據(jù)A和數(shù)據(jù)B是符號數(shù)還是無符號數(shù),為1表示該操作數(shù)是符號數(shù),signa和signb可以在運(yùn)行時(shí)動(dòng)態(tài)地改變。乘法器的接口布線如圖1.24所示。來自相鄰LAB塊的直接互連、R4互連和C4互連都可以驅(qū)動(dòng)乘法器的行接口互連,乘法器可以通過行接口互連與左右相鄰的LAB通信。左右LAB塊最多可以各有16根信號線與乘法器的行接口互連連接。乘法器的行接口互連提供乘法器的輸入,乘法器可以直接輸出到R4互連、C4互連或左右LAB的本地互連。圖1.24乘法器的接口布線乘法器有兩種工作模式:9×9模式和18×18模式。圖1.25是乘法器的18位工作模式,此時(shí)乘法器配置成一個(gè)18×18的乘法器。這種模式下的兩個(gè)輸入操作數(shù)最多可以是18位,它們可以是符號數(shù),也可以是無符號數(shù),輸入/輸出都可以寄存。圖1.25乘法器的18位工作模式9×9模式下,一個(gè)嵌入式乘法器塊可以配置成兩個(gè)9×9的乘法器,這種模式下每個(gè)乘法器的兩個(gè)輸入操作數(shù)最多可以是9位,可以是符號數(shù),也可以是無符號數(shù),輸入/輸出都可以寄存。每個(gè)乘法器只有一個(gè)signa和一個(gè)signb,當(dāng)一個(gè)乘法器用作兩個(gè)9×9的乘法器時(shí),輸入數(shù)據(jù)A的兩個(gè)輸入符號必須相同,輸入數(shù)據(jù)B的兩個(gè)輸入也必須具有相同的符號表示。如果不用signa和signb,QuartusⅡ軟件將默認(rèn)乘法器實(shí)現(xiàn)無符號乘法。圖1.26是嵌入式乘法器的9位工作模式。圖1.26乘法器的9位工作模式QuartusⅡ軟件通過宏功能模塊(Megafunction)的MegaWizardPlug-InManager對乘法器的工作模式和參數(shù)進(jìn)行配置。Altera提供了使用乘法器的兩種方法:例化和推斷。這兩種方法都是通過對lpm_mult(相乘)、altmult_add(乘加)、altmult_accum(相乘累加)等三個(gè)宏功能模塊的調(diào)用來實(shí)現(xiàn)的。1.2.8IOE的結(jié)構(gòu)及特性CycloneⅡ系列FPGA支持多種單端I/O標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)包括LVTTL、LVCMOS、SSTL-2、SSTL-18、HSTL-18、HSTL-15、PCI和PCI-X。當(dāng)FPGA與其他高級存儲(chǔ)器件如雙倍數(shù)據(jù)速率存儲(chǔ)器(DDR和DDR2)、SDRAM和QDRⅡSRAM等器件一起工作時(shí),單端I/O標(biāo)準(zhǔn)是關(guān)鍵因素。表1.11列出了CycloneⅡ器件支持的單端I/O標(biāo)準(zhǔn)及其目標(biāo)性能。與單端I/O標(biāo)準(zhǔn)相比,CycloneⅡ器件的差分信號能提供更好的噪聲容限,產(chǎn)生的電磁干擾(EMI)更低,功耗也更低。表1.12列出了CycloneⅡ器件支持的差分I/O標(biāo)準(zhǔn)及其目標(biāo)性能。圖1.27所示為CycloneⅡ系列FPGA的LVDS接口,圖1.28所示為CycloneⅡ系列FGPA的RSDS和mini-LVDS接口。圖1.27CycloneⅡ系列FPGA的LVDS接口圖1.28CycloneⅡ系列FGPA的RSDS和mini-LVDS接口在FPGA市場上,CycloneⅡ器件擴(kuò)展了FPGA在低成本、大批量領(lǐng)域中的應(yīng)用。FPGA如今不再僅限于外圍應(yīng)用,也可以在系統(tǒng)中執(zhí)行很多關(guān)鍵性的處理任務(wù)。隨著FPGA越來越多地應(yīng)用于系統(tǒng)的數(shù)據(jù)路徑,當(dāng)系統(tǒng)存儲(chǔ)需求超過片內(nèi)豐富的存儲(chǔ)器資源時(shí),F(xiàn)PGA必須具有與外部存儲(chǔ)器件連接的接口。Altera基于成功的Cyclone器件系列,通過和業(yè)界領(lǐng)先的存儲(chǔ)器供應(yīng)商合作,確保了用戶能夠?qū)⒆钚碌拇鎯?chǔ)器器件連接至CycloneⅡ系列FPGA。CycloneⅡ器件被設(shè)計(jì)成為能夠通過一個(gè)專用的接口與各種標(biāo)準(zhǔn)的存儲(chǔ)器進(jìn)行通信,保證快速可靠的數(shù)據(jù)傳輸,傳輸速率最高達(dá)到668Mb/s。開發(fā)人員可以在幾分鐘里把SDRAM和SRAM等器件集成到他們的系統(tǒng)中去,和基于CycloneⅡ優(yōu)化的、現(xiàn)成的IP控制器核一起運(yùn)行。表1.13總結(jié)了CycloneⅡ器件支持的外部存儲(chǔ)器接口。1.3DE2開發(fā)平臺1.3.1DE2板上資源及硬件布局DE2是Altera公司針對大學(xué)教學(xué)及研究機(jī)構(gòu)推出的FPGA多媒體開發(fā)平臺。DE2為用戶提供了豐富的外設(shè)及多媒體特性,并具有靈活而可靠的外圍接口設(shè)計(jì)。DE2能幫助使用者迅速理解和掌握實(shí)時(shí)多媒體工業(yè)產(chǎn)品設(shè)計(jì)的技巧,并提供系統(tǒng)設(shè)計(jì)的驗(yàn)證。DE2平臺的設(shè)計(jì)和制造完全按照工業(yè)產(chǎn)品標(biāo)準(zhǔn)進(jìn)行,可靠性很高。DE2的硬件布局如圖1.29所示。DE2平臺上提供的資源如下:(1)?AlteraCycloneⅡ系列的EP2C35F672C6FPGAU11,內(nèi)含35000個(gè)邏輯單元(LE)。(2)主動(dòng)串行配置器件EPCS16U30。(3)板上內(nèi)置用于編程調(diào)試和用戶API設(shè)計(jì)的USBBlaster,支持JTAG模式和AS模式;U25是實(shí)現(xiàn)USBBlaster的USB接口芯片F(xiàn)T245B;U26是用以控制和實(shí)現(xiàn)JTAG模式和AS模式配置的CPLDEPM3128,可以用SW19選擇配置模式;USB接口為J9。(4)?512?K字節(jié)SRAM(U18)。(5)?8?M字節(jié)(1M×4×16)SDRAM(U17)。(6)?1?M字節(jié)閃存(可升級至4?M字節(jié))(U20)。(7)?SD卡接口(U19)。(8)?4個(gè)按鍵KEY0~KEY3。(9)?18個(gè)撥動(dòng)開關(guān)SW0~SW17。(10)?9個(gè)綠色LED燈LEDG0~LEDG8。(11)?18個(gè)紅色LED燈LEDR0~LEDR17。(12)兩個(gè)板上時(shí)鐘源(50?MHz晶振Y1和27?MHz晶振Y3),也可通過J5使用外部時(shí)鐘。(13)?24位CD品質(zhì)音頻的編/解碼器WM8371(U1),帶有麥克風(fēng)的輸入插座J1、線路輸入插座J2和線路輸出插座J3。(14)?VGADACADV7123(U34,內(nèi)含3個(gè)10位高速DAC)及VGA輸出接口J13。(15)支持NTSC和PAL制式的TV解碼器ADV7181B(U33)及TV接口J12。(16)?10?M/100?M以太網(wǎng)控制器DM9000AE(U35)及網(wǎng)絡(luò)接口J4。(17)?USB主從控制器ISP1362(U31)及接口(J10和J11)。(18)?RS232收發(fā)器MAX232(U15)及9針連接器J6。(19)?PS/2鼠標(biāo)/鍵盤連接器J7。(20)?IRDA收發(fā)器U14。(21)帶二極管保護(hù)的兩個(gè)40腳擴(kuò)展端口JP1和JP2。(22)?2×16字符的LCD模塊U2。(23)平臺通過插座J8接入直流9?V供電,SW18為總電源開關(guān)。(24)?Altera公司的第三方Terasic提供針對DE2平臺的130萬像素的CCD攝像頭模塊以及320×240點(diǎn)陣的彩色LCD模塊,可通過JP1和JP2接入。圖1.29DE2的硬件布局1.3.2DE2原理DE2平臺的結(jié)構(gòu)框圖如圖1.30所示。以下對DE2平臺的各部分硬件逐一作以說明。圖1.30DE2平臺的結(jié)構(gòu)框圖

1.FPGA?EP2C35F672DE2平臺選用的FPGAEP2C35F672是Altera公司的CycloneⅡ系列產(chǎn)品之一。封裝為672腳的FinelineBGA,是2C35中引腳最多的封裝,最多可以有475個(gè)I/O引腳供用戶使用。EP2C35F672由33216個(gè)LE組成,片上有105個(gè)M4KRAM塊,每個(gè)M4KRAM塊由4K(4096)位的數(shù)據(jù)RAM加512位的校驗(yàn)位共483840位組成。端口寬度根據(jù)需求進(jìn)行配置,可以是1、2、4、8、9、16、18、32或36位。在1、2、4、8、9、16、18等模式下,是真正的雙口操作(可以配置成一讀一寫、兩讀或兩寫)。EP2C35片內(nèi)有35個(gè)18×18的硬件乘法器,利用Altera公司提供的DSPBuilder和其他DSP的IP庫,可以用EP2C35低成本地實(shí)現(xiàn)數(shù)字信號。EP2C35片上有4個(gè)PLL,可實(shí)現(xiàn)多個(gè)時(shí)鐘域。

2.USBBlaster電路與主動(dòng)串行配置器件DE2平臺上內(nèi)置了USBBlaster電路,使用方便而且可靠,只需要用一根USB電纜將電腦和DE2平臺連接起來就可以進(jìn)行調(diào)試。DE2平臺上的USBBlaster提供了JTAG下載與調(diào)試模式及主動(dòng)串行(AS)編程模式。除此之外,DE2平臺附帶的DE2控制面板軟件通過USBBlaster與FPGA通信,可以方便地實(shí)現(xiàn)DE2的測試。EP2C35是基于RAM的可編程邏輯器件,器件掉電后,配置信息會(huì)完全丟失。FPGA可以采用多種配置方式,如使用計(jì)算機(jī)終端并通過下載電纜直接下載配置數(shù)據(jù)的方式,以及利用電路板上的微處理器從存儲(chǔ)器空間讀取配置數(shù)據(jù)的配置方式。最通用的方法是使用專用配置器件。Altera的新型串行配置器件基于高效的設(shè)計(jì)架構(gòu),其價(jià)格只有相應(yīng)的CycloneⅡ或Cyclone器件平均價(jià)格的10%。CycloneⅡ、Cyclone和StratixⅡ器件具有內(nèi)嵌數(shù)據(jù)壓縮技術(shù)的產(chǎn)品,可以使用小型的串行配置器件來配置大規(guī)模FPGA,從而進(jìn)一步降低配置器件的相關(guān)成本。這使得CycloneⅡ或Cyclone系列器件和新型串行配置器件的組合成為業(yè)界第一個(gè)真正的低成本SOPC解決方案。這個(gè)組合擴(kuò)展了CycloneⅡ及Cyclone器件的價(jià)格優(yōu)勢,超越了其他低成本可編程產(chǎn)品,為時(shí)尚消費(fèi)領(lǐng)域、通信、計(jì)算機(jī)外部設(shè)備、汽車及工業(yè)化等應(yīng)用領(lǐng)域提供了高性價(jià)比的解決方案。Altera公司的主動(dòng)串行配置器件有EPCS1、EPCS4、EPCS16和EPCS64等4種規(guī)格。用于加載CycloneⅡ系列FPGA配置文件的各種規(guī)格的存儲(chǔ)器容量見表1.14。CycloneⅡ系列FPGA與配置器件的配合見表1.15。由于EPCS1的存儲(chǔ)器容量為1048576位,而EP2C5的二進(jìn)制文件容量為1265792位,超過了EPCS1的容量,這時(shí)打開EP2C5的數(shù)據(jù)壓縮功能,就能夠用EPCS1來配置EP2C5了。采用配置數(shù)據(jù)壓縮后,根據(jù)不同的數(shù)據(jù)文件,配置數(shù)據(jù)尺寸一般會(huì)降低35%~55%。配置數(shù)據(jù)被壓縮后寫入串行配置器件中,F(xiàn)PGA配置時(shí)再對壓縮數(shù)據(jù)解壓,從而降低了對配置器件容量的要求。注意,在JTAG模式下進(jìn)行配置時(shí),CycloneⅡ不支持配置數(shù)據(jù)壓縮。SOPC應(yīng)用中,在Quartus下編譯生成的是FPGA的配置文件(.sof或?.pof),在NiosⅡIDE下生成的是程序代碼。一般的配置情況是將FPGA的配置文件(.sof或?.pof)燒到EPCS器件中去,而將NiosⅡIDE下生成的程序代碼燒到FLASH器件中去(此時(shí)需設(shè)置NiosⅡ從FLASH器件啟動(dòng))。也可以將FPGA的配置文件(.sof或.pof)和NiosⅡ?IDE下生成的程序代碼一齊燒到EPCS器件中去,NiosⅡ從EPCS上啟動(dòng)。此時(shí),需設(shè)置NiosⅡ從EPCS器件上啟動(dòng)。

3.SRAM、SDRAM、FLASH存儲(chǔ)器及SD卡接口DE2平臺提供各種常用的存儲(chǔ)器,包含1片8?M字節(jié)的SDRAM、一片512?K字節(jié)的SRAM和一片4?M字節(jié)(在早期版本的DE2上為1?M字節(jié))的FLASH存儲(chǔ)器。另外,通過SD卡接口,可以使用SPI模式的SD卡作為存儲(chǔ)介質(zhì),兩個(gè)40引腳的插座JP1和JP2可以配置成IDE接口使用,從而可以連接大容量的存儲(chǔ)介質(zhì)。SDRAM與EP2C35F672C6連接的引腳分配見表1.16,F(xiàn)LASH存儲(chǔ)器與EP2C35F672C6連接的引腳分配見表1.17,SRAM與EP2C35F672C6連接的引腳分配見表1.18。DE2平臺上SD卡接口的原理如圖1.31所示。SD卡可以支持兩種模式,即SD卡模式和SPI模式。DE2中按SPI模式接線,該模式與SD卡模式相比,速度較低,但使用非常簡單。SD卡接口引腳定義見表1.19。圖1.31SD卡接口原理圖4.按鍵、波段開關(guān)、LED、七段數(shù)碼管DE2平臺提供了4個(gè)按鍵,所有按鍵都使用了施密特觸發(fā)防抖動(dòng)功能,按鍵按下時(shí)輸出低電平,釋放時(shí)恢復(fù)高電平。DE2平臺上有18個(gè)波段開關(guān),用來設(shè)定電平狀態(tài)。DE2平臺上有9個(gè)綠色的發(fā)光二極管和18個(gè)紅色的發(fā)光二極管以及8個(gè)七段數(shù)碼管。按鍵與波段開關(guān)的原理圖見圖1.32。圖1.33為LED的接線原理圖。按鍵、波段開關(guān)及LED與EP2C35F672C6連接的引腳分配參見附錄B。七段數(shù)碼管顯示原理圖見圖1.34。圖1.32按鍵與波段開關(guān)的原理圖圖1.33LED接線原理圖圖1.34七段數(shù)碼管顯示原理圖

5.時(shí)鐘源DE2平臺上提供了兩個(gè)時(shí)鐘源:一個(gè)由晶振Y1提供(50?MHz),連接在EP2C35F672C6的N2引腳上;另一個(gè)由晶振Y3提供(27?MHz),連接在EP2C35F672C6的D13引腳上。也可以通過外部時(shí)鐘輸入SMA接口J1輸入時(shí)鐘,這個(gè)時(shí)鐘連在EP2C35F672C6的P26引腳上。

6.音頻編/解碼器DE2的音頻輸入/輸出功能由Wolfson公司的低功耗立體聲24位Σ-Δ音頻編/解碼芯片WM8731完成。WM8731的音頻采樣速率為8~96?kHz可調(diào);提供2線與3線兩種與主控制器連接的接口方式;支持4種音頻數(shù)據(jù)模式:I2S模式、左對齊模式、右對齊模式和DSP模式;數(shù)據(jù)位可以是16位或32位。WM8731包含了線路輸入、麥克風(fēng)輸入及耳機(jī)輸出。兩路線路輸入RLINEIN和LLINEIN可以以1.5?dB的步距在?34.5~12dB范圍內(nèi)進(jìn)行對數(shù)音量調(diào)節(jié),完成A/D轉(zhuǎn)換后,還可以經(jīng)高通數(shù)字濾波有效去除輸入中的直流成分。一路麥克風(fēng)輸入可以在?6~34?dB范圍內(nèi)進(jìn)行音量調(diào)節(jié),三路模擬輸入均有單獨(dú)的靜音功能。DAC輸出、線路輸入旁路及麥克風(fēng)輸入經(jīng)過側(cè)音電路后可相加作為輸出,輸出可以直接驅(qū)動(dòng)線路輸出(LOUT和ROUT),也可以通過耳機(jī)放大器輸出驅(qū)動(dòng)耳機(jī)(RHPOUT和LHPOUT)。耳機(jī)放大電路的增益可以在?73~6dB范圍內(nèi)以1?dB的步距進(jìn)行調(diào)整。關(guān)于音頻編/解碼器的詳細(xì)設(shè)計(jì)和使用參見第4章。

7.VGADACDE2平臺的VideoDAC選用了AnalogDevice公司的ADV7123。ADV7123由三個(gè)10位高速DAC組成,最高時(shí)鐘速率為240?MHz,即可以達(dá)到最高240?MS/s的數(shù)據(jù)吞吐率。當(dāng)fCLK?=?140?MHz,fOUT?=?40?MHz時(shí),DAC的SFDR(無雜散動(dòng)態(tài)范圍)為?53?dB;當(dāng)fCLK?=?40?MHz,fOUT?=?1?MHz時(shí),DAC的SFDR為?70?dB。ADV7123的BLANK引腳可以用來輸出空白屏幕。ADV7123在100?Hz的刷新率下最高分辨率為1600×1200。關(guān)于VGADAC的詳細(xì)設(shè)計(jì)和使用參見第4章。

8.電視解碼器DE2采用ADV7181作為電視解碼芯片。ADV7181是一款集成的視頻解碼器,支持多種格式的模擬視頻信號輸入,包括各種制式的CVBS信號、S-Video和YPrPb分量輸入;可以自動(dòng)檢測NTSC、PAL、SECAM及其兼容的各種標(biāo)準(zhǔn)模擬基帶電視信號,包括PAL-B/G/H/I/D、PAL-M/N、PAL-CombinationN、NTSC-M、NTSC-J、SECAM50?Hz/60?Hz、NTSC4.43和PAL60等。ADV7181的數(shù)字輸出為16位或8位的與CCIR656標(biāo)準(zhǔn)兼容的YCrCb4:2:2視頻數(shù)據(jù),還包括垂直同步VS、水平同步HS及場同步等信號。ADV7181共有6路模擬輸入,通過配置可以接收CVBS復(fù)合視頻、S-Video及YPrPb分量等多種模擬信號。DE2平臺只選用AIN6作為CVBS復(fù)合視頻信號的輸入,沒有使用其他5個(gè)模擬輸入口。ADV7181的數(shù)字輸出可以是8位寬度的,也可以是16位寬度的,在DE2平臺上顯示8位數(shù)據(jù)寬度??赏ㄟ^I2C總線讀/寫ADV7181的寄存器來控制ADV7181的行為。DE2平臺上ADV7181的I2C總線讀地址時(shí)為0x40,寫地址時(shí)為0x41。關(guān)于ADV7181的詳細(xì)設(shè)計(jì)和使用參見第4章。

9.以太網(wǎng)控制器10M/100M以太網(wǎng)控制器選用DAVICOM半導(dǎo)體公司的DM9000A。DM9000A集成了帶有通用處理器接口的MAC和PHY,支持100Base-T和10Base-T應(yīng)用,帶有auto-MDIX,支持10?Mb/s和100?Mb/s的全雙工操作。DM9000A完全兼容IEEE802.3u規(guī)范,支持IP/TCP/UDP求和校驗(yàn),支持半雙工模式背壓數(shù)據(jù)流控。關(guān)于DM9000A的詳細(xì)設(shè)計(jì)和使用參見第4章。

10.USB主從控制器DE2平臺上設(shè)計(jì)了一個(gè)USBOTG芯片ISP1362,即可將DE2作為一個(gè)USBHost使用,也可將DE2作為一個(gè)USBDevice使用,這種設(shè)計(jì)在多媒體應(yīng)用中非常合理。ISP1362是飛利浦公司推出的OTG解決方案系列中的產(chǎn)品,它在單芯片上集成了一個(gè)OTG控制器、一個(gè)高級主控制器(PSHC)和一個(gè)基于飛利浦ISP1181的外設(shè)控制器。ISP1362的OTG控制器完全兼容USB?2.0及On-The-GoSupplement1.0協(xié)議,主機(jī)和設(shè)備控制器兼容USB?2.0協(xié)議,并支持12?Mb/s的全速傳輸和1.5?Mb/s的低速傳輸。DE2平臺上的ISP1362與Terasic公司的驅(qū)動(dòng)程序配合,可以通過Avalon總線接入NiosⅡ處理器。

11.RS232、PS/2鼠標(biāo)/鍵盤連接器、IRDA收發(fā)器DE2平臺上集成了一個(gè)3線RS232串行接口,其原理圖如圖1.35所示。DE2平臺上的PS/2接口原理如圖1.36所示,該接口用以連接鼠標(biāo)和鍵盤。DE2平臺上還集成了一個(gè)最高速率可達(dá)115.2?Kb/s的紅外收發(fā)器IRDA,其原理圖如圖1.37所示。RS232、PS/2及IRDA與FPGA連接的引腳分配見表1.20。圖1.35RS232接口原理圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論