版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、FPGA相關(guān)資料第一章1FPGA和FPGA數(shù)字系統(tǒng)(1)可編程邏輯器件概述可編程邏輯器件 英文全稱為:programmable logic device 即 PLD。PLD是做為一種通用集成電路產(chǎn)生的,他的邏輯功能按照用戶對(duì)器件編程來(lái)確定。一般的PLD的集成度很高,足以滿足設(shè)計(jì)一般數(shù)字系統(tǒng)的需要。這樣就可以由設(shè)計(jì)人員自行編程而把一個(gè)數(shù)字系統(tǒng)“集成”在一片PLD上,而不必去請(qǐng)芯片制造廠商設(shè)計(jì)和制作專用的集成電路芯片了。PLD與一般數(shù)字芯片不同的是:PLD內(nèi)部的數(shù)字電路可以在出廠后才規(guī)劃決定,有些類型的PLD也允許在規(guī)劃決定后再次進(jìn)行變更、改變,而一般數(shù)字芯片在出廠前就已經(jīng)決定其內(nèi)部電路,無(wú)法在出
2、廠后再次改變,事實(shí)上一般的模擬芯片、混訊芯片也都一樣,都是在出廠后就無(wú)法再對(duì)其內(nèi)部電路進(jìn)行調(diào)修。邏輯器件可分為兩大類 - 固定邏輯器件和可編程邏輯器件。 一如其名,固定邏輯器件中的電路是永久性的,它們完成一種或一組功能 - 一旦制造完成,就無(wú)法改變。 另一方面,可編程邏輯器件(PLD)是能夠?yàn)榭蛻籼峁┓秶鷱V泛的多種邏輯能力、特性、速度和電壓特性的標(biāo)準(zhǔn)成品部件 - 而且此類器件可在任何時(shí)間改變,從而完成許多種不同的功能。對(duì)于固定邏輯器件,根據(jù)器件復(fù)雜性的不同,從設(shè)計(jì)、原型到最終生產(chǎn)所需要的時(shí)間可從數(shù)月至一年多不等。 而且,如果器件工作不合適,或者如果應(yīng)用要求發(fā)生了變化,那么就必須開(kāi)發(fā)全新的設(shè)計(jì)。
3、 設(shè)計(jì)和驗(yàn)證固定邏輯的前期工作需要大量的“非重發(fā)性工程成本”,或NRE。 NRE表示在固定邏輯器件最終從芯片制造廠制造出來(lái)以前客戶需要投入的所有成本,這些成本包括工程資源、昂貴的軟件設(shè)計(jì)工具、用來(lái)制造芯片不同金屬層的昂貴光刻掩模組,以及初始原型器件的生產(chǎn)成本。 這些NRE成本可能從數(shù)十萬(wàn)美元至數(shù)百萬(wàn)美元。對(duì)于可編程邏輯器件,設(shè)計(jì)人員可利用價(jià)格低廉的軟件工具快速開(kāi)發(fā)、仿真和測(cè)試其設(shè)計(jì)。 然后,可快速將設(shè)計(jì)編程到器件中,并立即在實(shí)際運(yùn)行的電路中對(duì)設(shè)計(jì)進(jìn)行測(cè)試。 原型中使用的PLD器件與正式生產(chǎn)最終設(shè)備(如網(wǎng)絡(luò)路由器、ADSL調(diào)制解調(diào)器、DVD播放器、或汽車導(dǎo)航系統(tǒng))時(shí)所使用的PLD完全相同。 這樣
4、就沒(méi)有了NRE成本,最終的設(shè)計(jì)也比采用定制固定邏輯器件時(shí)完成得更快。采用PLD的另一個(gè)關(guān)鍵優(yōu)點(diǎn)是在設(shè)計(jì)階段中客戶可根據(jù)需要修改電路,直到對(duì)設(shè)計(jì)工作感到滿意為止。 這是因?yàn)镻LD基于可重寫(xiě)的存儲(chǔ)器技術(shù)-要改變?cè)O(shè)計(jì),只需要簡(jiǎn)單地對(duì)器件進(jìn)行重新編程。 一旦設(shè)計(jì)完成,客戶可立即投入生產(chǎn),只需要利用最終軟件設(shè)計(jì)文件簡(jiǎn)單地編程所需要數(shù)量的PLD就可以了。常見(jiàn)的PLD產(chǎn)品:可編程只讀存儲(chǔ)器(PROM)、現(xiàn)場(chǎng)可編程邏輯陣列(FPLA)、可編程陣列邏輯(PAL)、復(fù)雜可編程邏輯器件(CPLD)、和現(xiàn)場(chǎng)可編程門陣列(FPGA)等類型。它們的內(nèi)部結(jié)構(gòu)和表現(xiàn)方法各不相同可編程邏輯器件的分類1) 按編程部位分類PLD有
5、著大致相同的基本結(jié)構(gòu),根據(jù)與陣列或陣列是否可編程,分為三種基本類型:與陣列固定,或陣列可編程;2與或陣列均可編程;3與陣列可編程,或陣列固定2) 按編程方式分類1掩膜編程2熔絲與反熔絲編程;3紫外線擦除、電可編程;4電擦除、電可編程;5在系統(tǒng)編程(2)現(xiàn)場(chǎng)可編程門陣列(FPGA)現(xiàn)場(chǎng)可編程邏輯門陣列(FPGA, Field Programmable Gate Array),是一個(gè)含有可編輯元件的半導(dǎo)體設(shè)備,可供使用者現(xiàn)場(chǎng)程式化的邏輯門陣列元件。FPGA是在PAL、GAL、CPLD等可編輯器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。FPGA概述FPGA則是操控層次更低,所以自由度更大的芯片,對(duì)FPGA的編程在
6、編譯后是轉(zhuǎn)化為FPGA內(nèi)的連線表,相當(dāng)于FPGA內(nèi)提供了大量的與非門、或非門、觸發(fā)器(可以用與非門形成吧)等基本數(shù)字器件,編程決定了有多少器件被使用以及它們之間的連接。只要FPGA規(guī)模夠大,這些數(shù)字器件理論上能形成一切數(shù)字系統(tǒng),包括單片機(jī)甚至CPU。FPGA在抗干擾,速度上有很大優(yōu)勢(shì)。FPGA發(fā)展背景目前以硬件描述語(yǔ)言(Verilog 或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過(guò)簡(jiǎn)單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測(cè)試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來(lái)實(shí)現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在
7、大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flipflop)或者其他更加完整的記憶塊。 系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過(guò)可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來(lái),就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以FPGA可以完成所需要的邏輯功能。 FPGA一般來(lái)說(shuō)比ASIC(專用集成芯片)的速度要慢,無(wú)法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來(lái)改正程序中的錯(cuò)誤和更便宜的造價(jià)。廠商也可能會(huì)提供便宜的但是編輯能力差的FPGA。因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開(kāi)發(fā)
8、是在普通的FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類似于ASIC的芯片上。另外一種方法是用CPLD(復(fù)雜可編程邏輯器件備)。產(chǎn)品比較早在1980年代中期,F(xiàn)PGA已經(jīng)在PLD設(shè)備中扎根。CPLD和FPGA包括了一些相對(duì)大數(shù)量的可編輯邏輯單元。CPLD邏輯門的密度在幾千到幾萬(wàn)個(gè)邏輯單元之間,而FPGA通常是在幾萬(wàn)到幾百萬(wàn)。CPLD和FPGA的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。CPLD是一個(gè)有點(diǎn)限制性的結(jié)構(gòu)。這個(gè)結(jié)構(gòu)由一個(gè)或者多個(gè)可編輯的結(jié)果之和的邏輯組列和一些相對(duì)少量的鎖定的寄存器組成。這樣的結(jié)果是缺乏編輯靈活性,但是卻有可以預(yù)計(jì)的延遲時(shí)間和邏輯單元對(duì)連接單元高比率的優(yōu)點(diǎn)。而FPGA卻是有很多的連接單元,
9、這樣雖然讓它可以更加靈活的編輯,但是結(jié)構(gòu)卻復(fù)雜的多。CPLD和FPGA另外一個(gè)區(qū)別是大多數(shù)的FPGA含有高層次的內(nèi)置模塊(比如加法器和乘法器)和內(nèi)置的記憶體。因此一個(gè)有關(guān)的重要區(qū)別是很多新的FPGA支持完全的或者部分的系統(tǒng)內(nèi)重新配置。允許他們的設(shè)計(jì)隨著系統(tǒng)升級(jí)或者動(dòng)態(tài)重新配置而改變。一些FPGA可以讓設(shè)備的一部分重新編輯而其他部分繼續(xù)正常運(yùn)行。CPLD和FPGA還有一個(gè)區(qū)別:CPLD下電之后,原有燒入的邏輯結(jié)構(gòu)不會(huì)消失;而FPGA下電之后,再次上電時(shí),需要重新加載FLASH里面的邏輯代碼,需要一定的加載時(shí)間。發(fā)展歷程每一個(gè)后看來(lái)很成功的新事物,從誕生到發(fā)展壯大都不可避免地經(jīng)歷過(guò)艱難的歷程,并可
10、能成為被研究的案例,F(xiàn)PGA也不例外。1985年,當(dāng)全球首款FPGA產(chǎn)品XC2064誕生時(shí),注定要使用大量芯片的PC機(jī)剛剛走出硅谷的實(shí)驗(yàn)室進(jìn)入商業(yè)市場(chǎng),因特網(wǎng)只是科學(xué)家和政府機(jī)構(gòu)通信的神秘鏈路,無(wú)線電話笨重得像磚頭,日后大紅大紫的BillGates正在為生計(jì)而奮斗,創(chuàng)新的可編程產(chǎn)品似乎并沒(méi)有什么用武之地。事實(shí)也的確如此。最初,F(xiàn)PGA只是用于膠合邏輯(GlueLogic),從膠合邏輯到算法邏輯再到數(shù)字信號(hào)處理、高速串行收發(fā)器和嵌入式處理器,F(xiàn)PGA真正地從配角變成了主角。在以閃電般速度發(fā)展的半導(dǎo)體產(chǎn)業(yè)里,22年足夠改變一切?!霸谖磥?lái)十年內(nèi)每一個(gè)電子設(shè)備都將有一個(gè)可編程邏輯芯片”的理想正成為現(xiàn)實(shí)
11、。1985年,Xilinx公司推出的全球第一款FPGA產(chǎn)品XC2064怎么看都像是一只“丑小鴨”采用2m工藝,包含64個(gè)邏輯模塊和85000個(gè)晶體管,門數(shù)量不超過(guò)1000個(gè)。22年后的2007年,F(xiàn)PGA業(yè)界雙雄Xilinx和Altera公司紛紛推出了采用最新65nm工藝的FPGA產(chǎn)品,其門數(shù)量已經(jīng)達(dá)到千萬(wàn)級(jí),晶體管個(gè)數(shù)更是超過(guò)10億個(gè)。一路走來(lái),F(xiàn)PGA在不斷地緊跟并推動(dòng)著半導(dǎo)體工藝的進(jìn)步2001年采用150nm工藝、2002年采用130nm工藝,2003年采用90nm工藝,2006年采用65nm工藝。在上世紀(jì)80年代中期,可編程器件從任何意義上來(lái)講都不是當(dāng)時(shí)的主流,雖然其并不是一個(gè)新的概念
12、。可編程邏輯陣列(PLA)在1970年左右就出現(xiàn)了,但是一直被認(rèn)為速度慢,難以使用。1980年之后,可配置可編程邏輯陣列(PAL)開(kāi)始出現(xiàn),可以使用原始的軟件工具提供有限的觸發(fā)器和查找表實(shí)現(xiàn)能力。PAL被視為小規(guī)模/中等規(guī)模集成膠合邏輯的替代選擇被逐步接受,但是當(dāng)時(shí)可編程能力對(duì)于大多數(shù)人來(lái)說(shuō)仍然是陌生和具有風(fēng)險(xiǎn)的。20世紀(jì)80年代在“megaPAL”方面的嘗試使這一情況更加嚴(yán)重,因?yàn)椤癿egaPAL”在功耗和工藝擴(kuò)展方面有嚴(yán)重的缺陷,限制了它的廣泛應(yīng)用。然而,Xilinx公司創(chuàng)始人之一FPGA的發(fā)明者RossFreeman認(rèn)為,對(duì)于許多應(yīng)用來(lái)說(shuō),如果實(shí)施得當(dāng)?shù)脑?,靈活性和可定制能力都是具有吸引
13、力的特性。也許最初只能用于原型設(shè)計(jì),但是未來(lái)可能代替更廣泛意義上的定制芯片。事實(shí)上,正如Xilinx公司亞太區(qū)營(yíng)銷董事鄭馨南所言,隨著技術(shù)的不斷發(fā)展,F(xiàn)PGA由配角到主角,很多系統(tǒng)設(shè)計(jì)都是以FPGA為中心來(lái)設(shè)計(jì)的。FPGA走過(guò)了從初期開(kāi)發(fā)應(yīng)用到限量生產(chǎn)應(yīng)用再到大批量生產(chǎn)應(yīng)用的發(fā)展歷程。從技術(shù)上來(lái)說(shuō),最初只是邏輯器件,現(xiàn)在強(qiáng)調(diào)平臺(tái)概念,加入數(shù)字信號(hào)處理、嵌入式處理、高速串行和其他高端技術(shù),從而被應(yīng)用到更多的領(lǐng)域?!?0年代以來(lái)的20年間,PLD產(chǎn)品的終極目標(biāo)一直瞄準(zhǔn)速度、成本和密度三個(gè)指標(biāo),即構(gòu)建容量更大、速度更快和價(jià)格更低的FPGA,讓客戶能直接享用?!盇ctel司總裁兼首席執(zhí)行官JohnEa
14、st如此總結(jié)可編程邏輯產(chǎn)業(yè)的發(fā)展脈絡(luò)。當(dāng)1991年Xilinx公司推出其第三代FPGA產(chǎn)品XC4000系列時(shí),人們開(kāi)始認(rèn)真考慮可編程技術(shù)了。XC4003包含44萬(wàn)個(gè)晶體管,采用0.7m工藝,F(xiàn)PGA開(kāi)始被制造商認(rèn)為是可以用于制造工藝開(kāi)發(fā)測(cè)試過(guò)程的良好工具。事實(shí)證明,F(xiàn)PGA可為制造工業(yè)提供優(yōu)異的測(cè)試能力,F(xiàn)PGA開(kāi)始用來(lái)代替原先存儲(chǔ)器所扮演的用來(lái)驗(yàn)證每一代新工藝的角色。也許從那時(shí)起,向最新制程半導(dǎo)體工藝的轉(zhuǎn)變就已經(jīng)不可阻擋了。最新工藝的采用為FPGA產(chǎn)業(yè)的發(fā)展提供了機(jī)遇。Actel公司相信,F(xiàn)lash將繼續(xù)成為FPGA產(chǎn)業(yè)中重要的一個(gè)增長(zhǎng)領(lǐng)域。Flash技術(shù)有其獨(dú)特之處,能將非易失性和可重編程
15、性集于單芯片解決方案中,因此能提供高成本效益,而且處于有利的位置以搶占龐大的市場(chǎng)份額。Actel以Flash技術(shù)為基礎(chǔ)的低功耗IGLOO系列、低成本的ProASIC3系列和混合信號(hào)Fusion FPGA將因具備Flash的固有優(yōu)勢(shì)而繼續(xù)引起全球廣泛的興趣和注意。Altera公司估計(jì)可編程邏輯器件市場(chǎng)在2006年的規(guī)模大概為37億美元,Xilinx公司的估計(jì)更為樂(lè)觀一些,為50億美元。雖然兩家公司合計(jì)占據(jù)該市場(chǎng)90%的市場(chǎng)份額,但是作為業(yè)界老大的Xilinx公司在2006年的營(yíng)收不過(guò)18.4億美元,Altera公司則為12.9億美元。PLD市場(chǎng)在2000年達(dá)到41億美元,其后兩年出現(xiàn)了下滑,20
16、02年大約為23億美元。雖然從2002年到2006年,PLD市場(chǎng)每年都在增長(zhǎng),復(fù)合平均增長(zhǎng)率接近13%,但是PLD終究是一個(gè)規(guī)模較小的市場(chǎng)。而Xilinx公司也敏銳地意識(shí)到,F(xiàn)PGA產(chǎn)業(yè)在經(jīng)歷了過(guò)去幾年的快速成長(zhǎng)后將放慢前進(jìn)的腳步,那么,未來(lái)FPGA產(chǎn)業(yè)的出路在哪里?Altera公司總裁兼首席執(zhí)行官John Daane認(rèn)為,F(xiàn)PGA及PLD產(chǎn)業(yè)發(fā)展的最大機(jī)遇是替代ASIC和專用標(biāo)準(zhǔn)產(chǎn)品(ASSP),主要由ASIC和ASSP構(gòu)成的數(shù)字邏輯市場(chǎng)規(guī)模大約為350億美元。由于用戶可以迅速對(duì)PLD進(jìn)行編程,按照需求實(shí)現(xiàn)特殊功能,與ASIC和ASSP相比,PLD在靈活性、開(kāi)發(fā)成本以及產(chǎn)品及時(shí)面市方面更具優(yōu)
17、勢(shì)。然而,PLD通常比這些替代方案有更高的成本結(jié)構(gòu)。因此,PLD更適合對(duì)產(chǎn)品及時(shí)面市有較大需求的應(yīng)用,以及產(chǎn)量較低的最終應(yīng)用。PLD技術(shù)和半導(dǎo)體制造技術(shù)的進(jìn)步,從總體上縮小了PLD和固定芯片方案的相對(duì)成本差,在以前由ASIC和ASSP占據(jù)的市場(chǎng)上,Altera公司已經(jīng)成功地提高了PLD的銷售份額,并且今后將繼續(xù)這一趨勢(shì)?!癋PGA和PLD供應(yīng)商的關(guān)鍵目標(biāo)不是簡(jiǎn)單地增加更多的原型客戶,而是向大批量應(yīng)用最終市場(chǎng)和客戶滲透。”John Daane為FPGA產(chǎn)業(yè)指明了方向。理念成熟Xilinx公司認(rèn)為,ASIC SoC設(shè)計(jì)周期平均是14個(gè)月到24個(gè)月,用FPGA進(jìn)行開(kāi)發(fā)時(shí)間可以平均降低55%。而產(chǎn)品晚
18、上市六個(gè)月5年內(nèi)將少33%的利潤(rùn),每晚四周等于損失14%的市場(chǎng)份額。因此,鄭馨南雄心勃勃地預(yù)言:“FPGA應(yīng)用將不斷加快,從面向50億美元的市場(chǎng)擴(kuò)展到面向410億美元的市場(chǎng)。”其中,ASIC和ASSP市場(chǎng)各150億美元,嵌入式處理和高性能DSP市場(chǎng)各30億美元。雖然沒(méi)有像蒸汽機(jī)車發(fā)明之初備受嘲笑被譏諷為“怪物”,但是FPGA在誕生之初受到懷疑是毫無(wú)疑問(wèn)的。當(dāng)時(shí),晶體管邏輯門資源極為珍貴,每個(gè)人都希望用到的晶體管越少越好。不過(guò),Ross Freeman挑戰(zhàn)了這一觀念,他大膽預(yù)言:“在未來(lái),晶體管將變得極為豐富從而可以免費(fèi)使用?!比缃瘢@一預(yù)言成為現(xiàn)實(shí)?!癋PGA非常適用于原型設(shè)計(jì),但對(duì)于批量DS
19、P系統(tǒng)應(yīng)用來(lái)說(shuō),成本太高,功耗太大?!边@是業(yè)界此前的普遍觀點(diǎn),很長(zhǎng)時(shí)間以來(lái)也為FPGA進(jìn)入DSP領(lǐng)域設(shè)置了觀念上的障礙。而如今,隨著Xilinx公司和Altera公司相關(guān)產(chǎn)品的推出,DSP領(lǐng)域已經(jīng)不再是FPGA的禁區(qū),相反卻成了FPGA未來(lái)的希望所在。FPGA對(duì)半導(dǎo)體產(chǎn)業(yè)最大的貢獻(xiàn)莫過(guò)于創(chuàng)立了無(wú)生產(chǎn)線(Fabless)模式。如今采用這種模式司空見(jiàn)慣,但是在20多年前,制造廠被認(rèn)為是半導(dǎo)體芯片企業(yè)必須認(rèn)真考慮的主要競(jìng)爭(zhēng)優(yōu)勢(shì)。然而,基于過(guò)去和關(guān)系和直接、清晰的業(yè)務(wù)模式,Xilinx創(chuàng)始人之一Bernie Vonderschmitt成功地使日本精工公司(Seiko)確信利用該公司的制造設(shè)施來(lái)生產(chǎn)Xi
20、linx公司設(shè)計(jì)的芯片對(duì)雙方都是有利的,于是,無(wú)生產(chǎn)線模式誕生了。未來(lái),相信FPGA還將在更多方面改變半導(dǎo)體產(chǎn)業(yè)!CPLD與FPGA的關(guān)系早在1980年代中期,F(xiàn)PGA已經(jīng)在PLD設(shè)備中扎根。CPLD和FPGA包括了一些相對(duì)大數(shù)量的可以編輯邏輯單元。CPLD邏輯門的密度在幾千到幾萬(wàn)個(gè)邏輯單元之間,而FPGA通常是在幾萬(wàn)到幾百萬(wàn)。 CPLD和FPGA的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。CPLD是一個(gè)有點(diǎn)限制性的結(jié)構(gòu)。這個(gè)結(jié)構(gòu)由一個(gè)或者多個(gè)可編輯的結(jié)果之和的邏輯組列和一些相對(duì)少量的鎖定的寄存器。這樣的結(jié)果是缺乏編輯靈活性,但是卻有可以預(yù)計(jì)的延遲時(shí)間和邏輯單元對(duì)連接單元高比率的優(yōu)點(diǎn)。而FPGA卻是有很多的連
21、接單元,這樣雖然讓它可以更加靈活的編輯,但是結(jié)構(gòu)卻復(fù)雜的多。 CPLD和FPGA另外一個(gè)區(qū)別是大多數(shù)的FPGA含有高層次的內(nèi)置模塊(比如加法器和乘法器)和內(nèi)置的記憶體。一個(gè)因此有關(guān)的重要區(qū)別是很多新的FPGA支持完全的或者部分的系統(tǒng)內(nèi)重新配置。允許他們的設(shè)計(jì)隨著系統(tǒng)升級(jí)或者動(dòng)態(tài)重新配置而改變。一些FPGA可以讓設(shè)備的一部分重新編輯而其他部分繼續(xù)正常運(yùn)行。FPGA工作原理FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部
22、連線(Interconnect)三個(gè)部分。FPGA的基本特點(diǎn)· 1)采用FPGA設(shè)計(jì)ASIC電路(特定用途集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。3)FPGA內(nèi)部有豐富的觸發(fā)器和IO引腳。4)FPGA是ASIC電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。5) FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。可以說(shuō),F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。FPGA是由存放在片內(nèi)RAM中的程序來(lái)設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶可以根據(jù)
23、不同的配置模式,采用不同的編程方式。加電時(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ú)須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。FPGA配置模式· FPGA有多種配置模式:并行主模式為一片F(xiàn)PGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片F(xiàn)PGA;串行模式可以采用串行
24、PROM編程FPGA;外設(shè)模式可以將FPGA作為微處理器的外設(shè),由微處理器對(duì)其編程。如何實(shí)現(xiàn)快速的時(shí)序收斂、降低功耗和成本、優(yōu)化時(shí)鐘管理并降低FPGA與PCB并行設(shè)計(jì)的復(fù)雜性等問(wèn)題,一直是采用FPGA的系統(tǒng)設(shè)計(jì)工程師需要考慮的關(guān)鍵問(wèn)題。如今,隨著FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向發(fā)展,系統(tǒng)設(shè)計(jì)工程師在從這些優(yōu)異性能獲益的同時(shí),不得不面對(duì)由于FPGA前所未有的性能和能力水平而帶來(lái)的新的設(shè)計(jì)挑戰(zhàn)。例如,領(lǐng)先FPGA廠商Xilinx最近推出的Virtex-5系列采用65nm工藝,可提供高達(dá)33萬(wàn)個(gè)邏輯單元、1,200個(gè)I/O和大量硬IP塊。超大容量和密度使復(fù)雜的布線變得更加不
25、可預(yù)測(cè),由此帶來(lái)更嚴(yán)重的時(shí)序收斂問(wèn)題。此外,針對(duì)不同應(yīng)用而集成的更多數(shù)量的邏輯功能、DSP、嵌入式處理和接口模塊,也讓時(shí)鐘管理和電壓分配問(wèn)題變得更加困難。幸運(yùn)地是,F(xiàn)PGA廠商、EDA工具供應(yīng)商正在通力合作解決65nm FPGA獨(dú)特的設(shè)計(jì)挑戰(zhàn)。不久以前,Synplicity與Xilinx宣布成立超大容量時(shí)序收斂聯(lián)合工作小組,旨在最大程度地幫助系統(tǒng)設(shè)計(jì)工程師以更快、更高效的方式應(yīng)用65nm FPGA器件。設(shè)計(jì)軟件供應(yīng)商Magma推出的綜合工具Blast FPGA能幫助建立優(yōu)化的布局,加快時(shí)序的收斂。最近FPGA的配置方式已經(jīng)多元化!FPGA的應(yīng)用· 微處理器是為通用而設(shè)計(jì)的,必須按照時(shí)
26、鐘的節(jié)拍,逐條取指、譯指、執(zhí)行,大多用于低速、實(shí)時(shí)性要求不高的場(chǎng)合,例如石油探測(cè);FPGA 應(yīng)用場(chǎng)合相當(dāng)多,特別是在高速的、實(shí)時(shí)性強(qiáng)并對(duì)時(shí)間要求相當(dāng)苛刻的場(chǎng)合,有很強(qiáng)的數(shù)據(jù)處理能力,例如無(wú)線通信、雷達(dá)探測(cè)等;是FPGA的一些典型應(yīng)用:典型應(yīng)用一:接口邏輯控制提供前所未有的靈活性1、PCI、PCI Express、PS/2、USB等接口控制器2、SDRAM、DDR、SDRAM、QDR、SRAM、NAND Flash、NOR Flash等接口控制器3、電平轉(zhuǎn)換,LVDS、TTL、COMS、SSTL等典型應(yīng)用二:高速的數(shù)字信號(hào)處理提供前所未有的計(jì)算能力1、無(wú)線通信領(lǐng)域,如軟件無(wú)線電(SDR);2、視
27、頻圖像處理領(lǐng)域,如高清晰數(shù)字電視(HDTV);3、軍事和航空航天領(lǐng)域,如雷達(dá)聲納、安全通信。其他應(yīng)用領(lǐng)域1、汽車,如網(wǎng)關(guān)控制器、車用PC、遠(yuǎn)程信息處理系統(tǒng)等;2、消費(fèi)產(chǎn)品,如顯示器/投影儀、數(shù)字電視和機(jī)頂盒、家庭網(wǎng)絡(luò)等;3、醫(yī)療,如電療、血液分析儀、醫(yī)療檢測(cè)設(shè)備等4、通信設(shè)備 ,如蜂窩基礎(chǔ)設(shè)施、寬帶無(wú)線通信、軟件無(wú)線電等5、測(cè)試與測(cè)量,如通信測(cè)試與監(jiān)測(cè)、半導(dǎo)體、自動(dòng)測(cè)試設(shè)備、通用儀表等。2.FPGA時(shí)序設(shè)計(jì)與時(shí)序分析FPGA設(shè)計(jì)一個(gè)很重要的設(shè)計(jì)是時(shí)序設(shè)計(jì),而時(shí)序設(shè)計(jì)的實(shí)質(zhì)就是滿足每一個(gè)觸發(fā)器的建立(Setup)/保持(Hold)時(shí)間的要求。 建立時(shí)間(Set
28、up Time):是指在觸發(fā)器的時(shí)鐘信號(hào)上升沿到來(lái)以前,數(shù)據(jù)穩(wěn)定不變的時(shí)間,如果建立時(shí)間不夠,數(shù)據(jù)將不能在這個(gè)時(shí)鐘上升沿被打入觸發(fā)器; 保持時(shí)間(Hold Time):是指在觸發(fā)器的時(shí)鐘信號(hào)上升沿到來(lái)以后,數(shù)據(jù)穩(wěn)定不變的時(shí)間, 如果保持時(shí)間不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器。 FPGA設(shè)計(jì)分為異步電路設(shè)計(jì)和同步電路設(shè)計(jì),然而很多異步電路設(shè)計(jì)都可以轉(zhuǎn)化為同步電路設(shè)計(jì),在設(shè)計(jì)時(shí)盡量采用同步電路進(jìn)行設(shè)計(jì)。對(duì)于同步電路可以轉(zhuǎn)化的邏輯必須轉(zhuǎn)化,不能轉(zhuǎn)化的邏輯,應(yīng)將異步的部分減到最小,而其前
29、后級(jí)仍然應(yīng)該采用同步設(shè)計(jì)。 為了讓同步電路可靠地運(yùn)行,就要對(duì)時(shí)鐘偏差進(jìn)行控制,以使時(shí)鐘偏差減小到可用的范圍。影響時(shí)鐘偏差的主要有以下幾個(gè)因素:o 用于連接時(shí)鐘樹(shù)的連線o 鐘樹(shù)的拓?fù)浣Y(jié)構(gòu)o 時(shí)鐘的驅(qū)動(dòng)o 時(shí)鐘線的負(fù)載o 時(shí)鐘的上升及下降時(shí)間 在通常的FPGA設(shè)計(jì)中對(duì)時(shí)鐘偏差的控制主要有以下幾種方法:o 控 制時(shí)鐘信號(hào)盡量走可編程器件的的全局時(shí)鐘網(wǎng)絡(luò)。在可編程器件中一般都有專門的時(shí)鐘驅(qū)動(dòng)器及全局時(shí)鐘網(wǎng)絡(luò),不同種類、型號(hào)的可編程器件,它們中的全局時(shí)鐘網(wǎng) 絡(luò)數(shù)量不同,因此要根據(jù)不同的設(shè)計(jì)需要選擇含有合適數(shù)量全局時(shí)鐘網(wǎng)絡(luò)的可編程器件。
30、一般來(lái)說(shuō),走全局時(shí)鐘網(wǎng)絡(luò)的時(shí)鐘信號(hào)到各使用端的延時(shí)小,時(shí)鐘偏差很 小,基本可以忽略不計(jì)。o 若設(shè)計(jì)中時(shí)鐘信號(hào)數(shù)量很多,無(wú)法讓所有的信號(hào)都走全局時(shí)鐘網(wǎng)絡(luò),那么可以通過(guò)在設(shè)計(jì)中加約束的方法,控制不能走全局時(shí)鐘網(wǎng)絡(luò)的時(shí)鐘信號(hào)的時(shí)鐘偏差。o 異步接口時(shí)序裕度要足夠大。局部同步電路之間接口都可以看成是異步接口,比較典型的是設(shè)計(jì)中的高低頻電路接口、I/O接口,那么接口電路中后一級(jí)觸發(fā)器的建立-保持時(shí)間要滿足要求,時(shí)序裕度要足夠大。o 在系統(tǒng)時(shí)鐘大于30MHz時(shí),設(shè)計(jì)難度有所加大,建議采用流水線等設(shè)計(jì)方法。采用流水線處理方式可以達(dá)到提高時(shí)序電路的速度,但使用的器件資源也成倍增加。o 要保證電路設(shè)計(jì)的理論最高
31、工作頻率大于電路的實(shí)際工作頻率。A 時(shí)序約束的概念和基本策略時(shí)序約束主要包括周期約束(FFS到FFS,即觸發(fā)器到觸發(fā)器)和偏移約束(IPAD到FFS、FFS到OPAD)以及靜態(tài)路徑約束(IPAD到 OPAD)等3種。通過(guò)附加約束條件可以使綜合布線工具調(diào)整映射和布局布線過(guò)程,使設(shè)計(jì)達(dá)到時(shí)序要求。例如用OFFSET_IN_BEFORE約束可以告 訴綜合布線工具輸入信號(hào)在時(shí)鐘之前什么時(shí)候準(zhǔn)備好,綜合布線工具就可以根據(jù)這個(gè)約束調(diào)整與IPAD相連的Logic Circuitry的綜合實(shí)現(xiàn)過(guò)程,使結(jié)果滿足FFS的建立時(shí)間要求。附加時(shí)序約束的一般策略是先附加全局約束,然后對(duì)快速和慢速例外路徑附加專門約束。附
32、加全局約束時(shí),首先定義設(shè)計(jì)的所有時(shí)鐘,對(duì)各時(shí)鐘域內(nèi)的同步元件進(jìn)行 分組,對(duì)分組附加周期約束,然后對(duì)FPGA/CPLD輸入輸出PAD附加偏移約束、對(duì)全組合邏輯的PAD TO PAD路徑附加約束。附加專門約束時(shí),首先約束分組之間的路徑,然后約束快、慢速例外路徑和多周期路徑,以及其他特殊路徑。B 附加約束的基本作用提高設(shè)計(jì)的工作頻率對(duì)很多數(shù)字電路設(shè)計(jì)來(lái)說(shuō),提高工作頻率非常重要,因?yàn)楦吖ぷ黝l率意味著高處理能力。通過(guò)附加約束可以控制邏輯的綜合、映射、布局和布線,以減小邏輯和布線延時(shí),從而提高工作頻率。 獲得正確的時(shí)序分析報(bào)告幾乎所有的FPGA設(shè)計(jì)平臺(tái)都包含靜態(tài)時(shí)序分析工具,利用這類工具可以獲得映射或布局
33、布線后的時(shí)序分析報(bào)告,從而對(duì)設(shè)計(jì)的性能做出評(píng)估。靜態(tài)時(shí)序分析工具以約束作為判斷時(shí)序是否滿足設(shè)計(jì)要求的標(biāo)準(zhǔn),因此要求設(shè)計(jì)者正確輸入約束,以便靜態(tài)時(shí)序分析工具輸出正確的時(shí)序分析報(bào)告。 1. 指定FPGA/CPLD引腳位置與電氣標(biāo)準(zhǔn)FPGA/CPLD的可編程特性使電路板設(shè)計(jì)加工和FPGA/CPLD設(shè)計(jì)可以同時(shí)進(jìn)行,而不必等FPGA/CPLD引腳位置完全確定,從而節(jié)省了系統(tǒng)開(kāi)發(fā)時(shí)間。這樣,電路板加工完成后,設(shè)計(jì)者要根據(jù)電路板的走線對(duì)FPGA/CPLD加上引腳位置約束,使FPGA/CPLD與電路板正確連接。另外通過(guò)約束還可以指定IO引腳所支持的接口標(biāo)準(zhǔn)和其他電氣特性。為了滿足日新月異的通信發(fā)展,Xili
34、nx新型FPGA/CPLD可以通過(guò)IO引腳約束設(shè)置支持諸如 AGP、BLVDS、CTT、GTL、GTLP、HSTL、LDT、LVCMOS、LVDCI、LVDS、LVPECL、LVDSEXT、LVTTL、 PCI、PCIX、SSTL、ULVDS等豐富的IO接口標(biāo)準(zhǔn)。另外通過(guò)區(qū)域約束還能在FPGA上規(guī)劃各個(gè)模塊的實(shí)現(xiàn)區(qū)域,通過(guò)物理布局布線約束,完成模 塊化設(shè)計(jì)等。 C 周期(PERIOD)的含義周期的含義是時(shí)序中最簡(jiǎn)單也是最重要的含義,其它很多時(shí)序概念會(huì)因?yàn)檐浖滩煌杂胁町?,而周期的概念確是最通用的,周期的概念是FPGA/ASIC時(shí)序定義的基礎(chǔ)概念。后面要講到的其它時(shí)序約束都是建立在周期約束的基
35、礎(chǔ)上的,很多其它時(shí)序公式,可以用周期公式推導(dǎo)。周期約束是一個(gè)基本時(shí)序和綜合約束,它附加在時(shí)鐘網(wǎng)線上,時(shí)序分析工具根據(jù)PERIOD約束檢查時(shí)鐘域內(nèi)所有同步元件的時(shí)序是否滿足要求。PERIOD約束會(huì)自動(dòng)處理寄存器時(shí)鐘端的反相問(wèn)題, 如果相鄰?fù)皆r(shí)鐘相位相反,那么它們之間的延遲將被默認(rèn)限制為PERIOD約束值的一半。如下圖所示,圖1 周期的定義 時(shí)鐘的最小周期為:TCLK = TCKO +TLOGIC +TNET +TSETUP TCLK_SKEWTCLK_SKEW =TCD2 TCD1其中TCKO為時(shí)鐘輸出時(shí)間,TLOGIC為同步元件之間的組合邏輯延遲,TN
36、ET為網(wǎng)線延遲,TSETUP為同步元件的建立時(shí)間,TCLK_SKEW為時(shí)鐘信號(hào)TCD2和TCD1延遲的差別。D 數(shù)據(jù)和時(shí)鐘之間的約束為了確保芯片數(shù)據(jù)采樣可靠和下級(jí)芯片之間正確地交換數(shù)據(jù),需要約束外部時(shí)鐘和數(shù)據(jù)輸入輸出引腳之間的時(shí)序關(guān)系(或者內(nèi)部時(shí)鐘和外部輸入/輸出數(shù)據(jù)之間的關(guān)系,這僅僅是從采用了不同的參照系罷了)。約束的內(nèi)容為告訴綜合器、布線器輸入數(shù)據(jù)到達(dá)的時(shí)刻,或者輸出數(shù)據(jù)穩(wěn)定的時(shí)刻,從而保證與下一級(jí)電路的時(shí)序關(guān)系。這種時(shí)序約束在Xilinx中用Setup to Clock(edge),Clock(edge) to hold等表示。在Altera里常用tsu (Input Setup Tim
37、es)、th (Input Hold Times)、tco (Clock to Out Delays)來(lái)表示。很多其它時(shí)序工具直接用setup和hold表示。其實(shí)他們所要描述的是同一個(gè)問(wèn)題,僅僅是時(shí)間節(jié)點(diǎn)的定義上略有不同。下面依次介 紹。E 關(guān)于輸入到達(dá)時(shí)間Xilinx的"輸入到達(dá)時(shí)間的計(jì)算"時(shí)序描述如下圖所示:圖2 輸入到達(dá)時(shí)間示意圖 定義的含義是輸入數(shù)據(jù)在有效時(shí)鐘沿之后的TARRIVAL時(shí)刻到達(dá)。則,TARRIVAL=TCKO+TOUTPUT+TLOGIC 公式1 根據(jù)上面介紹的周期(Period)
38、公式,我們可以得到:Tcko+Toutput+Tlogic+Tinput+Tsetup-Tclk_skew=Tclk; 公式2 將公式1代入公式2: Tarrival+Tinput+Tsetup-Tclk_skew=Tclk, 而Tclk_skew滿足時(shí)序關(guān)系后為負(fù),所以TARRIVAL +TINPUT+TSETUP <TCLK 公式3 這就是Tarrival應(yīng)該滿足的時(shí)序關(guān)系。其中TINPUT為輸入端的組合邏輯、網(wǎng)線和PAD的延遲之和,TSETUP為輸入同步元件的建立時(shí)間。F 數(shù)
39、據(jù)延時(shí)和數(shù)據(jù)到達(dá)時(shí)間的關(guān)系圖3 數(shù)據(jù)延時(shí)和數(shù)據(jù)到達(dá)時(shí)間示意圖TDELAY為要求的芯片內(nèi)部輸入延遲,其最大值TDELAY_MAX與輸入數(shù)據(jù)到達(dá)時(shí)間TARRIVAL的關(guān)系如上圖所示。也就是說(shuō): TDELAY_MAX+TARRIVAL=TPERIOD 公式4 所以:TDELAY<TDELAY_MAX=TPERIODTARRIVALG 要求輸出的穩(wěn)定時(shí)間從下一級(jí)輸入端的延遲可以計(jì)算出當(dāng)前設(shè)計(jì)輸出的數(shù)據(jù)必須在何時(shí)穩(wěn)定下來(lái),根據(jù)這個(gè)數(shù)據(jù)對(duì)設(shè)計(jì)輸出端的邏輯布線進(jìn)行約束,以滿足下一級(jí)的建立時(shí)間要求,保證下一級(jí)采樣的數(shù)據(jù)是穩(wěn)定的。計(jì)算要求的輸出穩(wěn)定時(shí)間如下圖所示:圖4
40、要求的輸出穩(wěn)定時(shí)間示意圖公式的推導(dǎo)如下: 定義:TSTABLE = TLOGIC +TINPUT +TSETUP 從前面帖子介紹的周期(Period)公式,可以得到(其中TCLK_SKEWTCLK1TCLK2):TCLKTCKOTOUTPUT+TLOGIC+TINPUT+TSETUP+TCLK_SKEW將TSTABLE的定義代入到周期公式,可以得到:TCLK=TCKO+TOUTPUT+TSTABLE+TCLK_SKEW 所以:TCKO +TOUTPUT+TSTABLE<TCLK 這個(gè)公式就是TSTABLE必須要滿足的基本時(shí)序關(guān)系,即本級(jí)的輸出應(yīng)該保持怎么樣的穩(wěn)定狀態(tài),才能保證下級(jí)芯片的采
41、樣穩(wěn)定。有時(shí)我們也稱這個(gè)約束關(guān)系是 輸出數(shù)據(jù)的保持時(shí)間的時(shí)序約束關(guān)系。只要滿足上述關(guān)系,當(dāng)前芯片輸出端的數(shù)據(jù)比時(shí)鐘上升沿提早TSTABLE 時(shí)間穩(wěn)定下來(lái),下一級(jí)就可以正確地采樣數(shù)據(jù)。其中TOUTPUT為設(shè)計(jì)中連接同步元件輸出端的組合邏輯、網(wǎng)線和PAD的延遲之和,TCKO為同步元件時(shí)鐘輸出時(shí)間。H 實(shí)施時(shí)序約束的方法和命令 實(shí)施上述約束的基本方法是,根據(jù)已知時(shí)序信息,推算需要約束的時(shí)間值,實(shí)施約束。具體地說(shuō)是這樣的,首先對(duì)于一般設(shè)計(jì),首先掌握的是TCLK,這個(gè)對(duì)于設(shè)計(jì)者來(lái)說(shuō)是個(gè)已知量。前面介紹公式和圖中的TCKO和TSETUP(注:有的工具軟件對(duì)TCKO和TS
42、ETUP的定義與前面圖形不同,還包含了到達(dá)同步器件的一段logic的時(shí)延)是器件內(nèi)部固有的一個(gè)時(shí)間量,一般我們選取典型值,對(duì)于FPGA,這個(gè)量值比較小,一般不大于12ns。比較難以確定的是TINPUT和TOUTPUT兩個(gè)時(shí)間量。約束輸入時(shí)間偏移,需要知道TINPUT,TINPUT為輸入端的組合邏輯、網(wǎng)線和PAD的延遲之和,PAD的延時(shí)也根據(jù)器件型號(hào)也有典型值可選,但是到 達(dá)輸入端的組合邏輯電路和網(wǎng)線的延時(shí)就比較難以確定了,只能通過(guò)靜態(tài)時(shí)序分析工具分析,或者通過(guò)底層布局布線工具量取,有很大的經(jīng)驗(yàn)和試探的成分在里面。 約束輸出時(shí)間偏移,需要知道TOUTPUT,TOUTPUT為設(shè)計(jì)中連接同步元件輸出
43、端的組合邏輯、網(wǎng)線和PAD的延遲之和,仍然是到達(dá)輸出端的組合邏輯 電路和網(wǎng)線的延時(shí)就比較難以確定,需要通過(guò)靜態(tài)時(shí)序分析工具分析,或者通過(guò)底層布局布線工具量取,有很大的經(jīng)驗(yàn)和試探的成分在里面。約束的具體命令根據(jù)約束工具不同而異,首先說(shuō)使用Xilinx器件的情況下,實(shí)施上述約束的命令和方法。Xilinx把上述約束統(tǒng)稱為:OFFSET約束 (偏移約束),一共有4個(gè)相關(guān)約束屬性:OFFSET_IN_BEFORE、OFFSET_IN_AFTER、OFFSET_OUT_BEFORE和 OFFSET_OUT_AFTER。其中前兩個(gè)屬性叫做輸入偏移(OFFSET_IN)約束,基本功能相似,僅僅是約束取的參考對(duì)
44、象不同而已。后兩個(gè)屬性 叫做輸出偏移(OFFSET_OUT)約束,基本功能相似,也是約束取的參考對(duì)象不同而已。為了便于理解,舉例說(shuō)明。輸入偏移約束:時(shí)鐘周期為20ns,前級(jí)寄存器的TCKO選擇1ns,前級(jí)輸出邏輯延時(shí)TOUTPUT為3ns,中間邏輯TLOGIC的延時(shí)為10ns, 那么TARRIVAL=14ns,于是可以在數(shù)據(jù)輸入引腳附加NET DATA_IN OFFET=IN 14ns AFTER CLK約束,也可以使用OFFSET_IN_BEFORE對(duì)芯片內(nèi)部的輸入邏輯進(jìn)行約束,其語(yǔ)法如下:NET DATA_IN OFFET=IN TDELAY BEFORE CLK 其中TDELAY為要求的
45、芯片內(nèi)部輸入延遲,其最大值與輸入數(shù)據(jù)到達(dá)時(shí)間TARRIVAL的關(guān)系:TDELAY_MAX + TARRIVAL = TPERIOD,所以TDELAY < TPERIOD - TARRIVAL = 20 - 14 =6 ns。輸出偏移約束:設(shè)時(shí)鐘周期為20ns,后級(jí)輸入邏輯延時(shí)TINPUT為4ns、建立時(shí)間TSETUP為1ns,中間邏輯TLOGIC的延時(shí)為10ns,那 么TSTABLE=15ns,于是可以在數(shù)據(jù)輸入引腳附加NET DATA_OUT OFFET=OUT 15ns BEFORE CLK約束,也可以直接對(duì)芯片內(nèi)部的輸出邏輯直接進(jìn)行約束,NET DATA_OUT OFFET=OUT
46、 TOUTPUT_DELAY AFTER CLK,其中TOUTPUT_DELAY為要求的芯片內(nèi)部輸出延遲,其最大值與要求的輸出數(shù)據(jù)穩(wěn)定時(shí)間TSTABLE的關(guān)系為:TOUTPUT_DELAY_MAX+TSTABLE= TPERIOD。 TOUT_DELAY< TPERIOD - TSTABLE = 20 - 15 = 5nsI Altera對(duì)應(yīng)的時(shí)序概念下面主要介紹Altera對(duì)應(yīng)的這些時(shí)序概念和約束方法。 前面首先介紹的第一個(gè)時(shí)序概念是周期(Period),這個(gè)概念是FPGA/ASIC通用的一個(gè)概念,各方的定義相當(dāng)統(tǒng)一,至多是描述方式不同罷了,所有 的FPGA設(shè)計(jì)都首先要進(jìn)行周期約束,這
47、樣做的好處除了在綜合與布局布線時(shí)給出規(guī)定目標(biāo)外,還能讓時(shí)序分析工具考察整個(gè)設(shè)計(jì)的Fmax等。 Altera的周期定義如下圖所示,公式描述如下: 圖5 Altera 的 Period 示意圖Clock Period = Clk-to-out + Data Delay + Setup Time - Clk Skew即,Tclk= Tco+ B + Tsu-(E-C) Fmax =1/Tclk 對(duì)比一下前面的介紹,只要理解了B 包含了兩級(jí)寄存器之間的所有 logic 和 net 的延時(shí)就會(huì)發(fā)現(xiàn)與前面公式完全一致。J Altera的其他基本時(shí)序概念Clock Setup Time (tsu) 要想正確
48、采樣數(shù)據(jù),就必須使數(shù)據(jù)和使能信號(hào)在有效時(shí)鐘沿到達(dá)前就準(zhǔn)備好,所謂時(shí)鐘建立時(shí)間就是指時(shí)鐘到達(dá)前,數(shù)據(jù)和使能已經(jīng)準(zhǔn)備好的最小時(shí)間間隔。如下圖所示:圖6 tsu示意圖(注:這里定義Setup時(shí)間是站在同步時(shí)序整個(gè)路徑上的,需要區(qū)別的是另一個(gè)概念Micro tsu。Micro tsu指的是一個(gè)觸發(fā)器內(nèi)部的建立時(shí)間,它是觸發(fā)器的固有屬性,一般典型值小于12ns。在Xilinx等的時(shí)序概念中,稱Altera的Micro tsu為setup時(shí)間,用Tsetup表示,請(qǐng)大家區(qū)分一下。 回到Altera的時(shí)序概念,Altera的tsu定義如下: tsu = Data Delay Clock Delay + Mi
49、cro tsu)Clock Hold Time (tH) 時(shí)鐘保持時(shí)間是只能保證有效時(shí)鐘沿正確采用的數(shù)據(jù)和使能信號(hào)的最小穩(wěn)定時(shí)間。其定義如下圖所示:圖7 tH示意圖 定義的公式為: tH= Clock Delay Data Delay + Micro tH注:其中Micro tH是指寄存器內(nèi)部的固有保持時(shí)間,同樣是寄存器的一個(gè)固有參數(shù),典型值小于12ns。Clock-to-Output Delay(tco) 這個(gè)時(shí)間指的是當(dāng)時(shí)鐘有效沿變化后,將數(shù)據(jù)推倒同步時(shí)序路徑的輸出端的最小時(shí)間間隔。如下圖所示:圖8 tco示意圖tco Clock Delay + Mic
50、ro tco + Data Delay(注:其中 Micor tco也是一個(gè)寄存器的固有屬性,指的是寄存器相應(yīng)時(shí)鐘有效沿,將數(shù)據(jù)送到輸出端口的內(nèi)部時(shí)間參數(shù)。它與Xilinx的時(shí)序定義中,有一個(gè)概念叫Tcko是同一個(gè)概念。)Pin to Pin Delay (tpd) tpd指輸入管腳通過(guò)純組合邏輯到達(dá)輸出管腳這段路徑的延時(shí),特別需要說(shuō)明的是,要求輸入到輸出之間只有組合邏輯,才是tpd延時(shí)。Slack是表示設(shè)計(jì)是否滿足時(shí)序的一個(gè)稱謂,正的slack表示滿足時(shí)序(時(shí)序的余量),負(fù)的slack表示不滿足時(shí)序(時(shí)序的欠缺量)。slack的定義和圖形如下圖所示。圖9 slack示意圖 Slack = R
51、equired clock period Actual clock period Slack = Slack clock period (Micro tCO+ Data Delay + Micro tSU)Clock Skew指一個(gè)同源時(shí)鐘到達(dá)兩個(gè)不同的寄存器時(shí)鐘端的時(shí)間偏移,如下圖所示。圖10 clock skew示意圖基于FPGA的時(shí)序及同步設(shè)計(jì)2010-06-07 22:25數(shù)字電路中,時(shí)鐘是整個(gè)電路最重要、最特殊的信號(hào)。第一, 系統(tǒng)內(nèi)大部分器件的動(dòng)作都是在時(shí)鐘的跳變沿上進(jìn)行, 這就要求時(shí)鐘信號(hào)時(shí)延差要非常小, 否則就可能造成時(shí)序邏輯狀態(tài)出錯(cuò).第二, 時(shí)鐘信號(hào)通常是系統(tǒng)中頻率最高的信號(hào).
52、第三, 時(shí)鐘信號(hào)通常是負(fù)載最重的信號(hào), 所以要合理分配負(fù)載。出于這樣的考慮在FPGA這類可編程器件內(nèi)部一般都設(shè)有數(shù)量不等的專門用于系統(tǒng)時(shí)鐘驅(qū)動(dòng)的全局時(shí)鐘網(wǎng)絡(luò)。這類網(wǎng)絡(luò)的特點(diǎn)是:一、負(fù)載 能力特別強(qiáng), 任何一個(gè)全局時(shí)鐘驅(qū)動(dòng)線都可以驅(qū)動(dòng)芯片內(nèi)部的觸發(fā)器; 二是時(shí)延差特別小; 三是時(shí)鐘信號(hào)波形畸變小, 工作可靠性好。因此, 在FPGA設(shè)計(jì)中最好的時(shí)鐘方案是: 由專用的全局時(shí)鐘輸入引腳驅(qū)動(dòng)單個(gè)主時(shí)鐘去控制設(shè)計(jì)項(xiàng)目中的每一個(gè)觸發(fā)器。CPLD/FPGA都具有專門的全局時(shí)鐘引腳,它直接連到器件中的每一個(gè)寄存 器。這種全局時(shí)鐘提供器件中最短的時(shí)鐘到輸出的延時(shí)。同步設(shè)計(jì)時(shí), 全局時(shí)鐘輸入一般都接在器件的時(shí)鐘端,
53、 否則會(huì)使其性能受到影響。對(duì)于需要多時(shí)鐘的時(shí)序電路, 最好選用一個(gè)頻率是它們的時(shí)鐘頻率公倍數(shù)的高頻主時(shí)鐘。 各個(gè)功能模塊要使用統(tǒng)一的復(fù)位電路。在使用帶時(shí)鐘的觸發(fā)器、計(jì)數(shù)器等有復(fù)位端的庫(kù)器件時(shí), 一般應(yīng)盡量使用有同步復(fù)位的器件。注意復(fù)位時(shí)保證各個(gè)器件都能復(fù)位, 以避免某些寄存器的初始狀態(tài)不確定而引起系統(tǒng)工作不可靠。 時(shí)鐘設(shè)計(jì)過(guò)程中,不可缺少的要涉及到數(shù)據(jù)的建立時(shí)間和保持時(shí)間的概念,深刻理解這兩個(gè)概念有助于我們?cè)O(shè)計(jì)出優(yōu)良餓時(shí)鐘網(wǎng)絡(luò)。異步信號(hào)輸入總是無(wú)法滿 足數(shù)據(jù)的建立保持時(shí)間,所以建議大家把所有異步輸入都先經(jīng)過(guò)雙觸發(fā)器進(jìn)行同步化。在許多應(yīng)用中只將異步信號(hào)同步化還是
54、不夠的,當(dāng)系統(tǒng)中有兩個(gè)或兩個(gè)以上非 同源時(shí)鐘的時(shí)候,數(shù)據(jù)的建立和保持時(shí)間很難得到保證,我們將面臨復(fù)雜的時(shí)間問(wèn)題,那么這個(gè)時(shí)候怎么辦呢?最好的方法是將所有非同源時(shí)鐘同步化,那么又怎么 樣將非同源時(shí)鐘同步化呢?我們可以使用帶使能端的D觸發(fā)器,并引入一個(gè)高頻時(shí)鐘(頻率高于系統(tǒng)中的所有源時(shí)鐘),便可以達(dá)到使系統(tǒng)中所有源時(shí)鐘同步的效 果。如下面的這個(gè)例子:系統(tǒng)有兩個(gè)不同源時(shí)鐘,一個(gè)為3MHz,一個(gè)為5MHz,不同的觸發(fā)器使用不同的時(shí)鐘。為了系統(tǒng)穩(wěn)定,假設(shè)我們引入一個(gè)20MHz時(shí)鐘,那么這個(gè) 20MHz的時(shí)鐘怎么才能將3M和5M時(shí)鐘同步化呢?20M的高頻時(shí)鐘將作為系統(tǒng)時(shí)鐘,輸入到所有觸發(fā)器的的時(shí)鐘端。3M
55、_EN 和5M_EN將控制所有觸發(fā)器的使能端。即原來(lái)接3M時(shí)鐘的觸發(fā)器,接20M時(shí)鐘,同時(shí)3M_EN 將控制該觸發(fā)器使能,原接5M時(shí)鐘的觸發(fā)器,也接20M時(shí)鐘,同時(shí)5M_EN 將控制該觸發(fā)器使能。這樣我們就可以將任何非同源時(shí)鐘同步化。在通常的FPGA設(shè)計(jì)中對(duì)時(shí)鐘偏差的控制主要有以下幾種方法:1、控制時(shí)鐘信號(hào)盡量走可編程器件的的全局時(shí)鐘網(wǎng)絡(luò)。在可編程器件中一般都有專門的時(shí)鐘驅(qū)動(dòng)器及全局時(shí)鐘網(wǎng)絡(luò),不同種類、型號(hào)的可編程器件,它們中 的全局時(shí)鐘網(wǎng)絡(luò)數(shù)量不同,因此要根據(jù)不同的設(shè)計(jì)需要選擇含有合適數(shù)量全局時(shí)鐘網(wǎng)絡(luò)的可編程器件。一般來(lái)說(shuō),走全局時(shí)鐘網(wǎng)絡(luò)的時(shí)鐘信號(hào)到各使能端的延時(shí)小, 時(shí)鐘偏差很小,基本可以
56、忽略不計(jì)。2、若設(shè)計(jì)中時(shí)鐘信號(hào)數(shù)量很多,無(wú)法讓所有的信號(hào)都走全局時(shí)鐘網(wǎng)絡(luò),那么可以通過(guò)在設(shè)計(jì)中加約束的方法,控制不能走全局時(shí)鐘網(wǎng)絡(luò)的時(shí)鐘信號(hào)的時(shí)鐘偏 差。3、異步接口時(shí)序裕度要足夠大,局部同步電路之間接口都可以看成是異步接口,比較典型的是設(shè)計(jì)中的高低頻電路接口、I/O接口,那么接口電路中后一 級(jí)觸發(fā)器的建立-保持時(shí)間要滿足要求,時(shí)序裕度要足夠大。4、在系統(tǒng)時(shí)鐘大于30MHz時(shí),設(shè)計(jì)難度有所加大,建議采用流水線等設(shè)計(jì)方法。5、要保證電路設(shè)計(jì)的理論最高工作頻率大于電路的實(shí)際工作頻率。復(fù)位和置位信號(hào)處理:在設(shè)計(jì)時(shí)應(yīng)盡量保證有一全局復(fù)位信號(hào),或保證觸發(fā)器、計(jì)數(shù)器在使用前已經(jīng)正確清零狀態(tài)。在設(shè)計(jì)寄存器的
57、清除和置位信號(hào)時(shí),應(yīng)盡量直接從器件的專用引 腳驅(qū)動(dòng)。另外,要考慮到有些器件上電時(shí),觸發(fā)器處于一種不確定的狀態(tài),系統(tǒng)設(shè)計(jì)時(shí)應(yīng)加入全局復(fù)位/Reset。這樣主復(fù)位引腳就可以給設(shè)計(jì)中的每一個(gè)觸發(fā)器饋送清除或置位信號(hào),保證系統(tǒng)處于一個(gè)確定的初始狀態(tài)。需要注意的一點(diǎn)是:不要對(duì)寄存器的置位和清除端 同時(shí)施加不同信號(hào)產(chǎn)生的控制,因?yàn)槿绻霈F(xiàn)兩個(gè)信號(hào)同時(shí)有效的意外情況,會(huì)使寄存器進(jìn)入不定狀態(tài)。3.zynq-7000板載資源賽靈思Zynq-7000 可擴(kuò)展處理平臺(tái)(EPP)將雙 ARM Cortex-A9 MPCore 處理器系統(tǒng)與可編程邏輯和硬 IP 外設(shè)緊密集成在一起,提供了靈活性、可配置性和性能的完美組合
58、。圍繞其剛剛推出的可擴(kuò)展處理平臺(tái)(EPP), 賽靈思在今年3月發(fā)布了基于Zynq -7000新系列的首批器件。 采用 28 nm制造工藝, Zynq-7000嵌入式處理平臺(tái)系列的每款產(chǎn)品均采用帶有NEON及雙精度浮點(diǎn)引擎的雙核 ARM Cortex-A9 MPCore 處理系統(tǒng),該系統(tǒng)通過(guò)硬連線完成了包括L1,L2 緩存、存儲(chǔ)器控制器以及常用外設(shè)在內(nèi)的全面集成。(圖 1)。盡管 FPGA 廠商此前已推出過(guò)帶硬核或軟核處理器的器件,但 Zynq-7000 EPP 的獨(dú)特之處在于它由ARM處理器系統(tǒng)而非可編程邏輯元件來(lái)進(jìn)行控制。也就是說(shuō),處理系統(tǒng)能夠在開(kāi)機(jī)時(shí)引導(dǎo)(在 FPGA 邏輯之前)
59、并運(yùn)行各個(gè)獨(dú)立于可編程邏輯之外的操作系統(tǒng)。這樣設(shè)計(jì)人員就可對(duì)處理系統(tǒng)進(jìn)行編程,根據(jù)需要來(lái)配置可編程邏輯。 利用這種方法,軟件編程模式將與全功能標(biāo)準(zhǔn) ARM 處理器片上系統(tǒng)(SoC)毫無(wú)二致。過(guò)去設(shè)計(jì)師需要對(duì) FPGA 邏輯進(jìn)行編程以運(yùn)行片上處理器。那就意味著如果想要使用器件,必須得是 FPGA 設(shè)計(jì)師。但現(xiàn)在使用 Zynq-7000 EPP,則完全不必?fù)?dān)心這一問(wèn)題。 圖 1 不同于以往在 FPGA 架構(gòu)中嵌入 MPU ,賽靈思全新 Zynq-7000 EPP 系列使用 ARM 處理器而非可編程邏輯來(lái)進(jìn)行控制。圖1中文字:Multi Gigabit Transceivers 多個(gè)千兆位收發(fā)器 新產(chǎn)品系列消除了延遲和從頭設(shè)計(jì)芯片的風(fēng)險(xiǎn),這意味著系統(tǒng)設(shè)計(jì)團(tuán)隊(duì)可以利用其先進(jìn)的高級(jí)軟硬件編程多功能性簡(jiǎn)便快速創(chuàng)建創(chuàng)新型片上系統(tǒng),而這是其他任何半導(dǎo)體器件都無(wú)法實(shí)現(xiàn)的。這樣,Zynq -7000 EPP 能夠?yàn)閺V大的創(chuàng)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年掌控中考復(fù)習(xí)配套課件:第九單元溶液
- 《老人與?!氛n件
- 2024年阿壩職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案解析
- 單位管理制度集合大全【人力資源管理篇】
- 單位管理制度分享合集【人員管理】十篇
- 單位管理制度范文大合集【員工管理】十篇
- 單位管理制度呈現(xiàn)大全【人事管理篇】十篇
- 《詩(shī)五首》教案設(shè)計(jì)
- 第7單元 工業(yè)革命和國(guó)際共產(chǎn)主義運(yùn)動(dòng)的興起(高頻選擇題50題)(解析版)
- UFIDAU培訓(xùn)課程委托代銷
- 活動(dòng)房結(jié)構(gòu)計(jì)算書(shū)
- 醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理體系文件(全套)
- 富氫水項(xiàng)目經(jīng)濟(jì)效益及投資價(jià)值分析(模板參考)
- 小流域水土保持綜合治理工程初步設(shè)計(jì)
- 增強(qiáng)熱塑性塑料復(fù)合管在我國(guó)的發(fā)展現(xiàn)狀
- 機(jī)械設(shè)計(jì)外文文獻(xiàn)翻譯、中英文翻譯、外文翻譯
- 美標(biāo)漸開(kāi)線花鍵計(jì)算程序2014.8
- 英格索蘭空壓機(jī)操作規(guī)程
- 風(fēng)動(dòng)送樣手冊(cè)
- 績(jī)效考核評(píng)分標(biāo)準(zhǔn)
- 電力建設(shè)施工技術(shù)管理
評(píng)論
0/150
提交評(píng)論