FPGA實(shí)戰(zhàn)訓(xùn)練精粹_第1頁(yè)
FPGA實(shí)戰(zhàn)訓(xùn)練精粹_第2頁(yè)
FPGA實(shí)戰(zhàn)訓(xùn)練精粹_第3頁(yè)
FPGA實(shí)戰(zhàn)訓(xùn)練精粹_第4頁(yè)
FPGA實(shí)戰(zhàn)訓(xùn)練精粹_第5頁(yè)
已閱讀5頁(yè),還剩225頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

FPGA實(shí)戰(zhàn)訓(xùn)練精粹目錄TOC\h\h第1章FPGA基本情況介紹\h1.1FPGA簡(jiǎn)史\h1.2FPGA芯片(Xilinx)介紹\h1.3FPGA的應(yīng)用領(lǐng)域\h1.4總結(jié)\h第2章FPGA設(shè)計(jì)基礎(chǔ)知識(shí)\h2.1軟件下載及安裝\h2.2Verilog基本語(yǔ)法介紹\h2.3FPGA開(kāi)發(fā)流程\h2.4總結(jié)\h第3章FPGA初級(jí)設(shè)計(jì)\h3.1呼吸燈設(shè)計(jì)與實(shí)現(xiàn)\h3.2流水燈設(shè)計(jì)與實(shí)現(xiàn)\h3.3按鍵控制LED設(shè)計(jì)與實(shí)現(xiàn)\h3.4自動(dòng)售貨機(jī)設(shè)計(jì)與實(shí)現(xiàn)\h3.5總結(jié)\h第4章FPGA中級(jí)設(shè)計(jì)\h4.1串口通信設(shè)計(jì)與實(shí)現(xiàn)\h4.2VGA設(shè)計(jì)與實(shí)現(xiàn)\h4.3VGA顯示圖像\h4.4Sobel算子實(shí)現(xiàn)\h4.5總結(jié)\h第5章FPGA高級(jí)設(shè)計(jì)\h5.1DDR3理論講解和實(shí)踐部分\h5.2PCI-e理論講解和實(shí)踐\h5.3總結(jié)\h第6章FPGA高級(jí)綜合設(shè)計(jì)\h6.1SystemGenerator介紹及安裝\h6.2SystemGenerator工具的基本使用方法\h6.3SystemGenerator實(shí)例\h6.4HLS介紹及安裝\h6.5HLS工具的基本使用方法\h6.6HLS實(shí)例——基于HLS的Sobel邊緣檢測(cè)\h6.7總結(jié)第1章FPGA基本情況介紹FPGA(FieldProgrammableGateArray,現(xiàn)場(chǎng)可編程門(mén)陣列)屬于可編程邏輯器件的一種,在20世紀(jì)90年代獲得突飛猛進(jìn)的發(fā)展,經(jīng)過(guò)將近30年的發(fā)展,到目前已成為實(shí)現(xiàn)數(shù)字系統(tǒng)的主流平臺(tái)之一。本章主要介紹FPGA的基本歷史、基本結(jié)構(gòu)、應(yīng)用領(lǐng)域及其最新進(jìn)展,使初學(xué)者對(duì)FPGA能夠有基本的了解。1.1FPGA簡(jiǎn)史本節(jié)從FPGA與ASIC、CPLD的區(qū)別,Altera與Xilinx的區(qū)別,Verilog與VHDL等方面對(duì)FPGA進(jìn)行簡(jiǎn)要介紹。1.1.1FPGA與ASIC1.FPGAFPGA是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ApplicationSpecificIntegratedCircuit,ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。它是當(dāng)今數(shù)字系統(tǒng)設(shè)計(jì)的主要硬件平臺(tái),主要特點(diǎn)是完全由用戶通過(guò)軟件進(jìn)行配置和編程,從而完成某種特定的功能,且可反復(fù)擦寫(xiě)。在修改和升級(jí)時(shí),不需要額外改變PCB電路板,只是在計(jì)算機(jī)上修改和更新程序,使硬件設(shè)計(jì)工作成為軟件開(kāi)發(fā)工作,縮短系統(tǒng)設(shè)計(jì)的周期,提高實(shí)現(xiàn)的靈活性并降低成本。FPGA的特點(diǎn):加電時(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ù)使用。理論上,F(xiàn)PGA允許無(wú)限次的編程。FPGA的編程無(wú)須專(zhuān)用的FPGA編程器,只需用通用的EPROM、PROM編程器即可。FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳,能夠快速成品,不需要用戶介入芯片的布局布線和工藝問(wèn)題,而且可以隨時(shí)改變邏輯功能,使用靈活。2.ASICASIC是應(yīng)特定用戶要求和特定電子系統(tǒng)的需要而設(shè)計(jì)、制造的集成電路。用一句話總結(jié)就是市場(chǎng)上買(mǎi)不到的芯片。蘋(píng)果的A系列處理器就是典型的ASIC。ASIC是定制的,具體分為全定制和半定制?!とㄖ圃O(shè)計(jì)可以實(shí)現(xiàn)最小面積、最佳布線布局、最優(yōu)功耗速度積,得到最好的電特性。全定制設(shè)計(jì)的特點(diǎn)是精工細(xì)作,設(shè)計(jì)要求高、成本高、周期長(zhǎng)?!ぐ攵ㄖ圃O(shè)計(jì)方法又分為基于標(biāo)準(zhǔn)單元的設(shè)計(jì)方法CBIC(CellBasedIC)和基于門(mén)陣列的設(shè)計(jì)方法。半定制主要適合開(kāi)發(fā)周期短、低開(kāi)發(fā)成本、投資風(fēng)險(xiǎn)小的小批量數(shù)字電路設(shè)計(jì)。ASIC的特點(diǎn):面向特定用戶的需求,量身定制,執(zhí)行速度較快。ASIC在批量生產(chǎn)時(shí)與通用集成電路相比具有體積小、功耗低、可靠性高、性能高、保密性強(qiáng)、成本低等優(yōu)點(diǎn)。ASIC需要較長(zhǎng)的開(kāi)發(fā)周期,風(fēng)險(xiǎn)較大,一旦有問(wèn)題,就會(huì)導(dǎo)致成片全部作廢,所以小公司已經(jīng)玩不起了。ASIC的基本結(jié)構(gòu)如圖1.1所示。圖1.1ASIC基本架構(gòu)近年來(lái)人工智能受到的關(guān)注越來(lái)越多,許多公司正在積極開(kāi)發(fā)能實(shí)現(xiàn)移動(dòng)端人工智能的硬件,尤其是能夠結(jié)合未來(lái)的物聯(lián)網(wǎng)應(yīng)用。移動(dòng)端人工智能的實(shí)現(xiàn)方法有兩大流派:FPGA流派和ASIC流派。FPGA流派的代表有Xilinx主推的Zynq平臺(tái),而ASIC流派的代表有Movidius。下面來(lái)分析FPGA與ASIC的具體區(qū)別在哪里。3.FPGA和ASIC的區(qū)別(1)設(shè)計(jì)流程圖1.2所示為FPGA和ASIC設(shè)計(jì)流程?!PGA:完整的FPGA設(shè)計(jì)流程包括功能描述、電路設(shè)計(jì)與輸入、功能仿真、綜合優(yōu)化、綜合后仿真、實(shí)現(xiàn)與布局布線、時(shí)序仿真、板級(jí)仿真與驗(yàn)證、調(diào)試與加載配置。·ASIC:ASIC的設(shè)計(jì)流程(數(shù)字芯片)包括功能描述、模塊劃分、模塊編碼輸入、模塊級(jí)仿真驗(yàn)證、系統(tǒng)集成和系統(tǒng)仿真驗(yàn)證、綜合、STA(靜態(tài)時(shí)序分析)、形式驗(yàn)證。圖1.2FPGA和ASIC設(shè)計(jì)流程說(shuō)明在ASIC設(shè)計(jì)過(guò)程中,往往要用FPGA進(jìn)行原型驗(yàn)證。FPGA驗(yàn)證是進(jìn)行ASIC設(shè)計(jì)的重要環(huán)節(jié),其后還需要引入ASIC版本源碼,插入IOPAD、DFT,進(jìn)行功耗估計(jì)和其他后端流程。完成FPGA驗(yàn)證可以就完成了ASIC整套流程的50%~80%。從設(shè)計(jì)成本來(lái)考慮:小批量時(shí),F(xiàn)PGA占優(yōu);大批量時(shí),ASIC占優(yōu)。FPGA本身就是一個(gè)芯片,只是我們可以通過(guò)編程的方式修改內(nèi)部邏輯連接和配置實(shí)現(xiàn)自己想要的功能。實(shí)現(xiàn)ASIC就如從一張白紙開(kāi)始,必須得有代碼,之后綜合,然后布局、布線,最后得到GDSII(一種時(shí)序提供格式)后去流片。(2)速度相同的工藝和設(shè)計(jì),在FPGA上的速度應(yīng)該比ASIC慢。因?yàn)镕PGA內(nèi)部基于通用的結(jié)構(gòu),也就是LUT(LookUpTable),可以實(shí)現(xiàn)加法器、組合邏輯等。而ASIC,一般加法器就是加法器,比較器就是比較器,F(xiàn)PGA結(jié)構(gòu)上的通用性必然導(dǎo)致冗余。另外,F(xiàn)PGA的基本單元是LUT(LUT組成Slice,Slice組成CLB,這是Xilinx的結(jié)構(gòu)),為此,大的設(shè)計(jì)假如一個(gè)LUT實(shí)現(xiàn)不了,就得用兩個(gè)LUT,一個(gè)Slice實(shí)現(xiàn)不了,就要用CLB,不同結(jié)構(gòu)處于特定的位置,信號(hào)之間的互聯(lián)導(dǎo)致的wiredelay是不可忽略的一部分。而對(duì)于ASIC來(lái)說(shuō)沒(méi)有結(jié)構(gòu)上的限制,而且對(duì)于特定的線路布局來(lái)說(shuō)可以在空間上靠得很近,相對(duì)來(lái)說(shuō)wiredelay和celldelay都應(yīng)該比FPGA小。當(dāng)然,LUT中也有DFF,作為高速的設(shè)計(jì),一般都會(huì)在一個(gè)簡(jiǎn)單的組合邏輯操作之后打一拍,再做下一步的處理。提示delay(延遲)分為celldelay和wiredelay。celldelay是指元器件內(nèi)部的delay,wiredelay是器件互連Pin-to-Pin的delay。(3)體積如果結(jié)構(gòu)完全相同,那么FPGA會(huì)被ASIC遠(yuǎn)遠(yuǎn)踢飛。FPGA要規(guī)模大得多才能實(shí)現(xiàn)ASIC相同的功能,主頻還只有幾分之一。(4)功耗在相同工藝條件下,F(xiàn)PGA的功耗要大于ASIC。尤其是基于占用大量硅面積的、每個(gè)單元6個(gè)晶體管的靜態(tài)存儲(chǔ)器(SRAM)的查尋表(LUT)和配置元件技術(shù)的FPGA,其功耗要比對(duì)等的ASIC大得多。(5)成本FPGA貴在單片,開(kāi)發(fā)工具費(fèi)用和硬件損耗風(fēng)險(xiǎn)基本不存在。ASIC貴在流片的費(fèi)用和開(kāi)發(fā)工具。NRE(Non-RecurringEngineering,一次性工程)費(fèi)用隨著工藝的提高變得相當(dāng)貴,除非芯片一次成功后即可量產(chǎn),否則單片費(fèi)用將奇貴無(wú)比?。?)其他方面ASIC用于大型項(xiàng)目,而對(duì)于需要快速投放市場(chǎng)且支持遠(yuǎn)程升級(jí)的小型項(xiàng)目,F(xiàn)PGA則更為適合。FPGA技術(shù)的主要優(yōu)勢(shì)仍是產(chǎn)品投放市場(chǎng)的時(shí)間較短。ASIC的優(yōu)勢(shì)在于加電后可立即運(yùn)行,就單位邏輯大小而言,封裝選擇更多,還可以包括某些模擬邏輯。與此相對(duì)比,F(xiàn)PGA加載配置進(jìn)入存儲(chǔ)器需要時(shí)間,因此不能立即工作。此外,F(xiàn)PGA的封裝也較復(fù)雜。FPGA內(nèi)部還包括接口I/O。I/O分為普通I/O和高速I(mǎi)/O。高速I(mǎi)/O支持高速的SERDES等,用于實(shí)現(xiàn)XAUI、PCI-e等高速接口,這些接口動(dòng)輒幾Gbps。此外,種類(lèi)多種多樣的硬核IP也是各FPGA廠商差異化競(jìng)爭(zhēng)的利器,例如POWERPC、ARM等硬核IP,從而構(gòu)成CPU+FPGA于一體的集可編程性和可重構(gòu)的處理平臺(tái)。(7)兩者的定位FPGA和ASIC產(chǎn)品的使用要根據(jù)產(chǎn)品的定位和設(shè)計(jì)需要來(lái)選擇。ASIC產(chǎn)品適用于設(shè)計(jì)規(guī)模特別大(如CPU、DSP或多層交換芯片等)或者應(yīng)用于技術(shù)非常成熟且利潤(rùn)率非常低的產(chǎn)品(如家用電器和其他消費(fèi)類(lèi)電器)以及大量應(yīng)用的通用器件(如RAM、PHY等)。FPGA產(chǎn)品適用于設(shè)計(jì)規(guī)模適中、產(chǎn)品要求快速占領(lǐng)市場(chǎng)或產(chǎn)品需要靈活變動(dòng)的特性設(shè)計(jì)等方面的產(chǎn)品,如PDH、2.5GB以下的SDH設(shè)備和大部分的接口轉(zhuǎn)換芯片等。當(dāng)然,具體選擇哪種產(chǎn)品來(lái)設(shè)計(jì)還要設(shè)計(jì)者充分考慮自己的產(chǎn)品定位來(lái)決定。(8)兩者在互相融合最明顯的莫過(guò)于處理器中開(kāi)始集成FPGA,而可編程的ASIC也開(kāi)始興起。隨著SoC(系統(tǒng)級(jí)芯片或系統(tǒng))成為主流,兩者的邊界也就不那么明顯了。(9)總結(jié)總的來(lái)說(shuō),就如同GPU和CPU一樣:GPU可以非常快速地處理圖像,但是要處理其他的東西,GPU則有些困難。CPU能處理很多的運(yùn)算,也能處理圖像,只是慢而已。一旦你是沖著某個(gè)目的去的(ASIC),最快速的實(shí)現(xiàn)方式就可以。如果想要多方面兼顧(FPGA),就不可能在每一個(gè)方面都做到最好。在使用時(shí),你必須權(quán)衡利弊。1.1.2FPGA與CPLDCPLD(ComplexProgrammableLogicDevice,復(fù)雜可編程邏輯器件)是從PAL和GAL器件發(fā)展出來(lái)的器件,相對(duì)而言規(guī)模大、結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍,是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計(jì)方法是借助集成開(kāi)發(fā)軟件平臺(tái),用原理圖、硬件描述語(yǔ)言等方法生成相應(yīng)的目標(biāo)文件,通過(guò)下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中來(lái)實(shí)現(xiàn)設(shè)計(jì)的數(shù)字系統(tǒng)。FPGA和CPLD的區(qū)別如下:(1)CPLD更適合完成各種算法和組合邏輯,F(xiàn)PGA更適合完成時(shí)序邏輯。換句話說(shuō),F(xiàn)PGA更適合觸發(fā)器豐富的結(jié)構(gòu),而CPLD更適合觸發(fā)器有限而乘積項(xiàng)豐富的結(jié)構(gòu)。(2)CPLD的連續(xù)式布線結(jié)構(gòu)決定了它的時(shí)序延遲是均勻和可預(yù)測(cè)的,而FPGA的分段式布線結(jié)構(gòu)決定了其延遲的不可預(yù)測(cè)性。(3)在編程上,F(xiàn)PGA比CPLD具有更大的靈活性。CPLD通過(guò)修改具有固定內(nèi)連電路的邏輯功能來(lái)編程,F(xiàn)PGA主要通過(guò)改變內(nèi)部連線的布線來(lái)編程;FPGA可在邏輯門(mén)下編程,而CPLD是在邏輯塊下編程的。(4)FPGA的集成度比CPLD高,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實(shí)現(xiàn)。(5)CPLD比FPGA使用起來(lái)更方便。CPLD的編程采用E2PROM或FastFlash技術(shù),無(wú)須外部存儲(chǔ)器芯片,使用簡(jiǎn)單。而FPGA的編程信息需存放在外部存儲(chǔ)器上,使用方法復(fù)雜。(6)CPLD的速度比FPGA快,并且具有較大的時(shí)間可預(yù)測(cè)性。這是由于FPGA是門(mén)級(jí)編程,并且CLB之間采用分布式互聯(lián),而CPLD是邏輯塊級(jí)編程,并且其邏輯塊之間的互聯(lián)是集總式的。(7)在編程方式上,CPLD主要是基于E2PROM或FastFlash存儲(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)配置。(8)CPLD保密性好,F(xiàn)PGA保密性差。(9)一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯。隨著復(fù)雜可編程邏輯器件(CPLD)密度的提高,數(shù)字器件設(shè)計(jì)人員在進(jìn)行大型設(shè)計(jì)時(shí),既靈活又容易,而且產(chǎn)品可以很快進(jìn)入市場(chǎng)。許多設(shè)計(jì)人員已經(jīng)感受到CPLD有容易使用、時(shí)序可預(yù)測(cè)和速度高等優(yōu)點(diǎn)。然而,過(guò)去由于受到CPLD密度的限制,他們只好轉(zhuǎn)向FPGA和ASIC?,F(xiàn)在,設(shè)計(jì)人員可以體會(huì)到密度高達(dá)數(shù)十萬(wàn)門(mén)的CPLD所帶來(lái)的好處。1.1.3Altera與Xilinx要比較Xilinx和Altera公司的FPGA,就要清楚兩個(gè)大廠FPGA的結(jié)構(gòu),由于設(shè)計(jì)不同,兩家的FPGA結(jié)構(gòu)、參數(shù)也各不相同,但可以統(tǒng)一到LUT查找表上。1.Altera芯片(1)邏輯陣列模塊(LAB)邏輯陣列模塊的主要結(jié)構(gòu)是8個(gè)適應(yīng)邏輯模塊(ALM),還包括一些進(jìn)位鏈和控制邏輯等結(jié)構(gòu)。每個(gè)ALM中都包含了兩個(gè)可編程的寄存器、兩個(gè)專(zhuān)用全加器、一個(gè)進(jìn)位鏈、一個(gè)共享算術(shù)鏈和一個(gè)寄存器鏈。(2)存儲(chǔ)器模塊(RAM)StratixII器件具有TriMatrix存儲(chǔ)結(jié)構(gòu),包括3種大小的嵌入式RAM塊。TriMatrix存儲(chǔ)器包括512位的M512塊、4KB的M4K塊和512KB的M-RAM塊,每個(gè)都可以配置支持各種特性。(3)數(shù)字信號(hào)處理模塊(DSP)DSP塊結(jié)構(gòu)是為實(shí)現(xiàn)多種最大性能和最小邏輯資源利用率的DSP功能而優(yōu)化的。(4)鎖相環(huán)(PLL)StratixII器件具有12個(gè)鎖相環(huán)和48個(gè)獨(dú)立系統(tǒng)時(shí)鐘,可以作為中央時(shí)鐘管理器以滿足系統(tǒng)時(shí)序需求。2.Xilinx芯片Xilinx的FPGA主要由可配置邏輯塊(CLB)、時(shí)鐘管理模塊(CMT)、存儲(chǔ)器(RAM/FIFO)、數(shù)字信號(hào)處理模塊(DSP)和一些專(zhuān)用模塊組成。(1)可配置邏輯塊(CLB)可配置邏輯塊是Xilinx的基本邏輯單元。s7系列的每個(gè)CLB包含兩個(gè)Slice,每個(gè)Slice由4個(gè)(A、B、C、D)6輸入LUT和8個(gè)寄存器REG組成。(2)時(shí)鐘管理模塊(CMT)時(shí)鐘管理模塊用于產(chǎn)生高質(zhì)量的時(shí)鐘。以Virtex-5系列器件為例,CMT包括兩個(gè)數(shù)字時(shí)鐘管理單元(DCM)和一個(gè)鎖相環(huán)電路(PLL)。(3)存儲(chǔ)器(RAM/FIFO)現(xiàn)代Xilinx的FPGA都有內(nèi)部的存儲(chǔ)器塊。以Virtex-5為例,內(nèi)部包含若干塊RAM,每一塊36KB,并且RAM的大小可以靈活配置。Virtex-5內(nèi)的RAM是同步的雙口RAM,并且可以配置為多速率的FIFO(FirstInFirstOut,先進(jìn)先出)存儲(chǔ)器,極大地提高了設(shè)計(jì)的靈活性。(4)數(shù)字信號(hào)處理模塊(DSP)大多數(shù)的FPGA產(chǎn)品都提供了DSP。(5)一些專(zhuān)用模塊除了上述模塊外,在現(xiàn)代的Xilinx的FPGA產(chǎn)品中還有一些專(zhuān)用模塊,例如RocketIO千兆位級(jí)收發(fā)器、PCI-e端點(diǎn)模塊和三態(tài)以太網(wǎng)MAC模塊等。Xilinx與Altera的FPGA結(jié)構(gòu)最大的不同是邏輯單元部分:Xilinx的邏輯單元基本組成為可配置邏輯模塊(CLB),而Altera的為L(zhǎng)AB,更深一層講,CLB和LAB里面也都是由LUT、觸發(fā)器等構(gòu)成的。兩個(gè)公司的FPGA組成各有特點(diǎn),這也決定了它們的FPGA產(chǎn)品在功能上各有特點(diǎn)。現(xiàn)在的Altera已經(jīng)成被Intel收購(gòu),Xilinx和Intel正積極開(kāi)拓通信軍工以外的市場(chǎng),目前已經(jīng)在機(jī)器學(xué)習(xí)領(lǐng)域占據(jù)一席之地,無(wú)論面向服務(wù)器領(lǐng)域做Training(訓(xùn)練)的high-end(可理解為高端)芯片,還是面對(duì)終端領(lǐng)域(如汽車(chē)電子),IoT(InternetofThings,物聯(lián)網(wǎng))設(shè)備的低功耗芯片都有不錯(cuò)的應(yīng)用前景。FPGA也跟隨摩爾定律在規(guī)模上不斷發(fā)展,不論是邏輯還是片內(nèi)存儲(chǔ),現(xiàn)在的FPGA也不再是僅僅擅長(zhǎng)定點(diǎn)運(yùn)算,大量浮點(diǎn)DSP已經(jīng)開(kāi)始使用,加上原有IO方面的優(yōu)勢(shì),相信可以和GPU一較高下。最后,兩家FPGA都在向異構(gòu)架構(gòu)發(fā)展,Xilinx主推ARM+FPGA的架構(gòu),新的UltraScaleMPSOC更是配有4核A53、Mail400GPU、cortex-R5實(shí)時(shí)處理器;Altera也出過(guò)ARM的SOC,但是現(xiàn)在被Intel收購(gòu)了,會(huì)不會(huì)投入x86的懷抱還是未知數(shù),目前其發(fā)展路線圖并不如Xilinx那么清晰。1.1.4Verilog與VHDLVerilogHDL是業(yè)界普遍采用的一種硬件描述語(yǔ)言,用于從算法級(jí)、門(mén)級(jí)到開(kāi)關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模過(guò)程。被建模的數(shù)字系統(tǒng)對(duì)象的復(fù)雜性可以介于簡(jiǎn)單的門(mén)和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時(shí)序建模。VerilogHDL從C編程語(yǔ)言中繼承了多種操作符和結(jié)構(gòu),其語(yǔ)法規(guī)則與C語(yǔ)言非常相似,盡管二者有著本質(zhì)上的區(qū)別。考慮到絕大多數(shù)的數(shù)字設(shè)計(jì)工程師都應(yīng)該熟悉C語(yǔ)言,因此Verilog語(yǔ)言的入門(mén)相比VHDL語(yǔ)言更為簡(jiǎn)單。VerilogHDL語(yǔ)言不僅定義了語(yǔ)法,還對(duì)每個(gè)語(yǔ)法結(jié)構(gòu)定義了清晰的模擬、仿真語(yǔ)義。因此,用這種語(yǔ)言編寫(xiě)的模型能夠使用Verilog仿真器進(jìn)行驗(yàn)證。VerilogHDL提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難理解。但是,VerilogHDL語(yǔ)言的核心子集非常易于學(xué)習(xí)和使用,這對(duì)大多數(shù)建模應(yīng)用來(lái)說(shuō)已經(jīng)足夠。當(dāng)然,完整的硬件描述語(yǔ)言足以對(duì)從最復(fù)雜的芯片到完整的電子系統(tǒng)進(jìn)行描述。VHDL具有以下特點(diǎn):(1)功能強(qiáng)大,設(shè)計(jì)靈活VHDL具有功能強(qiáng)大的語(yǔ)言結(jié)構(gòu),可以用簡(jiǎn)潔明確的源代碼來(lái)描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級(jí)描述。VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語(yǔ)言所不能比擬的。VHDL還支持各種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。(2)支持廣泛,易于修改由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)范的硬件描述語(yǔ)言,目前大多數(shù)EDA(ElectronicsDesignAutomation,電子設(shè)計(jì)自動(dòng)化)工具幾乎都支持VHDL,這為VHDL的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。(3)強(qiáng)大的系統(tǒng)硬件描述能力VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級(jí)電路,又可以描述門(mén)級(jí)電路。描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級(jí)描述。另外,VHDL支持慣性延遲和傳輸延遲,可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義和自定義的數(shù)據(jù)類(lèi)型,給硬件描述帶來(lái)較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。(4)獨(dú)立于器件的設(shè)計(jì),與工藝無(wú)關(guān)設(shè)計(jì)人員用VHDL進(jìn)行設(shè)計(jì)時(shí),不需要首先考慮選擇完成設(shè)計(jì)的器件,就可以集中精力進(jìn)行設(shè)計(jì)的優(yōu)化。當(dāng)設(shè)計(jì)描述完成后,可以用多種不同的器件結(jié)構(gòu)來(lái)實(shí)現(xiàn)其功能。(5)很強(qiáng)的移植能力VHDL是一種標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,同一個(gè)設(shè)計(jì)描述可以被不同的工具所支持,使得設(shè)計(jì)描述的移植成為可能。(6)易于共享和復(fù)用VHDL采用基于庫(kù)(Library)的設(shè)計(jì)方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計(jì)或使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放到庫(kù)中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用,使設(shè)計(jì)成果在設(shè)計(jì)人員之間進(jìn)行交流和共享,減少硬件電路設(shè)計(jì)?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域已成為事實(shí)上的通用硬件描述語(yǔ)言。有專(zhuān)家認(rèn)為,在新的世紀(jì)中,VHDL與Verilog語(yǔ)言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。提示具體采用Verilog還是VHDL作為設(shè)計(jì)語(yǔ)言并不重要。其實(shí)作為一個(gè)成熟的數(shù)字設(shè)計(jì)工程師,Verilog和VHDL都應(yīng)該是熟悉的,最低的要求應(yīng)該是能夠讀懂一種,熟練掌握另一種進(jìn)行設(shè)計(jì)。硬件描述語(yǔ)言只是數(shù)字系統(tǒng)的設(shè)計(jì)工具,雖然掌握工具對(duì)于成功進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì)很重要,但是更為重要的是對(duì)于數(shù)字設(shè)計(jì)的基本原理和理論的學(xué)習(xí),只有深入掌握了數(shù)字系統(tǒng)設(shè)計(jì)的基本原理和理論,才能設(shè)計(jì)出符合實(shí)際需求的數(shù)字系統(tǒng),只有在這樣的前提下,學(xué)習(xí)設(shè)計(jì)工具才是有意義的。1.2FPGA芯片(Xilinx)介紹本節(jié)主要談?wù)刋ilinx的FPGA芯片的結(jié)構(gòu)。目前,F(xiàn)PGA芯片仍是基于查找表技術(shù)的,但其概念和性能已經(jīng)遠(yuǎn)遠(yuǎn)超出查找表技術(shù)的限制,并且整合了常用功能的硬核模塊(如塊RAM、時(shí)鐘管理單元MMCM、DSP硬核乘加器等)。圖1.3所示為Xilinx公司推出的最新系列FPGA,采用的是ASMBL(AdvancedSiliconModularBlock)架構(gòu)。在ASMBL架構(gòu)中,每類(lèi)資源以列形式存在。圖1.3ASMBL架構(gòu)1.2.1FPGA的基本結(jié)構(gòu)圖1.4所示為Xilinx公司Spartan-2系列FPGA的內(nèi)部結(jié)構(gòu)圖,從中可以看出FPGA芯片主要由7部分組成:可編程輸入輸出單元、基本可編程邏輯單元、完整的時(shí)鐘管理、嵌入塊式RAM、豐富的布線資源、內(nèi)核的底層功能單元和內(nèi)嵌專(zhuān)用硬件模塊。圖1.4FPGA芯片的內(nèi)部結(jié)構(gòu)注意Virtex5后續(xù)的Virtex系列、Spartan6后續(xù)的Spartan系列均為6輸入的LUT,之前的FPGA系列均為4輸入的LUT。每個(gè)模塊的功能如下。1.可編程輸入輸出單元(IOB)可編程輸入/輸出單元簡(jiǎn)稱(chēng)I/O單元,是芯片與外界電路的接口部分,完成不同于電氣特性下對(duì)輸入/輸出信號(hào)的驅(qū)動(dòng)與匹配要求,其典型結(jié)構(gòu)如圖1.5所示。為了便于管理和適應(yīng)多種電氣標(biāo)準(zhǔn),F(xiàn)PGA的IOB被劃分為若干個(gè)bank,每個(gè)bank的接口標(biāo)準(zhǔn)由其接口電壓VCCO決定,一個(gè)bank只能有一種VCCO,但不同的bank的VCCO可以不同。只有相同電氣標(biāo)準(zhǔn)的端口才能連接在一起,VCCO電壓相同是接口標(biāo)準(zhǔn)的基本條件。FPGA內(nèi)的I/O按組分類(lèi),每組都能夠獨(dú)立地支持不同的I/O標(biāo)準(zhǔn)。通過(guò)軟件的靈活配置,可適配不同的電氣標(biāo)準(zhǔn)與I/O物理特性、調(diào)整驅(qū)動(dòng)電流的大小、改變上拉電阻與下拉電阻。目前,I/O的頻率越來(lái)越高,一些高端的FPGA通過(guò)DDR寄存器技術(shù)可以支持高達(dá)2Gb/s的數(shù)據(jù)速率。外部輸入信號(hào)可以通過(guò)IOB模塊的存儲(chǔ)單元輸入到FPGA的內(nèi)部,也可以直接輸入FPGA內(nèi)部。當(dāng)外部輸入信號(hào)經(jīng)過(guò)IOB模塊的存儲(chǔ)單元輸入到FPGA內(nèi)部時(shí),其保持時(shí)間(holdtime)的要求可以降低,通常默認(rèn)為0。IO塊內(nèi)部結(jié)構(gòu)如圖1.5所示。圖1.5IO塊內(nèi)部結(jié)構(gòu)示意圖2.可配置邏輯塊(CLB)CLB是FPGA內(nèi)的基本邏輯單元。CLB的實(shí)際數(shù)量和特性會(huì)依據(jù)器件的不同而不同,但是每個(gè)CLB都包含一個(gè)可配置開(kāi)關(guān)矩陣,此矩陣由4或6輸入、一些選型電路(多路復(fù)用器等)和觸發(fā)器組成。開(kāi)關(guān)矩陣是高度靈活的,可以對(duì)其進(jìn)行配置,以便處理組合邏輯、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由多個(gè)(一般為4或2個(gè))相同的Slice和附加邏輯構(gòu)成,如圖1-6所示。每個(gè)CLB模塊不僅可以用于實(shí)現(xiàn)組合邏輯、時(shí)序邏輯,還可以配置為分布式RAM和分布式ROM。典型的CLB結(jié)構(gòu)如圖1.6所示。圖1.6典型的CLB結(jié)構(gòu)示意圖Slice是Xilinx公司定義的基本邏輯單位?;?輸入LUT的傳統(tǒng)Slice內(nèi)部結(jié)構(gòu)如圖1.7所示。一個(gè)Slice由兩個(gè)4/6輸入的查找表函數(shù)、進(jìn)位邏輯、算術(shù)邏輯、存儲(chǔ)邏輯和函數(shù)復(fù)用器組成。算術(shù)邏輯包括一個(gè)異或門(mén)(XORG)和一個(gè)專(zhuān)用與門(mén)(MULTAND),一個(gè)異或門(mén)可以使一個(gè)Slice實(shí)現(xiàn)2bit全加操作,專(zhuān)用與門(mén)用于提高乘法器的效率;進(jìn)位邏輯由專(zhuān)用進(jìn)位信號(hào)和函數(shù)復(fù)用器(MUXC)組成,用于實(shí)現(xiàn)快速的算術(shù)加減法操作;4輸入函數(shù)發(fā)生器用于實(shí)現(xiàn)4輸入LUT、分布式RAM或16比特移位寄存器。典型的4輸入Slice結(jié)構(gòu)如圖1.7所示。圖1.7典型的4輸入Slice結(jié)構(gòu)示意圖目前的FPGA一般都采用6輸入查找表,可以實(shí)現(xiàn)6輸入LUT或64比特移位寄存器,進(jìn)位邏輯包括兩條快速進(jìn)位鏈,用于提高CLB模塊的處理速度?;?輸入LUT的Slice內(nèi)部結(jié)構(gòu)包括4個(gè)6輸入的LUT和8個(gè)寄存器,因此新一代的6輸入Slice,其邏輯能力從資源上講是“老”器件的4倍(26/24=4)。3.時(shí)鐘管理模塊業(yè)內(nèi)大多數(shù)FPGA均提供數(shù)字時(shí)鐘管理(賽靈思公司的全部FPGA均具有這種特性)。賽靈思公司推出先進(jìn)的FPGA提供數(shù)字時(shí)鐘管理和相位環(huán)路鎖定。相位環(huán)路鎖定能夠提供精確的時(shí)鐘綜合,且能夠降低抖動(dòng),并實(shí)現(xiàn)過(guò)濾功能。PLL原理圖如圖1.8所示。圖1.8PLL原理圖4.嵌入式塊RAM(BRAM)嵌入式RAM模塊概況如圖1.9所示。圖1.9內(nèi)嵌的塊RAM大多數(shù)FPGA都具有內(nèi)嵌的塊RAM,這大大拓展了FPGA的應(yīng)用范圍和靈活性。塊RAM可被配置為單端口RAM、雙端口RAM、內(nèi)容地址存儲(chǔ)器(CAM)以及FIFO等常用存儲(chǔ)結(jié)構(gòu)。RAM、FIFO是比較普及的概念,在此就不冗述了。CAM存儲(chǔ)器在其內(nèi)部的每個(gè)存儲(chǔ)單元中都有一個(gè)比較邏輯,寫(xiě)入CAM中的數(shù)據(jù)會(huì)和內(nèi)部的每一個(gè)數(shù)據(jù)進(jìn)行比較,并返回與端口數(shù)據(jù)相同的所有數(shù)據(jù)的地址,因而在路由的地址交換器中有廣泛的應(yīng)用。除了塊RAM外,還可以將FPGA中的LUT靈活地配置成RAM、ROM和FIFO等結(jié)構(gòu)。在實(shí)際應(yīng)用中,芯片內(nèi)部塊RAM的數(shù)量也是選擇芯片的一個(gè)重要因素。目前,6輸入LUT器件中的單片塊RAM的容量為36K比特,即位寬為36比特,深度為1024個(gè),可以根據(jù)需要改變其位寬和深度,但要滿足兩個(gè)原則:·首先,修改后的容量不能大于36K比特?!て浯?,位寬最大不能超過(guò)72比特。當(dāng)然,可以將多片塊RAM級(jí)聯(lián)起來(lái)形成更大的RAM,此時(shí)只受限于芯片內(nèi)塊RAM的數(shù)量,而不再受上面兩個(gè)原則的約束。5.豐富的布線資源布線資源連通FPGA內(nèi)部的所有單元,而連線的長(zhǎng)度和工藝決定著信號(hào)在連線上的驅(qū)動(dòng)能力和傳輸速度。FPGA芯片內(nèi)部有著豐富的布線資源,根據(jù)工藝、長(zhǎng)度、寬度和分布位置的不同而劃分為4個(gè)不同的類(lèi)別?!さ谝活?lèi)是全局布線資源,用于芯片內(nèi)部全局時(shí)鐘和全局復(fù)位/置位的布線?!さ诙?lèi)是長(zhǎng)線資源,用以完成芯片Bank間的高速信號(hào)和第二全局時(shí)鐘信號(hào)的布線?!さ谌?lèi)是短線資源,用于完成基本邏輯單元之間的邏輯互連和布線。·第四類(lèi)是分布式的布線資源,用于專(zhuān)有時(shí)鐘、復(fù)位等控制信號(hào)線。FPGA芯片的性能差異主要就是布線資源數(shù)量的差異,高端FPGA具有最好的布線資源,能夠?qū)崿F(xiàn)更高速的設(shè)計(jì),更容易達(dá)到時(shí)序收斂。在實(shí)際設(shè)計(jì)中,設(shè)計(jì)者不需要直接選擇布線資源,布局布線器可自動(dòng)根據(jù)輸入邏輯網(wǎng)表的拓?fù)浣Y(jié)構(gòu)和約束條件選擇布線資源來(lái)連通各個(gè)模塊單元。從本質(zhì)上講,布線資源的使用方法和設(shè)計(jì)的結(jié)果有密切、直接的關(guān)系。6.底層內(nèi)嵌功能單元內(nèi)嵌功能模塊主要是指DLL(DelayLockedLoop)、PLL(PhaseLockedLoop)、DSP等軟處理核(SoftCore)?,F(xiàn)在越來(lái)越豐富的內(nèi)嵌功能單元使得單片F(xiàn)PGA成為系統(tǒng)級(jí)的設(shè)計(jì)工具,使其具備了軟硬件聯(lián)合設(shè)計(jì)的能力,逐步向SOC平臺(tái)過(guò)渡。DLL和PLL具有類(lèi)似的功能,可以完成時(shí)鐘高精度、低抖動(dòng)的倍頻和分頻,以及占空比調(diào)整和移相等功能。Xilinx公司生產(chǎn)的芯片上集成了PLL和DLL,Altera公司的芯片上集成了PLL,Lattice公司的新型芯片上同時(shí)集成了PLL和DLL。PLL和DLL可以通過(guò)IP核生成的工具方便地進(jìn)行管理和配置。DLL的結(jié)構(gòu)如圖1.10所示。圖1.10典型的DLL模塊示意圖7.內(nèi)嵌專(zhuān)用硬核內(nèi)嵌專(zhuān)用硬核是相對(duì)底層嵌入的軟核而言的,指FPGA處理能力強(qiáng)大的硬核(HardCore),等效于ASIC電路。為了提高FPGA性能,芯片生產(chǎn)商在芯片內(nèi)部集成了一些專(zhuān)用的硬核。例如,為了提高FPGA的乘法速度,主流的FPGA中都集成了專(zhuān)用乘法器;為了適用通信總線與接口標(biāo)準(zhǔn),很多高端的FPGA內(nèi)部都集成了串并收發(fā)器(SERDES),可以達(dá)到數(shù)十吉字節(jié)每秒的收發(fā)速度。賽靈思公司的高端產(chǎn)品不僅集成了PowerPC系列CPU,還內(nèi)嵌了DSPCore模塊,相應(yīng)的系統(tǒng)級(jí)設(shè)計(jì)工具是EDK和PlatformStudio,并依此提出了片上系統(tǒng)(SystemonChip)的概念。通過(guò)PowerPC、Miroblaze、Picoblaze等平臺(tái),能夠開(kāi)發(fā)標(biāo)準(zhǔn)的DSP處理器及其相關(guān)應(yīng)用,達(dá)到SOC的開(kāi)發(fā)目的。此外,新推出的賽靈思的FPGA系列(如Virtex-5LXT)還內(nèi)建了PCI-e和三態(tài)以太網(wǎng)MAC硬核(TEMAC)。與軟核實(shí)現(xiàn)方式相比,硬核可以把功耗降低5~10倍,節(jié)約將近90%的邏輯資源。Xilinx三態(tài)以太網(wǎng)MAC核是一個(gè)可參數(shù)化的核,非常適合在網(wǎng)絡(luò)設(shè)備中使用,例如開(kāi)關(guān)和路由器等。可定制的TEMAC核使系統(tǒng)設(shè)計(jì)者能夠?qū)崿F(xiàn)寬范圍的集成式以太網(wǎng)設(shè)計(jì),從低成本10/100Mbps以太網(wǎng)到性能更高的1GB端口。TEMAC核設(shè)計(jì)符合IEEE802.3規(guī)范的要求,并且可以在1000Mbps、100Mbps和10Mbps模式下運(yùn)行。另外,它還支持半雙工和全雙工操作。TEMAC核通過(guò)XilinxCOREGenerator工具提供,是Xilinx全套以太網(wǎng)解決方案的一部分。1.2.2軟核、硬核及固核IP(IntelligentProperty)核是具有知識(shí)產(chǎn)權(quán)核的集成電路芯核的總稱(chēng),是經(jīng)過(guò)反復(fù)驗(yàn)證過(guò)的、具有特定功能的宏模塊,與芯片制造工藝無(wú)關(guān),可以移植到不同的半導(dǎo)體工藝中。到了SOC階段,IP核設(shè)計(jì)已成為ASIC電路設(shè)計(jì)公司和FPGA提供商的重要任務(wù),也是其實(shí)力體現(xiàn)。對(duì)于FPGA開(kāi)發(fā)軟件,其提供的IP核越豐富,用戶的設(shè)計(jì)就越方便,其市場(chǎng)占用率就越高。目前,IP核已經(jīng)變成系統(tǒng)設(shè)計(jì)的基本單元,并作為獨(dú)立設(shè)計(jì)成果被交換、轉(zhuǎn)讓和銷(xiāo)售。從IP核的提供方式上,通常將其分為軟核、固核和硬核3類(lèi)。從完成IP核所花費(fèi)的成本來(lái)講,硬核代價(jià)最大;從使用靈活性來(lái)講,軟核的可復(fù)用性最高。1.軟核軟核在EDA設(shè)計(jì)領(lǐng)域指的是綜合之前的寄存器傳輸級(jí)(RTL)模型;具體在FPGA設(shè)計(jì)中指的是對(duì)電路的硬件語(yǔ)言描述,包括邏輯描述、網(wǎng)表和幫助文檔等。軟核只經(jīng)過(guò)功能仿真,需要經(jīng)過(guò)綜合以及布局布線才能使用。其優(yōu)點(diǎn)是靈活性高、可移植性強(qiáng),允許用戶自配置;缺點(diǎn)是對(duì)模塊的預(yù)測(cè)性較低,在后續(xù)設(shè)計(jì)中存在發(fā)生錯(cuò)誤的可能性,有一定的設(shè)計(jì)風(fēng)險(xiǎn)。軟核是IP核應(yīng)用最廣泛的形式。2.硬核硬核在EDA設(shè)計(jì)領(lǐng)域指經(jīng)過(guò)驗(yàn)證的設(shè)計(jì)版圖;在FPGA設(shè)計(jì)中指布局和工藝固定、經(jīng)過(guò)前端和后端驗(yàn)證的設(shè)計(jì),設(shè)計(jì)人員不能對(duì)其進(jìn)行修改。不能修改的原因有兩個(gè):首先是系統(tǒng)設(shè)計(jì)對(duì)各個(gè)模塊的時(shí)序要求很?chē)?yán)格,不允許打亂已有的物理版圖;其次是保護(hù)知識(shí)產(chǎn)權(quán)的要求,不允許設(shè)計(jì)人員對(duì)其有任何改動(dòng)。IP硬核不許修改的特點(diǎn)使其復(fù)用有一定的困難,因此只能用于某些特定應(yīng)用,使用范圍較窄。目前,所有的XilinxFPGA內(nèi)部都集成了CDM(時(shí)鐘管理單元)、DSP單元及BRAM等硬核資源,高端芯片中還包括SERDES、PCI-e、DDR3控制器、ARM/PowerPC以及XADC等硬核資源。3.固核固核在EDA設(shè)計(jì)領(lǐng)域指的是帶有平面規(guī)劃信息的網(wǎng)表;具體在FPGA設(shè)計(jì)中可以看作帶有布局規(guī)劃的軟核,通常以RTL代碼和對(duì)應(yīng)具體工藝網(wǎng)表的混合形式提供。將RTL描述結(jié)合具體標(biāo)準(zhǔn)單元庫(kù)進(jìn)行綜合優(yōu)化設(shè)計(jì),形成門(mén)級(jí)網(wǎng)表,再通過(guò)布局布線工具即可使用。和軟核相比,固核的設(shè)計(jì)靈活性稍差,但在可靠性上有較大提高。目前,固核也是IP核的主流形式之一。1.2.37系列FPGA簡(jiǎn)介在7系列芯片以前,Xilinx的兩個(gè)重要產(chǎn)品分別是面向高性能應(yīng)用場(chǎng)景下的Virtex系列和面向低成本低功耗應(yīng)用場(chǎng)景下的Spartan系列,不過(guò)這兩個(gè)系列從芯片內(nèi)部的布局布線、時(shí)鐘管理單元到內(nèi)部的BRAM等硬件模塊都有顯著的不同。開(kāi)發(fā)人員在不同平臺(tái)間切換時(shí),因?yàn)橛布K的定義不同,往往需要做一定的代碼修改,從而減慢了項(xiàng)目開(kāi)發(fā)的速度。因此,在最新的7系列芯片中,Xilinx采用了統(tǒng)一的架構(gòu),F(xiàn)PGA內(nèi)硬件例化模塊都采用統(tǒng)一的定義,以幫助用戶快速完成設(shè)計(jì)的遷移。7系列FPGA采用了最新的28nm工藝,應(yīng)用范圍更是涵蓋了所有的系統(tǒng)要求,從低功耗、小型化、成本敏感、大批量應(yīng)用到超高連接帶寬、邏輯能力強(qiáng)和高性能,各種應(yīng)用需要的信號(hào)處理能力它都具備。Xilinx7系列FPGA包括以下幾種?!rtix-7系列:為最低的成本和功耗做了優(yōu)化,為大批量應(yīng)用的小型化封裝設(shè)計(jì)?!intex-7系列:為最大的性?xún)r(jià)比做了優(yōu)化,和前一代相比,提高一倍的性能。·Virtex-7系列:為最高的系統(tǒng)性能做了優(yōu)化,通過(guò)硅片堆疊技術(shù)(SSI)提供高性能、高容量的芯片。根據(jù)以上的系列分布,可以看到兩個(gè)顯著的變化:其一,低成本、低功耗的產(chǎn)品名為Artix,而不是原來(lái)的Spartan。其二,在原來(lái)高性能和低成本中間的產(chǎn)品線中增加了實(shí)現(xiàn)最大性?xún)r(jià)比的Kintex產(chǎn)品線,以往使用Virtex系列的產(chǎn)品都可以嘗試先在Kintex器件上做實(shí)驗(yàn)。同時(shí),因?yàn)樾酒瑑?nèi)部硬件架構(gòu)相同,所以三個(gè)產(chǎn)品線的讀音也都類(lèi)似。7系列FPGA有以下幾個(gè)主要的特征:·基于6輸入查找表(LUT)技術(shù)的先進(jìn)的高性能FPGA邏輯,并且可配置為分布式存儲(chǔ)器?!в袃?nèi)建FIFO的36Kb雙端口BRAM,可作為片內(nèi)數(shù)據(jù)緩存?!ぶС炙俣雀哌_(dá)1866Mb/s的DDR3接口的高性能SelectIOTM技術(shù)?!?nèi)建多個(gè)吉比特(Gb)收發(fā)器的高速串行連接器,速度從600Mb/s到最高28.05Gb/s,提供低功耗模式,優(yōu)化了芯片到芯片的接口?!び脩艨膳渲玫哪M接口(XADC)包括兩個(gè)12位1MSPS的ADC和片上溫度、電壓傳感器。·DPSSlice包括25×18的乘法器、48位累加器和預(yù)加法器,可用于高性能濾波,其中包括優(yōu)化的對(duì)稱(chēng)濾波?!?qiáng)大的時(shí)鐘管理模塊CMT,連接相位鎖相環(huán)PLL和混合模式時(shí)鐘管理器MMCM,可用于高精度和低抖動(dòng)的應(yīng)用?!ぜ闪擞糜趚8Gen3端點(diǎn)和根端口設(shè)計(jì)的PCI-e硬核。·豐富的可配置選項(xiàng),包括支持商用存儲(chǔ)器,帶有HMAC/SHA-256授權(quán)的256位AES加密及內(nèi)建的SEU檢測(cè)和糾錯(cuò)單元?!じ咝阅艿凸牡?8nm工藝。HKMG、HPL處理,1.0V核心電壓處理技術(shù)和0.9V核心電壓選項(xiàng)用于更低的功耗應(yīng)用。7系列FPGA和ZynqAPSoC平臺(tái)具有千絲萬(wàn)縷的聯(lián)系。Zynq內(nèi)部的FPGA部分就是基于7系列FPGA的。兩個(gè)面向低端應(yīng)用的Zynq芯片Zynq-7010和Zynq-7020使用Artix-7,兩個(gè)面向高端應(yīng)用的Zynq芯片Zynq-7030和Zynq-7045使用Kintex-7。說(shuō)明本書(shū)并不詳細(xì)介紹7系列FPGA內(nèi)部的結(jié)構(gòu),如果讀者對(duì)FPGA的結(jié)構(gòu)、資源和設(shè)計(jì)方法感興趣,請(qǐng)到Xilinx官網(wǎng)參考官方的文檔,或者閱讀其他關(guān)于FPGA內(nèi)部組織結(jié)構(gòu)的圖書(shū)。下面我們會(huì)簡(jiǎn)單介紹FPGA的組成單元和內(nèi)部的資源,主要包括CLB、Slices、LUTs、BRAM、DSPSlices、PCI-e接口、XADC。(先列一張資源清單,讓大家有了解一下。)7系列FPGA資源如圖1.11所示。圖1.117系列FPGA資源圖1.11比較清楚地列出了7系列FPGA的資源,下面我們簡(jiǎn)單介紹7系列的關(guān)鍵技術(shù)。(1)硅片堆疊(SSI)技術(shù)要設(shè)計(jì)出高容量的FPGA,是有很多挑戰(zhàn)的,Xilinx的解決方案是使用SSI技術(shù)。SSI技術(shù)允許使用多個(gè)超級(jí)邏輯區(qū)域(SLR)組成被動(dòng)式內(nèi)插層(PassiveInterposerLayer),使用經(jīng)過(guò)行業(yè)領(lǐng)導(dǎo)者驗(yàn)證的制造和裝配技術(shù)。在單FPGA上集成了多達(dá)10000個(gè)SLR連接,提供具有低延遲和低功耗的超高帶寬。(2)邏輯資源(CLB、Slice和LUT)7系列FPGA的LUT可以被配置為一個(gè)6輸入1輸出的LUT,或者兩個(gè)5輸入具有相同地址或邏輯輸入的獨(dú)立輸出的LUT。每一個(gè)LUT的輸出可以有選擇性地在FF(Flip-Flop)寄存。4個(gè)這樣的LUT和與之相關(guān)的8個(gè)FF再加上一些多路選擇器和算術(shù)進(jìn)位邏輯組成了Slice,兩個(gè)Slice組成了CLB。25%~50%的Slice可以用LUT作為分布式64位RAM或者32位移位寄存器。CLB的一些關(guān)鍵特性如下:·真正6輸入LUT?!UT具有存儲(chǔ)功能?!ぞ哂屑拇嫫骱鸵莆患拇嫫鞴δ?。說(shuō)明詳細(xì)的CLB配置情況可從官網(wǎng)上下載UG474“7SeriesFPGAsConfigurableLogicBlockUserGuide”,以供參考。(3)時(shí)鐘管理7系列FPGA擁有多達(dá)24個(gè)時(shí)鐘管理通道(CMT),每個(gè)CMT都由一個(gè)混合模式時(shí)鐘管理器(MMCM)和一個(gè)鎖相環(huán)(PLL)組成。7系列FPGA提供6種不同類(lèi)型的時(shí)鐘線(BUFG、BUFR、BUFIO、BUFH、BUFMR和高性能時(shí)鐘)來(lái)解決不同的需求,包括高扇出、短傳輸延遲和低抖動(dòng)等需求。這一部分是FPGA的關(guān)鍵部分,可參考官方的UG472“7SeriesFPGAsClockingResourcesUserGuide”了解詳情。(4)BRAM(塊存儲(chǔ)器)大多數(shù)的FPGA都具有內(nèi)嵌的BRAM,這加強(qiáng)了FPGA的靈活性。BRAM可用于片內(nèi)數(shù)據(jù)緩沖、FIFO緩沖等。7系列的FPGA提供了30~1880個(gè)雙端口BRAM,每一個(gè)存儲(chǔ)36Kb的數(shù)據(jù)。每個(gè)BRAM都有兩個(gè)只共享數(shù)據(jù)的獨(dú)立端口。BRAM的特性包括:·雙端口36Kb的BRAM,最大位寬是72位?!た删幊痰腇IFO邏輯。·內(nèi)建可選的糾錯(cuò)電路。(5)DSPSlice7系列的FPGA集成了專(zhuān)用的、充分定制的、低功耗的DSPSlice。其增強(qiáng)的功能主要包括:·25×18的補(bǔ)碼乘法器/累加器,高分辨率為48位的信號(hào)處理器。·用于對(duì)稱(chēng)濾波器應(yīng)用的低功耗預(yù)加法器。·一些高級(jí)特性(可選的流水線、可選的ALU和用于級(jí)聯(lián)的專(zhuān)用總線)。(6)輸入/輸出(I/O)塊7系列的FPGA的I/O塊使用不同的封裝,滿足物理和邏輯級(jí)別上不同的要求。物理級(jí)上,I/O塊支持一個(gè)范圍內(nèi)的驅(qū)動(dòng)電壓和驅(qū)動(dòng)強(qiáng)度,以及接收功能接口的不同I/O標(biāo)準(zhǔn)。7系列的FPGA有高性能HP和高范圍HR兩種類(lèi)型I/O。邏輯級(jí)上,所有的I/O都能被配置為組合或者寄存方式,都支持DDR模式。(7)低功耗吉比特收發(fā)器7系列的FGPA提供的吉比特收發(fā)器具有以下特征:·提供高達(dá)6.6Gb/s(GTP)、12.5Gb/s(GTX)、13.1Gb/s(GTH)或28.05Gb/s(GTZ)線速率,是業(yè)內(nèi)第一個(gè)實(shí)現(xiàn)400Gb/s數(shù)據(jù)吞吐的單芯片?!ぶС中酒叫酒涌诘牡凸哪J??!ぶС指呒?jí)預(yù)發(fā)送、后加重、接收器線性(CTLE)和判決反饋均衡(DFE),包括用于額外余量的自適應(yīng)均衡。(8)集成PCI-e模塊7系列的FPGA集成的PCI-e模塊包括如下重要的特性:·兼容PCI-e2.1或3.0基本規(guī)范,提供端點(diǎn)和根端口的能力。·根據(jù)芯片類(lèi)別,支持Gen1(2.5Gb/s)、Gen2(5Gb/s)和Gen3(8Gb/s)?!ぶС指呒?jí)配置選項(xiàng)、高級(jí)錯(cuò)誤報(bào)告(AER)(包括端到端的(ECRC)高級(jí)錯(cuò)誤報(bào)告)和ECRC特性?!ぞ哂卸嘀毓δ芎蛦蝹€(gè)啟動(dòng)I/O虛擬化(SR-IOV)支持。(9)XADC模塊全部的Xilinx7系列FGPA都集成了新的靈活模擬接口XADC。XADC結(jié)合了7系列FPGA的可編程能力,滿足板級(jí)數(shù)據(jù)采集和監(jiān)控的需求。這種獨(dú)特的組合被稱(chēng)為敏捷的混合信號(hào)的模擬和可編程邏輯。欲了解更多信息,可訪問(wèn)/ams。XADC模塊的主要特性包括:·雙12位1MSPS模擬到數(shù)字轉(zhuǎn)換(ADC)。·高達(dá)17個(gè)靈活的用戶可配置邏輯輸入。·可選片內(nèi)或者片外參考電壓。·片內(nèi)溫度(最大誤差±4℃)和電壓(最大誤差±1%)傳感器。1.3FPGA的應(yīng)用領(lǐng)域FPGA從最初的邏輯黏合、接口互聯(lián)的角色逐漸成為大規(guī)模計(jì)算硬件平臺(tái)之一。FPGA未來(lái)的發(fā)力點(diǎn)分別在機(jī)器學(xué)習(xí)領(lǐng)域、5G無(wú)線通信領(lǐng)域、嵌入式視覺(jué)領(lǐng)域、工業(yè)物聯(lián)網(wǎng)領(lǐng)域、云計(jì)算平臺(tái)領(lǐng)域五大方面。1.3.1機(jī)器學(xué)習(xí)要想明白“深度學(xué)習(xí)”“機(jī)器學(xué)習(xí)”需要什么樣的硬件,必須了解深度學(xué)習(xí)的工作原理。首先在表層上,我們有一個(gè)巨大的數(shù)據(jù)集,并選定了一種深度學(xué)習(xí)模型。每個(gè)模型都有一些內(nèi)部參數(shù)需要調(diào)整,以便學(xué)習(xí)數(shù)據(jù)。而這種參數(shù)調(diào)整實(shí)際上可以歸結(jié)為優(yōu)化問(wèn)題,在調(diào)整這些參數(shù)時(shí),就相當(dāng)于在優(yōu)化特定的約束條件。百度的硅谷人工智能實(shí)驗(yàn)室(SVAIL)已經(jīng)為深度學(xué)習(xí)硬件提出了DeepBench基準(zhǔn)。這一基準(zhǔn)著重衡量的是基本計(jì)算的硬件性能,而不是學(xué)習(xí)模型的表現(xiàn)。這種方法旨在找到使計(jì)算變慢或低效的瓶頸。因此,重點(diǎn)在于設(shè)計(jì)一個(gè)對(duì)于深層神經(jīng)網(wǎng)絡(luò)訓(xùn)練的基本操作執(zhí)行效果最佳的架構(gòu)。那么基本操作有哪些呢?現(xiàn)在的深度學(xué)習(xí)算法主要包括卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)?;谶@些算法,DeepBench提出以下4種基本運(yùn)算:·矩陣相乘(MatrixMultiplication)幾乎所有的深度學(xué)習(xí)模型都包含這一運(yùn)算,它的計(jì)算十分密集?!ぞ矸e(Convolution)這是另一個(gè)常用的運(yùn)算,占用了模型中大部分的每秒浮點(diǎn)運(yùn)算(浮點(diǎn)/秒)?!ぱh(huán)層(RecurrentLayers)模型中的反饋層,并且基本上是前兩個(gè)運(yùn)算的組合?!llReduce這是一個(gè)在優(yōu)化前對(duì)學(xué)習(xí)到的參數(shù)進(jìn)行傳遞或解析的運(yùn)算序列。在跨硬件分布的深度學(xué)習(xí)網(wǎng)絡(luò)上執(zhí)行同步優(yōu)化時(shí)(如AlphaGo的例子),這一操作尤其有效。除此之外,深度學(xué)習(xí)的硬件加速器需要具備數(shù)據(jù)級(jí)別和流程化的并行性、多線程和高內(nèi)存帶寬等特性。另外,由于數(shù)據(jù)的訓(xùn)練時(shí)間很長(zhǎng),硬件架構(gòu)必須低功耗,因此效能功耗比(PerformanceperWatt)是硬件架構(gòu)的評(píng)估標(biāo)準(zhǔn)之一。1.GPUVSCPU在如今的深度學(xué)習(xí)平臺(tái)上,CPU面臨著一個(gè)很尷尬的處境:它很重要又不是太重要。它很重要,是因?yàn)樗琅f是主流深度學(xué)習(xí)平臺(tái)的重要組成部分,機(jī)器學(xué)習(xí)領(lǐng)域的專(zhuān)家吳恩達(dá)曾利用16000顆CPU搭建了當(dāng)時(shí)世界上最大的人工神經(jīng)網(wǎng)絡(luò)GoogleBrain并利用深度學(xué)習(xí)算法識(shí)別出了“貓”,又比如名震一時(shí)的AlphaGo就配置了多達(dá)1920顆CPU。但是它又不是太重要,相比于其他硬件加速工具,傳統(tǒng)的CPU在架構(gòu)上就有著先天的弱勢(shì)。圖1.12所示為CPU和GPU的區(qū)別。圖1.12CPUVSGPU圖1.12是CPU與GPU內(nèi)部結(jié)構(gòu)的對(duì)比??傮w上來(lái)說(shuō),二者都是由控制器(Control)、寄存器(Cache、DRAM)和邏輯單元(ArithmeticLogicUnit,ALU)構(gòu)成的,但是三者的比例卻有很大的不同。在CPU中,控制器和寄存器占據(jù)了結(jié)構(gòu)中很大一部分;與之相反,在GPU中,邏輯單元的規(guī)模則遠(yuǎn)遠(yuǎn)超過(guò)其他二者之和。說(shuō)明這種不同的構(gòu)架就決定了CPU在指令的處理/執(zhí)行、函數(shù)的調(diào)用上有著很好的發(fā)揮,但由于邏輯單元所占比重較小,相對(duì)于GPU而言,在數(shù)據(jù)處理方面(算術(shù)運(yùn)算或者邏輯運(yùn)算)的能力就弱了很多。GPU進(jìn)行數(shù)據(jù)處理的過(guò)程可以描述成:GPU從CPU處得到數(shù)據(jù)處理的指令,把大規(guī)模、無(wú)結(jié)構(gòu)化的數(shù)據(jù)分解成很多獨(dú)立的部分,然后分配給各個(gè)流處理器集群。每個(gè)流處理器集群再次把數(shù)據(jù)分解,分配給調(diào)度器所控制的多個(gè)計(jì)算核心,同時(shí)執(zhí)行數(shù)據(jù)的計(jì)算和處理。如果一個(gè)核心的計(jì)算算作一個(gè)線程,那么在這顆GPU中就有32×4×16=2048個(gè)線程同時(shí)進(jìn)行數(shù)據(jù)的處理。盡管每個(gè)線程/Core的計(jì)算性能、效率與CPU中的Core相比低了不少,但是當(dāng)所有線程都并行計(jì)算時(shí),累加之后它的計(jì)算能力又遠(yuǎn)遠(yuǎn)高于CPU。對(duì)于基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)來(lái)說(shuō),它的硬件計(jì)算精度要求遠(yuǎn)遠(yuǎn)沒(méi)有對(duì)其并行處理能力的要求來(lái)的迫切。而這種并行計(jì)算能力轉(zhuǎn)化為對(duì)于硬件的要求就是盡可能大的邏輯單元規(guī)模。通常我們使用每秒鐘進(jìn)行的浮點(diǎn)運(yùn)算(Flops/s)來(lái)量化參數(shù)。不難看出,對(duì)于單精度浮點(diǎn)運(yùn)算,GPU的執(zhí)行效率遠(yuǎn)遠(yuǎn)高于CPU。除了計(jì)算核心的增加外,GPU另一個(gè)比較重要的優(yōu)勢(shì)就是它的內(nèi)存結(jié)構(gòu)。(1)共享內(nèi)存。在NVIDIA披露的性能參數(shù)中,每個(gè)流處理器集群末端設(shè)有共享內(nèi)存。相比于CPU每次操作數(shù)據(jù)都要返回內(nèi)存再進(jìn)行調(diào)用,GPU線程之間的數(shù)據(jù)通信不需要訪問(wèn)全局內(nèi)存,而在共享內(nèi)存中就可以直接訪問(wèn)。這種設(shè)置帶來(lái)最大的好處就是線程間通信速度的提高。(2)高速的全局內(nèi)存(顯存)。目前GPU上普遍采用GDDR5的顯存顆粒,不僅具有更高的工作頻率,從而帶來(lái)更快的數(shù)據(jù)讀?。瘜?xiě)入速度,還具有更大的顯存帶寬。我們認(rèn)為在數(shù)據(jù)處理中,速度往往最終取決于處理器從內(nèi)存中提取數(shù)據(jù)以及流入和通過(guò)處理器要花多少時(shí)間。在傳統(tǒng)的CPU構(gòu)架中,盡管有高速緩存(Cache)的存在,但是由于其容量較小,大量的數(shù)據(jù)只能存放在內(nèi)存(RAM)中。進(jìn)行數(shù)據(jù)處理時(shí),數(shù)據(jù)要從內(nèi)存中讀取,然后在CPU中運(yùn)算,最后返回內(nèi)存中。由于構(gòu)架的原因,二者之間的通信帶寬通常在60Gb/s徘徊。與之相比,大顯存帶寬的GPU具有更大的數(shù)據(jù)吞吐量。在大規(guī)模深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中,必然帶來(lái)更大的優(yōu)勢(shì)。目前而言,越來(lái)越多的深度學(xué)習(xí)標(biāo)準(zhǔn)庫(kù)支持基于GPU的深度學(xué)習(xí)加速,通俗點(diǎn)描述就是深度學(xué)習(xí)的編程框架會(huì)自動(dòng)根據(jù)GPU所具有的線程/Core數(shù)去自動(dòng)分配數(shù)據(jù)的處理策略,從而達(dá)到優(yōu)化深度學(xué)習(xí)的時(shí)間,而這些軟件上的全面支持也是其他計(jì)算結(jié)構(gòu)所欠缺的。2.FPGA的潛在優(yōu)勢(shì)“CPU+GPU”或者“MIC”的計(jì)算模型被廣泛地應(yīng)用于各種深度學(xué)習(xí)中。CPU與GPU都是利用現(xiàn)有的成熟技術(shù)去提供一種通用級(jí)的解決方法來(lái)滿足深度學(xué)習(xí)的要求,盡管Intel與NVIDIA不斷推出了KNL和Pascal等系列加速芯片來(lái)助陣深度學(xué)習(xí),但這僅僅是大公司對(duì)于深度學(xué)習(xí)的一種妥協(xié),并不是一種針對(duì)性的專(zhuān)業(yè)解決方案。目前,在深度學(xué)習(xí)模型的訓(xùn)練領(lǐng)域使用的基本是SIMD(SingleInstructionMultipleData,單指令多數(shù)據(jù)流架構(gòu))計(jì)算,即只需要一條指令就可以平行處理大批量數(shù)據(jù)。但是,在平臺(tái)完成訓(xùn)練之后,它還需要進(jìn)行推理環(huán)節(jié)的計(jì)算。這部分的計(jì)算更多的是MISD(MultipleInstructionSingleData,多指令流單數(shù)據(jù)流)。比如訊飛語(yǔ)音輸入法在同一時(shí)間要對(duì)數(shù)以百萬(wàn)計(jì)的用戶的語(yǔ)音輸入進(jìn)行識(shí)別并轉(zhuǎn)化為文字輸出。在這個(gè)階段,它們的作用遠(yuǎn)不如訓(xùn)練階段那么得心應(yīng)手。未來(lái),至少95%的深度學(xué)習(xí)都用于推斷,尤其是在移動(dòng)端,只有不到5%的深度學(xué)習(xí)用于模型訓(xùn)練。因此,尋找低功耗、高性能、低延時(shí)的加速硬件成了當(dāng)務(wù)之急。在這種情況下,人們把目光投向了FPGA與ASIC。與GPU/CPU相比,F(xiàn)PGA與ASIC擁有良好的運(yùn)行能效比,在實(shí)現(xiàn)相同性能的深度學(xué)習(xí)算法中,GPU所需的功耗遠(yuǎn)遠(yuǎn)大于FGPA與ASIC。浪潮與Intel于2016年底推出了FPGA加速卡F10A,是目前最高性能的加速卡,單芯片峰值運(yùn)算能力達(dá)到1.5TFlops,功耗才35W,每瓦特功率為42GFlops,是GPU的數(shù)倍之高。其次,對(duì)于SIMD計(jì)算,GPU/CPU盡管具有很多邏輯核心,但是受限于馮諾依曼結(jié)構(gòu),無(wú)法發(fā)揮其并行計(jì)算的特點(diǎn)。FPGA與ASIC不僅可以做到并行計(jì)算,還能實(shí)現(xiàn)流水處理。這大大減小了輸入與輸出的延時(shí)比。針對(duì)移動(dòng)端的深度學(xué)習(xí),F(xiàn)PGA或者ASIC更多的會(huì)以SOC形式出現(xiàn),以更好地優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),從而提升效率。1.3.25G無(wú)線圖1.13展示了Xilinx5G應(yīng)用及對(duì)應(yīng)解決方案示意圖,F(xiàn)PGA在推動(dòng)5G發(fā)展中有很大的作用。圖1.13Xilinx5G應(yīng)用及對(duì)應(yīng)解決方案示意圖到2020年,預(yù)計(jì)將有超過(guò)500億的互聯(lián)設(shè)備。因此,5G網(wǎng)絡(luò)必須具有更高的可擴(kuò)展性、智能性和異構(gòu)性。分布式小型基站、支持?jǐn)?shù)百個(gè)天線的海量MIMO以及通過(guò)CloudRAN進(jìn)行的集中式基帶處理等技術(shù)將顯著增大覆蓋范圍與數(shù)據(jù)吞吐量。網(wǎng)絡(luò)將需要通過(guò)回程及光前傳來(lái)進(jìn)行安全連接,以完成處理。對(duì)于5G而言,F(xiàn)PGA的技術(shù)正在幫助解決容量、連接以及性能挑戰(zhàn),并靈活支持多標(biāo)準(zhǔn)、多頻帶和多子網(wǎng)絡(luò),實(shí)現(xiàn)多樣物聯(lián)網(wǎng)驅(qū)動(dòng)的5G應(yīng)用。只有FPGA能夠提供這樣一個(gè)靈活的、基于標(biāo)準(zhǔn)的解決方案,融軟件可編程能力、多標(biāo)準(zhǔn)、多頻帶硬件優(yōu)化為一體,并將任意(any-to-any)連接以及保密性等功能緊密結(jié)合在一起,以滿足5G網(wǎng)絡(luò)的需求。客戶可在ZynqMPSoC和UltraScaleFPGA芯片平臺(tái)上使用VivadoHLS、SDSoC和SDAccel軟件定義環(huán)境快速開(kāi)發(fā)其應(yīng)用。Xilinx推出業(yè)界首款帶有RF級(jí)模擬技術(shù)的RFSoC器件,可實(shí)現(xiàn)高性能ADC/DAC和SD-FEC與SoC的突破性集成。1.3.3嵌入式視覺(jué)圖1.14所示為Xilinx嵌入式視覺(jué)應(yīng)用及對(duì)應(yīng)解決方案的內(nèi)容。圖1.14Xilinx嵌入式視覺(jué)應(yīng)用及對(duì)應(yīng)解決方案示意圖1.嵌入式的發(fā)展前景當(dāng)前嵌入式設(shè)計(jì)發(fā)展迅猛,有很多需求無(wú)法被現(xiàn)有的產(chǎn)品滿足?,F(xiàn)有的產(chǎn)品包括單個(gè)處理器、單個(gè)ASIC、ASSP或者單純的FPGA方案,甚至這些方案的組合也都無(wú)法滿足需求。根據(jù)市場(chǎng)調(diào)查顯示,全新的嵌入式應(yīng)用(比如汽車(chē)駕駛員輔助系統(tǒng)、智能視頻監(jiān)視、先進(jìn)的工業(yè)控制、先進(jìn)的工業(yè)遙測(cè)、先進(jìn)的工業(yè)制導(dǎo)、企業(yè)級(jí)的工作站、廣播級(jí)的攝像機(jī)、多功能打印機(jī)、航空航天電子等應(yīng)用)設(shè)計(jì)隨市場(chǎng)需求的旺盛,將成為新的利潤(rùn)增長(zhǎng)點(diǎn)。深入了解下一代嵌入式處理器的需要,我們會(huì)發(fā)現(xiàn)提高性能、減少成本、降低功耗、縮小外形、增加靈活性是主要需要。現(xiàn)有方案的局限性也是相當(dāng)明顯的,例如現(xiàn)有的微處理器缺乏足夠的信號(hào)處理能力,需要多芯片方案來(lái)搭建下一代的處理器系統(tǒng)。多芯片方案成本較高,功耗大,占用更多的空間,不利于縮小外形,同時(shí)如果采用現(xiàn)有的ASIC或ASSP方案,更新?lián)Q代的速度或者說(shuō)差異化的能力都會(huì)受限,不能適應(yīng)快速變化的需求,也很難提供差異化的競(jìng)爭(zhēng)優(yōu)勢(shì),這些局限性使我們看到下一代處理器需要解決和應(yīng)對(duì)的問(wèn)題。在市場(chǎng)需求推動(dòng)下,為了滿足下一代應(yīng)用處理的需求,Xilinx定義了Zynq-7000系列產(chǎn)品,并首先推出了4款(7010、7020、7030和7045)。它們都是高性能和低功耗的處理器平臺(tái),是靈活和可擴(kuò)展的解決方案。下面我們一起來(lái)初步了解Zynq-7000APSoC平臺(tái)的ARM+FPGA體系結(jié)構(gòu)。此體系結(jié)構(gòu)的左上角方塊就是ARM部分,在Zynq-7000APSoC平臺(tái)里稱(chēng)為ProcessingSystem(PS)。外面包著它的是FPGA部分,稱(chēng)為ProgrammableLogic(PL)。FPGA部分就是我們上一節(jié)介紹的7系列FPGA,內(nèi)部的資源和結(jié)構(gòu)與7系列FPGA一樣。Zynq-7000系列的亮點(diǎn)在于它包含完整的ARM處理子系統(tǒng),每一顆Zynq-7000系列的處理器都包含雙核的CortexTM-A9處理器,整個(gè)處理器的搭建都以處理器為中心,而且處理器子系統(tǒng)中集成了內(nèi)存控制器和大量的外設(shè),使CortexTM-A9的核在Zynq-7000中完全獨(dú)立于可編程邏輯單元,也就是說(shuō),如果暫時(shí)沒(méi)有用到FPGA的部分,ARM處理器的子系統(tǒng)也可以獨(dú)立工作,這與以前的FPGA處理器有本質(zhì)區(qū)別,其是以處理器為中心的。另外,在可編程邏輯部分緊密地與ARM的處理單元相結(jié)合。FPGA的部分用于擴(kuò)展子系統(tǒng),有豐富的擴(kuò)展能力,有3000多個(gè)內(nèi)部互連,連接資源非常豐富,可提供100Gb/s以上的內(nèi)部帶寬。此外,在I/O接口方面,F(xiàn)PGA的優(yōu)點(diǎn)是I/O可以充分自定義,并在FPGA部分集成高速串行口(MultiGigabitTransceiver)。同時(shí),在FPGA內(nèi)也繼承了模數(shù)轉(zhuǎn)換器(XADC)。2.Xilinx嵌入式視覺(jué)解決方案Xilinx可為嵌入式視覺(jué)開(kāi)發(fā)人員提供一系列支持軟硬件設(shè)計(jì)的技術(shù)。Xilinx器件包括FPGA、SoC以及MPSoC。Xilinx的VivadoHLx設(shè)計(jì)環(huán)境可幫助硬件及平臺(tái)開(kāi)發(fā)商開(kāi)發(fā)最新嵌入式視覺(jué)硬件。這些工具支持業(yè)界最新高帶寬傳感器接口。Xilinx包括SDSoC在內(nèi)的SDx工具有助于軟件及算法開(kāi)發(fā)人員在基于Eclipse的熟悉環(huán)境中采用C、C++和OpenCL等計(jì)算機(jī)語(yǔ)言進(jìn)行開(kāi)發(fā)。XilinxreVISION堆棧建立在SDx概念基礎(chǔ)之上,支持OpenCV和機(jī)器學(xué)習(xí)推斷,從而支持AlexNet、GoogLeNet、SqueezeNet、SSD和FCN等最普及的神經(jīng)網(wǎng)絡(luò)以及構(gòu)建定制神經(jīng)網(wǎng)絡(luò)(CNN/DNN)所需的功能元件。同時(shí),該堆棧還允許設(shè)計(jì)團(tuán)隊(duì)將預(yù)定義的優(yōu)化CNN實(shí)現(xiàn)方案用于網(wǎng)絡(luò)層。這得到了加速型OpenCV函數(shù)的有力補(bǔ)充,支持計(jì)算機(jī)視覺(jué)處理。1.3.4工業(yè)物聯(lián)網(wǎng)圖1.15所示為Xilinx工業(yè)物聯(lián)網(wǎng)應(yīng)用及對(duì)應(yīng)解決方案示意圖。工業(yè)物聯(lián)網(wǎng)(IIoT)正在推動(dòng)第4輪工業(yè)革命。它極大地改變著制造、能源、交通運(yùn)輸、城市、醫(yī)療以及其他工業(yè)行業(yè)。大部分專(zhuān)家認(rèn)為IIoT時(shí)代已悄然來(lái)到,帶來(lái)了實(shí)實(shí)在在可測(cè)量的業(yè)務(wù)影響。IIoT可幫助企業(yè)從傳感器收集、聚集和分析數(shù)據(jù),從而最大限度地提高機(jī)器效率以及整個(gè)工作的吞吐量。應(yīng)用包括運(yùn)動(dòng)控制、機(jī)器與機(jī)器通信、預(yù)測(cè)性維護(hù)、智能能源/電網(wǎng)、大數(shù)據(jù)分析以及智能互聯(lián)醫(yī)療系統(tǒng)等。圖1.15Xilinx工業(yè)物聯(lián)網(wǎng)應(yīng)用及對(duì)應(yīng)解決方案示意圖Xilinx提供了面向工業(yè)物聯(lián)網(wǎng)的靈活標(biāo)準(zhǔn)化解決方案,包括全可編程、實(shí)時(shí)處理、硬件優(yōu)化和針對(duì)保密和安全的“任意”互聯(lián)。XilinxSDAccel、SDSoC和VivadoHLS可幫助客戶快速開(kāi)發(fā)更智能的互連差異化應(yīng)用。1.3.5云計(jì)算圖1.16所示為Xilinx云計(jì)算應(yīng)用及對(duì)應(yīng)解決方案示意圖。圖1.16Xilinx云計(jì)算應(yīng)用及對(duì)應(yīng)解決方案示意圖數(shù)據(jù)中心需要工作負(fù)載優(yōu)化,以迅速適應(yīng)來(lái)自廣泛虛擬化軟件應(yīng)用不斷變化的吞吐量、延遲和功率需求。這些應(yīng)用包括機(jī)器學(xué)習(xí)、視頻轉(zhuǎn)碼、圖像和語(yǔ)音識(shí)別、CloudRAN和大數(shù)據(jù)分析,以及存儲(chǔ)與網(wǎng)絡(luò)加速、高度靈活的高性能連接。Xilinx可使服務(wù)器通過(guò)工作負(fù)載優(yōu)化,以類(lèi)似CPU和GPU方案的1/10時(shí)延及功耗實(shí)現(xiàn)10倍吞吐量。應(yīng)用通過(guò)OpenCL、C和C++等語(yǔ)言編寫(xiě)。靈活、基于標(biāo)準(zhǔn)的解決方案融軟件可編程能力、負(fù)載優(yōu)化和高性能數(shù)據(jù)中心互聯(lián)為一體,并與保密性緊密結(jié)合在一起,以滿足下一代云計(jì)算的需求。Xilinx產(chǎn)品系列包含UltraScale技術(shù),其可作為可擴(kuò)展、可重新配置的加速平臺(tái),針對(duì)任何工作負(fù)載按需進(jìn)行優(yōu)化。Xilinx軟件定義開(kāi)發(fā)環(huán)境SDAccel可幫助客戶使用OpenCL、C和C++的任意組合來(lái)開(kāi)發(fā)其獨(dú)特應(yīng)用。SDAccel部署獨(dú)有的架構(gòu)優(yōu)化型編譯器和部分重新配置技術(shù),這兩者的結(jié)合可通過(guò)靈活的運(yùn)行時(shí)功能提供最高質(zhì)量的結(jié)果。1.3.6FPGA硬件加速平臺(tái)1.算法加速卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetwork,CNN)是一種典型的多層神經(jīng)網(wǎng)絡(luò),是首個(gè)真正意義上成功訓(xùn)練多個(gè)層次網(wǎng)絡(luò)的結(jié)構(gòu)模型。權(quán)值共享的網(wǎng)絡(luò)結(jié)構(gòu)使之在圖像處理、語(yǔ)音識(shí)別等領(lǐng)域有著重要的應(yīng)用價(jià)值。CNN算法通常是在CPU或GPU上以軟件編程的方式進(jìn)行實(shí)現(xiàn)的,方法雖簡(jiǎn)單卻無(wú)法發(fā)揮CNN并行性的特點(diǎn)、訓(xùn)練速度慢。FPGA含有豐富的計(jì)算資源,基于SRAM結(jié)構(gòu)的FPGA能夠在運(yùn)行過(guò)程中對(duì)片上的資源進(jìn)行重新配置,實(shí)現(xiàn)系統(tǒng)邏輯功能的切換、提高系統(tǒng)的靈活性和資源利用率。對(duì)生物大分子進(jìn)行結(jié)構(gòu)預(yù)測(cè)是生物信息學(xué)研究的重要領(lǐng)域,具有重大的理論和應(yīng)用價(jià)值。隨著基因測(cè)序技術(shù)的不斷發(fā)展,RNA和蛋白質(zhì)序列數(shù)據(jù)庫(kù)的規(guī)模急劇膨脹,現(xiàn)有結(jié)構(gòu)測(cè)定技術(shù)無(wú)法滿足不斷增長(zhǎng)的序列數(shù)據(jù)庫(kù)的發(fā)展需求,基于序列信息對(duì)生物大分子的空間結(jié)構(gòu)進(jìn)行預(yù)測(cè)成為生物信息學(xué)研究的熱點(diǎn)。生物大分子的結(jié)構(gòu)預(yù)測(cè)算法計(jì)算復(fù)雜性高,對(duì)數(shù)據(jù)的處理能力提出了更高的要求,迫切需要高性能計(jì)算的支持?;贔PGA平臺(tái)的算法加速器是高性能計(jì)算研究的重要方向之一,能較好地適應(yīng)生物信息學(xué)算法特征多樣性的特點(diǎn),在提高生物信息學(xué)算法性能方面具有廣闊的應(yīng)用前景。2.?dāng)?shù)據(jù)庫(kù)加速FPGA領(lǐng)域研發(fā)需要軟件與硬件兩方面的支持。其中,硬件部分包括FPGA開(kāi)發(fā)板與相應(yīng)下載器,軟件部分包括FPGA設(shè)計(jì)過(guò)程中對(duì)應(yīng)的EDA工具。FPGA芯片數(shù)據(jù)庫(kù)是實(shí)現(xiàn)軟、硬件協(xié)同工作的紐帶,實(shí)現(xiàn)一種簡(jiǎn)明、精準(zhǔn)的芯片數(shù)據(jù)庫(kù)描述方法是FPGA高效開(kāi)發(fā)的一項(xiàng)重要內(nèi)容,同時(shí)對(duì)所描述的芯片數(shù)據(jù)庫(kù)信息實(shí)現(xiàn)簡(jiǎn)潔、高效管理是至關(guān)重要的。針對(duì)現(xiàn)存芯片數(shù)據(jù)庫(kù)中存在的描述結(jié)構(gòu)單一、描述信息管理效率低的問(wèn)題,研究人員提出了一種新型芯片結(jié)構(gòu)描述與管理方法,提高了FPGA芯片數(shù)據(jù)庫(kù)信息的準(zhǔn)確性,并實(shí)現(xiàn)了芯片數(shù)據(jù)庫(kù)信息的高效率智能化管理。1.4總結(jié)本章就此結(jié)束,主要對(duì)FPGA的基本結(jié)構(gòu)、用途等進(jìn)行了詳細(xì)的解釋?zhuān)鯇W(xué)者可通過(guò)此部分對(duì)FPGA有初步的認(rèn)識(shí)。下一章對(duì)FPGA軟件安裝和語(yǔ)法等基礎(chǔ)知識(shí)進(jìn)行介紹。第2章FPGA設(shè)計(jì)基礎(chǔ)知識(shí)本章將對(duì)FPGA的基礎(chǔ)知識(shí)進(jìn)行介紹,包括軟件的下載安裝、相關(guān)軟件進(jìn)行關(guān)聯(lián),以便更好地使用,還會(huì)涉及Verilog語(yǔ)言特性的介紹和使用等。通過(guò)本章的學(xué)習(xí),初學(xué)者可以順利安裝FPGA相關(guān)軟件,使這些軟件成為學(xué)習(xí)FPGA的尖兵利器。同時(shí),Verilog語(yǔ)言的介紹會(huì)為第3、4、5章FPGA的設(shè)計(jì)打下基礎(chǔ)。2.1軟件下載及安裝本節(jié)主要對(duì)FPGA相關(guān)軟件的安裝方法進(jìn)行介紹。初學(xué)者根據(jù)此安裝步驟即可順利安裝軟件。2.1.1ISE下載及安裝步驟01可以在ISE官網(wǎng)上下載軟件,下載后單擊xsetup安裝文件,直接進(jìn)行安裝,如圖2.1所示。圖2.1單擊xsetup進(jìn)行安裝步驟02安裝程序開(kāi)始運(yùn)行后,一直單擊Next按鈕,如圖2.2所示,直到出現(xiàn)如圖2.3所示的界面。圖2.2單擊Next按鈕步驟03勾選圖2.3中的兩個(gè)選項(xiàng),單擊Next按鈕。圖2.3將兩個(gè)選項(xiàng)勾選并單擊Next按鈕步驟04出現(xiàn)如圖2.4所示的界面時(shí),選擇ISEDesignSuiteSystemEdition選項(xiàng),單擊Next按鈕。圖2.4選擇ISEDesignSuiteSystemEdition選項(xiàng)步驟05出現(xiàn)如圖2.5所示的界面時(shí),勾選所有選項(xiàng),然后單擊Next按鈕。圖2.5勾選所有選項(xiàng)步驟06出現(xiàn)如圖2.6所示的界面時(shí)選擇創(chuàng)建目錄等情況。此時(shí)最好選擇在C盤(pán)中安裝,并選中所有工具。圖2.6選擇創(chuàng)建目錄等情況步驟07配置完環(huán)境后,出現(xiàn)如圖2.7所示的安裝界面,此時(shí)單擊Install按鈕即可進(jìn)行安裝。圖2.7單擊Install按鈕進(jìn)行安裝步驟08安裝完成后,桌面上出現(xiàn)如圖2.8所示的圖標(biāo)。圖2.8安裝完成2.1.2ModelSim下載及安裝步驟01下載ModelSim10.5,如圖2.9所示,自行選擇32位或64位。(本節(jié)以64位為例進(jìn)行介紹。)圖2.9選擇32位或者64位軟件步驟02選擇安裝路徑,之后一直單擊Next按鈕直至安裝結(jié)束。選擇默認(rèn)安裝路徑C:\modeltech64_10.5,如圖2.10所示。圖2.10安裝到C盤(pán)提示建議安裝至默認(rèn)路徑,下面都以默認(rèn)路徑操作。若沒(méi)有選擇默認(rèn)路徑,則本文中所有C:\modeltech64_10.5都應(yīng)該代替為自己選擇的路徑。步驟03最后安裝成功。2.1.3Vivado下載及安裝1.Vivado2016安裝步驟01從官網(wǎng)下載Vivado2016,解壓執(zhí)行xsetup.exe,開(kāi)始安裝,如圖2.11所示。圖2.11解壓執(zhí)行xsetup.exe步驟02一直單擊Next按鈕,安裝過(guò)程中出現(xiàn)對(duì)話框,提示要不要更新到最新版,選擇不要,因?yàn)樽钚掳娴南到y(tǒng)可能不穩(wěn)定,如圖2.12所示。圖2.12不要安裝最新版步驟03單擊Continue按鈕。勾選所有的IAgree復(fù)選框,然后單擊Next按鈕,如圖2.13所示。圖2.13選擇所有選項(xiàng)步驟04單擊VivadoHLDesignEdition,然后單擊Next按鈕,如圖2.14所示。圖2.14勾選第三個(gè)選項(xiàng)步驟05在圖2.15所示的對(duì)話框中選中方框內(nèi)的SoftwareDevelopmentKit(在以后做SOC功能時(shí)需要),如果此時(shí)未選,那么之后將無(wú)法使用。然后單擊Next按鈕。圖2.15勾選SDK安裝環(huán)境步驟06選擇自己所要安裝的路徑,然后單擊Next按鈕。根據(jù)之前勾選的軟件進(jìn)行安裝。該軟件占用磁盤(pán)空間較大,若磁盤(pán)空間不足,則會(huì)出現(xiàn)紅色字體,如圖2.16所示。圖2.16磁盤(pán)空間不足(見(jiàn)下載資源)當(dāng)磁盤(pán)空間足夠時(shí),紅色字體將會(huì)全部消失,如圖2.17所示。圖2.17磁盤(pán)空間足夠,紅色字體消失(見(jiàn)下載資源)步驟07若第一次安裝Xilinx,則會(huì)彈出是否要?jiǎng)?chuàng)建Xilinx文件夾的對(duì)話框,此時(shí)單擊Yes按鈕即可,如圖2.18所示。圖2.18創(chuàng)建Xilinx文件夾步驟08然后單擊Install按鈕,如圖2.19所示。圖2.19進(jìn)行安裝步驟09正在安裝軟件,差不多要半個(gè)小時(shí)到一個(gè)小時(shí),請(qǐng)耐心等待,如圖2.20所示。圖2.20安裝提示2.1.4ISE關(guān)聯(lián)ModelSim步驟01按Windows鍵,然后選擇“所有程序→ISEDesignSuite”,在ISEDesignTools里找到SimulationLibraryCompilationWizard,如圖2.21所示。如果ModelSim是64位的就要選擇64位文件夾下的,32位的就選擇32位文件夾下的。步驟02找到ModelSim的安裝目錄,把modelsim.ini文件的只讀屬性去掉,如圖2.22所示。圖2.21找到Modelsim圖2.22去掉modelsim.ini文件的只讀屬性步驟03ISE仿真庫(kù)編譯工具選擇ModelSimSE。步驟04設(shè)置ModelSim仿真工具,啟動(dòng)工具路徑,如圖2.23所示。圖2.23設(shè)置ModelSim仿真工具,啟動(dòng)工具路徑步驟05語(yǔ)言選擇Verilogorvhdlorboth。選擇器件庫(kù),如圖2.24所示。圖2.24選擇器件庫(kù)步驟06選擇默認(rèn)Library存放路徑,如圖2.25所示。圖2.25選擇默認(rèn)Library存放路徑步驟07一直單擊Next按鈕,直到出現(xiàn)編譯按鈕。單擊編譯按鈕進(jìn)行編譯。步驟08生成編譯庫(kù)后,在Xilinx的默認(rèn)路徑找到modelsim.ini文件并打開(kāi),如圖2.26所示。圖2.26找到modelsim.ini文件把選中部分復(fù)制到ModelSim安裝路徑下的modelsim.ini文件中,也就是之前把寫(xiě)只讀屬性去掉的那個(gè)文件,如圖2.27所示。圖2.27選取modelsim.ini文件部分內(nèi)容復(fù)制完成后,關(guān)閉modelsim.ini文件,選中只讀屬性,如圖2.28所示。注意一旦編譯開(kāi)始,就千萬(wàn)不要中斷,如果中斷,只能重新裝系統(tǒng)才能編譯庫(kù)。如果第一次設(shè)置不正確,但是單擊了編譯庫(kù),那么讓程序編譯完成之后再去更改設(shè)置。圖2.28將選中的內(nèi)容復(fù)制到安裝路徑下的ini文件中2.1.5Vivado關(guān)聯(lián)ModelSimVivado仿真編譯步驟如下。步驟01打開(kāi)Vivado軟件,單擊Tools→CompileSimulationLibraries…菜單,出現(xiàn)如圖2.29所示的對(duì)話框。尋找仿真路徑,選擇ModelSim安裝路徑下的win64文件夾。圖2.29設(shè)置編譯庫(kù)路徑在自己想要的位置新建一個(gè)文件夾,用于存放編譯好的內(nèi)容,以便日后使用,如圖2.30所示。圖2.30選擇自己新建的文件夾步驟02單擊Compile(綜合)按鈕,如圖2.31所示。圖2.31開(kāi)始進(jìn)行編譯步驟03編譯過(guò)程如圖2.32所示,若單擊Background按鈕,則會(huì)將編譯進(jìn)度隱藏。圖2.32編譯過(guò)程步驟04選擇仿真工具,單擊Simulation→SimulationSettings,如圖2.33所示。出現(xiàn)如圖2.34所示的界面,選擇ModelSimSimulator,然后單擊OK按鈕。圖2.33進(jìn)行仿真設(shè)置圖2.34選擇ModelSimSimulator步驟05單擊開(kāi)始仿真,如圖2.35所示。圖2.35開(kāi)始仿真能夠正常打開(kāi)ModelSim就關(guān)聯(lián)成功了。2.1.6UE(UltraEdit)的安裝和配置注意安裝時(shí),安裝包不能放在中文文件夾路徑下,安裝步驟和普通軟件一樣,如圖2.36所示。圖2.36單擊箭頭所示的應(yīng)用程序1.UE安裝步驟01單擊“立即安裝”按鈕開(kāi)始安裝,如圖2.37所示。圖2.37開(kāi)始安裝步驟02之后等待軟件運(yùn)行即可,一直單擊“下一步”按鈕,如圖2.38所示。圖2.38單擊“下一步”按鈕步驟03遇到接受協(xié)議的地方,選擇“我接受此協(xié)議”,單擊“下一步”按鈕,如圖2.39所示。圖2.39接受協(xié)議步驟04在選擇完成還是定制的時(shí)候,選擇定制即可,如圖2.40所示。圖2.40選擇定制步驟05選擇安裝路徑,如圖2.41所示。圖2.41選擇安裝路徑步驟06一直單擊“下一步”按鈕,直到安裝完成,如圖2.42所示。圖2.42安裝完成2.設(shè)置Verilog程序高亮步驟01復(fù)制文件verilog.uew到UE注冊(cè)表的wordfiles文件夾內(nèi),如圖2.43所示。圖2.43復(fù)制verilog.uew到此處步驟02打開(kāi)UE高級(jí)配置編輯,如圖2.44所示。圖2.44單擊“配置”步驟03單擊“編輯器顯示”列表項(xiàng),如圖2.45所示。圖2.45單擊“編輯器顯示”列表項(xiàng)步驟04單擊“語(yǔ)法高亮”選項(xiàng),如圖2.46所示。圖2.46單擊“語(yǔ)法高亮”選項(xiàng)步驟05選擇剛才存放verilog.uew文件的路徑,如圖2.47所示。圖2.47選擇存放ve

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論