第1章EDA技術概述_第1頁
第1章EDA技術概述_第2頁
第1章EDA技術概述_第3頁
第1章EDA技術概述_第4頁
第1章EDA技術概述_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第1章 EDA技術概述第1章 EDA技術概述當今數字電子技術得到了飛速發(fā)展,有力地推動和促進了社會生產力和社會信息化的提高。數字電子技術逐步滲透到人類生活的各個領域。從消費電子產品、工業(yè)自動化設備到航天技術都能看到數字電子技術的身影。在技術發(fā)展的同時,電子產品的設計方式也發(fā)生了巨大的改變,采用EDA(電子設計自動化)技術成為數字電子設計的主要方式。1.1 EDA技術及發(fā)展數字電子技術工程師現在正面臨著前所未有的挑戰(zhàn)。一方面,電子公司要求工程師在更短的時間里,使用更少的資源來設計新產品,而且性能要比競爭產品好。另一方面,技術變化非???,不同的客戶有完全不同的需求,要求有更具個性化的產品。因此,E

2、DA技術應運而生,成為解決以上“所有”問題的很好的技術選擇。1.1.1 何謂EDA技術EDA技術是一門迅速發(fā)展的新技術。它以大規(guī)??删幊踢壿嬈骷樵O計載體,以硬件描述語言為系統邏輯描述的主要表達方式,以計算機、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統為設計工具。它能用軟件的方式設計電子系統,自動完成硬件系統的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真,最后在特定的目標芯片中完成適配編譯、邏輯映射、編程下載等工作,形成集成電子系統或專用集成芯片。利用EDA技術進行電子系統的設計具有以下幾個特點。q 用軟件的方式設計硬件。q 用軟件的方式設計的系統到硬件系統的轉換是由

3、有關的開發(fā)軟件自動完成的。q 設計過程中可用有關軟件進行各種仿真。q 系統可現場編程,在線升級。q 整個系統可集成在一個芯片上,體積小、功耗低、可靠性高。因此,EDA技術是現代電子設計的發(fā)展趨勢。EDA技術是數字系統設計的核心技術,是電子類專業(yè)技術人員必須掌握的基本技能之一。目前的大規(guī)模可編程邏輯器件是CPLD(復雜可編程邏輯器件)和FPGA(可編程邏輯陣列)。1.1.2 基于大規(guī)??删幊踢壿嬈骷臄底窒到y設計現代數字系統設計相當大一部分是基于大規(guī)模可編程邏輯器件的,這是因為基于大規(guī)??删幊踢壿嬈骷脑O計擁有面市時間快、靈活性大、可定制解決方案、開發(fā)成本低和具有現場更新能力等優(yōu)點。工程師首先對

4、系統或者設計進行構思,然后在計算機上采用高級語言(Verilog HDL語言或者VHDL語言)來描述這一構思,設計出軟件代碼。最重要的是,可以使用設計工具軟件檢查設計中有沒有錯誤。確定設計適合目標的可編程邏輯器件后,檢查設計是否達到了性能要求,可以把設計下載到目標器件中,直接在硬件中調試功能。本書討論的大規(guī)??删幊踢壿嬈骷荈PGA?,F在的FPGA設計與幾年前的FPGA設計有很大不同,它具有全功能,可以實現電路板級的集成,同時降低了成本。例如,一個典型的系統設計如圖1.1所示。這塊電路板上有很多芯片,諸如CPU、I/O單元、小規(guī)模的FPGA、閃存和SDRAM存儲器及一個DSP模塊。該系統需要的

5、電路板比較大,這樣才能容納這些芯片。這提高了設計成本和復雜度。但是,現在能夠把CPU、I/O和DSP都放在一個可編程邏輯芯片中,如圖1.2所示。采用一片FPGA,可以從系統中去掉很多硬件,從而降低了成本和功耗。 圖1.1 典型的系統設計框圖 圖1.2 集成后的系統現在可編程邏輯幾乎無處不在。從家里的HDTV到附近的蜂窩電話發(fā)射塔,直至銀行的ATM,這些都含有可編程邏輯器件形式的數字邏輯,它實現了從控制系統怎樣工作的CPU到網絡和通信應用中高速交換流量管理等方方面面的功能。1.2 可編程邏輯器件的發(fā)展簡介在早期的數字邏輯設計中,設計人員在電路板或者面包板上把多個芯片連在一起構成系統。每個芯片包括

6、一個或者多個邏輯門(如NAND、AND、OR或者非門),或者簡單邏輯結構(如觸發(fā)器和復用器等)。20世紀60和70年代的很多設計都采用美國德州儀器公司的7400系列TTL,即晶體管-晶體管邏輯器件。設計TTL時,其目的一般是以盡量少的芯片來實現設計,以降低成本,減小電路板面積。而且,還需要盡量采用已有的器件來進行設計。1.2.1 邏輯設計基本流程在實現邏輯功能時,首先要建立真值表,如表1.1所示。真值表列出了邏輯所有可能的輸入及輸入組合可能產生的相關輸出。對于n輸入,有種可能的輸入組合,這些都需要進行考慮。根據真值表,我們可以建立卡諾圖,如圖1.3所示。用卡諾圖很容易建立簡單的邏輯表達式。表1

7、.1 真值表ABCDY00000000100010000111010000101101101011111000010011101011011111001110111110111111圖1.3 根據真值表建立的卡諾圖根據卡諾圖中含有1的每個框,結合每個框的公共輸入,我們可以建立函數的一個“乘積和”式的邏輯表達式,如公式1所示。(公式1)表達式由6個乘積項組成,每個乘積項對應一個與門。要在硬件中直接實現這一功能,需要6個2輸入與門,1個6輸入或門,如果希望同步輸出,還需要一個輸出寄存器或者觸發(fā)器。6輸入或門不支持TTL,因此,需要級聯更小的或門,這增加了延時和元件數量。為解決這些問題,TTL設計人

8、員使用與非邏輯重寫公式,如公式2所示。(公式2)這樣,使用7400系列標準元件來最終實現這些邏輯,如圖1.4所示。圖1.4 實現邏輯的電路圖這一實現方案只使用了兩級邏輯來產生乘積和,使用一個寄存器來建立同步輸出??傮w上,可以使用這一例子中介紹的方法把大部分數字電路的邏輯功能簡化為乘積和。使用兩個組合邏輯級來實現這些功能,與門建立乘積項,或門對乘積求和。在輸入上可以采用非門來置反輸入,以產生所需的功能。為了存儲輸出,或者使輸出與其他輸出同步,需要寄存器形式的同步邏輯。如果不需要存儲器或者同步,可以旁路輸出寄存器。采用TTL邏輯器件,在實驗面包板或者印刷電路板上,用銅線把這些分立元件連在一起。1.

9、2.2 可編程邏輯器件PAL思考一下邏輯功能實現的共性,如果把這些邏輯門和寄存器組合到一個器件中會怎樣?從與門到或門,從或門到寄存器有固定的連接會怎樣呢?更進一步,如果有一種方法來設置輸入和與門之間的連接,以確定應使用哪些輸入,以及在哪里使用,又會怎樣呢?這方面的思考導致了第一款可編程陣列邏輯器件PAL的產生,如圖1.5所示。將邏輯門和輸出寄存器固定為通用邏輯后,選擇使用邏輯輸入及其互補邏輯,就可以建立任何邏輯功能。PAL主要由圖1.5中的三部分構成,多次復制這三部分就可以形成復雜PAL器件。這里顯示的可編程陣列是所選擇的輸入,將其連接到需要的與門。在輸入和進入與門的線之間進行連接,可實現線與

10、操作。與門輸出構成乘積項。乘積項通過或門完成乘積和,從而產生最終函數輸出。圖1.5 可編程陣列邏輯示意圖然后,將其送入寄存器進行存儲或者同步。這一部分PAL通常被稱為宏單元。某些PAL包括了陣列反饋選項,以實現更復雜的邏輯功能,還可以完全旁路輸出寄存器,以建立異步輸出。需要指出的是,在目前的大部分器件中,所有這三部分共同構成了宏單元。這就是CPLD器件的情況。這類器件的優(yōu)點非常明顯。一個器件中的邏輯越多,電路板上需要的器件就越少。器件越少,意味著占用更少的電路板來實現邏輯,空出的電路板可以用于放置其他元件。更少的器件還意味著較低的總成本及功耗。邏輯功能連接不必跨過多個器件,避免了連接錯誤,也簡

11、化了邏輯功能的測試和調試。PAL還可以實現設計安全性。PAL在設計上還非常靈活,設計人員采用一類器件就能夠建立很多不同的設計,不用擔心邏輯的可用性。這種靈活性使可編程邏輯設計實現起來更復雜,但與PAL配套產生了很多自動設計工具,它們簡化了設計過程,縮短了設計時間。PAL最強的功能在于它可以支持在系統編程和重新編程,很容易修復故障或者更新設計,而不需要替換電路板元件。早期PAL器件編程甚至當前閃存技術的關鍵都在于編程陣列中跨線連接所使用的特殊晶體管。這些特殊晶體管被稱為浮柵晶體管,因為它們含有第二個柵極,浮在標準選擇柵極和器件基底其他部分之間。兩類最典型的浮柵晶體管是FAMOS(浮柵雪崩注入MO

12、S晶體管)和FLOTOX(浮柵溝道氧化晶體管)。如果不進行任何設置,這兩類晶體管都可以用做標準n型晶體管:當電壓加在柵極上時,晶體管源極和漏極之間導通。兩類晶體管都可以采用相似的方法進行設置來改變這種工作方式。漏極和柵極之間加上足夠的設置電壓后,電子被“限制”在浮柵上,即使在所選柵極上加上標準工作電壓,晶體管也不會導通。這樣,設置浮柵晶體管使之總是“關斷”,這實際上是一個開關。FLOTOX晶體管還需要一個額外的選擇晶體管,這是因為未設置的FLOTOX晶體管有時像p型晶體管,柵極接地時導通。選擇晶體管防止了這一現象的發(fā)生。這兩類浮柵晶體管的主要不同點在于它們重新編程的方式。FAMOS晶體管需要用

13、紫外強光迫使被俘獲的電子回到基底。使用FAMOS晶體管的器件是可擦除可編程ROM,即EPROMS。簡單的置反漏極-柵極編程電壓就可以擦除FLOTOX晶體管。由于用電就可以擦除FLOTOX晶體管,用于實現電擦除可編程ROM,即EEPROM,它們非常適合在系統編程。1.2.3 從PAL到PLD到復雜可編程邏輯器件CPLDPAL之后是PLD,PLD和PAL器件非常相似,但是加入了一些其他特性,成為真正的可編程器件,而且更實用。該器件區(qū)別于簡單PAL器件的主要進步是它含有全面可編程宏單元,以及可變乘積項分配。宏單元提供多種可編程選擇,實現乘積和輸出??删幊毯陠卧€能夠反饋至陣列或者使用輸出引腳作為輸入

14、。靈活的PLD宏單元成為實現邏輯功能真正實用的器件,第一款PLD如圖1.6所示。圖1.6 第一款PLD示意圖PLD理念進一步擴展便產生了CPLD。與由多個PAL和宏單元構成的PLD相似,CPLD包含多個和I/O引腳連接的PLD邏輯模塊,彼此之間通過可編程互連架構進行連接,如圖1.7所示。這種措施可在一個器件中提高邏輯數量。圖1.7 CPLD結構圖CPLD中的邏輯模塊通常被稱為邏輯陣列模塊(LAB),每個LAB就像一個PLD。CPLD LAB一般含有4到20個宏單元。LAB中的可編程陣列非常類似于PAL或者PLD陣列。然而,CPLD和PLD中的可變乘積項分配不同,CPLD LAB中的宏單元通常包

15、括額外的與門邏輯,這些邏輯直接反饋回陣列。這一額外的邏輯可用于形成額外的乘積項,名為擴展項。擴展邏輯產生的額外乘積項可用于當前的宏單元中,以擴展邏輯功能。其他宏單元還可以共享使用擴展項。這樣,對于需要乘積項的宏單元而言,只建立一次乘積項即可,而不必每次都建立。這是減少邏輯浪費更高效的方法,如圖1.8所示。圖1.8 CPLD LAB中的宏單元%注意:使用擴展項邏輯的缺點是由擴展乘積項導致的額外時延,而使用擴展項邏輯的時延是已知的。因此,放置邏輯和進行時序分析時,應對此進行考慮。除了LAB,CPLD中的其他結構與PAL和PLD相似,但配置更高級。LAB之間的互連被稱為可編程互連陣列,即PI或者PI

16、A。PI與PAL和PLD中的可編程陣列相似,使用了相同的編程技術。而PI提供了LAB之間以及LAB和I/O引腳之間數據傳送需要的所有走線。通過PI,任何LAB的輸入和輸出都可以連接至任一其他LAB或者I/O。這是實現非常靈活的可編程器件的關鍵。CPLD相對于PLD的另一改進是加入了單獨的I/O控制模塊。在PLD中,I/O引腳直接連接至邏輯。在CPLD中,PI將I/O引腳和器件的主要邏輯分開。I/O引腳有自己的控制邏輯來實現多種特性,任一引腳有多種I/O標準,輸入、輸出,或者雙向工作,并不需要迫使某些引腳只能用做輸入。CPLD相對于PLD最大的優(yōu)點在于邏輯數量及布線選擇。LAB邏輯和PI是全面可

17、編程的,在單片器件中具有很大的設計靈活性。CPLD的I/O特性和功能遠遠超出了PLD的簡單I/O,在I/O怎樣工作上提供更多的選項和控制功能。與PAL和PLD一樣,CPLD在電路板上電時即可瞬時接通工作。它們具有很低的成本,占用了很少的電路板面積。非易失EEPROM編程體系結構使其非常適合使用在系統編程方法進行測試和調試,不需要在電路板上電時對其進行重新編程。目前的Altera CPLD包括MAX 3000和7000系列器件,以及MAX II和MAX IIZ系列。1.2.4 從CPLD到FPGA的產生CPLD相對于老的PLD器件的最大進步在于它能夠在單個器件中容納大量的邏輯。理論上,可以不斷在

18、CPLD中加入LAB,繼續(xù)增加邏輯數量。但是,這樣做需要有額外的PI布線,實現所有這些LAB的連接,其連接數量會呈指數增長,直到芯片管芯的連線數量超過邏輯數量,這限制了容量的擴展。解決方法是把LAB排列在網格中,從而產生了現場可編程門陣列FPGA的概念,LAB都被排列在大型陣列中,器件可以現場編程或者重新編程,和CPLD一樣。沒有采用中心全局器件互連,而是把布線放置在LAB之間的空格上,就像大城市的街道。這種布線被排列成行列互連的形式。它可以跨過器件的整個長度和寬度,或者器件的一小部分,只覆蓋行列中的幾個LAB,如圖1.9所示。圖1.9 FPGA互連結構圖FPGA LAB和CPLD的LAB設計

19、不同。CPLD LAB由宏單元構成,包括自己的本地可編程陣列,而FPGA LAB由大量的邏輯模塊構成,這些模塊被稱為邏輯單元,即LE,而且本地互連和邏輯分開。LE看起來可能和CPLD宏單元相似,但更容易配置,有更豐富的特性來提高性能,減少邏輯資源的浪費。1.2.5 在系統編程問題的解決由于可編程邏輯器件越來越大,越來越復雜,器件本身編程也越來越復雜。對前面介紹的浮柵晶體管器件進行編程時,PAL或者PLD必須放在特殊的自動編程單元中,在正確的I/O引腳上加上正確的編程電壓。這基本違背了在系統編程的理念,因為它需要把器件從電路板上拿下來,放在編程單元中重新編程,或者在電路板上放一些特殊裝置來進行編

20、程。為了實現在系統編程,CPLD和FPGA增加了和設計I/O分開的編程接口。這就是幾乎所有CPLD和FPGA都采用的一種流行接口JTAG接口,如圖1.10所示。JTAG接口是簡單的4線或者5線串行接口,器件上的JTAG接口一般作為器件自測試的一部分來保證器件制造合格、正常工作。數據在TDI輸入上移入,在TDO輸出上移出。如果輸出和輸入相匹配,則器件通過測試。如果PLD本身可以產生編程所需要的電壓,那么JTAG接口能夠控制并指導芯片,在器件的哪一部分加上編程電壓。這就簡化了在實驗室或者電路板產品線上對PLD的編程。JTAG是業(yè)界標準,因此,任何JTAG接口器件都可以進行器件自測試。圖1.10 J

21、TAG接口示意圖然而,通常需要特殊控制器才能通過鏈接和供應商的器件進行編程。例如,Altera器件需要使用Altera編程電纜,USB-Blaster或者ByteBlaster II下載電纜等。JTAG編程非常適合應用在EEPROM器件上,這是因為編程是非易失的。1.3 FPGA系統結構和資源由于技術的進步,產生了百萬級的FPGA,同時為了照顧用戶的特殊需求,現在包含了4種可編程資源,即位于芯片內部的可編程邏輯單元(LE)、位于芯片四周的可編程I/O、分布在芯片各處的可編程布線資源和片內嵌入式存儲器塊RAM。也增加了嵌入式乘法器、鎖相環(huán)的資源,如圖1.11所示。圖1.11 FPGA內部資源結構

22、圖下面將對FPGA內部資源進行簡單介紹。1.3.1 可編程邏輯單元(LE)圖1.12所示是一個典型的LE的結構圖。LE包括3個主要部分:查找表(LUT)、進位邏輯和輸出寄存器邏輯。圖1.12 典型的LE的結構圖其中,FPGA用查找表(LUT)替代了CPLD中的乘積項陣列,它是FPGA中組合邏輯輸出乘積和的關鍵。大部分器件使用4輸入LUT,而有些器件提供輸入數量更大的LUT,以建立更復雜的功能。LUT由一系列級聯復用器構成,如圖1.13所示。圖1.13 查找表(LUT)結構示意圖復用器輸入可以被設置為高或者低邏輯電平。邏輯之所以被稱為查找表,是因為通過“查找”正確的編程級來選擇輸出,并根據LUT

23、輸入信號通過復用器將輸出送到正確的地方。LUT本質上就是一個RAM。對于4輸入的LUT,每一個LUT可以看成一個有4位地址線的16×1的RAM。當用戶通過原理圖或HDL語言描述了一個邏輯電路以后,PLD/FPGA開發(fā)軟件會自動計算邏輯電路的所有可能的結果,并把結果事先寫入RAM。這樣,每輸入一個信號進行邏輯運算就等于輸入一個地址進行查表,找出地址對應的內容,然后輸出即可。%注意:相對于CPLD宏單元,產生LUT輸出可能需要更多的邏輯級。但是,它能夠靈活地建立函數和LE鏈,從而提高了性能,有助于減少資源的浪費。LE的同步部分來自可編程寄存器,非常靈活,通常由全局器件時鐘來驅動它,而任何

24、時鐘域都可以驅動任何LE。寄存器的異步控制信號,如清位、復位或者預設等,都可以由其他邏輯產生,也可以來自I/O引腳。寄存器輸出通過LE后驅動至器件布線通道,還可以反饋回LUT??梢园鸭拇嫫髋月?,產生嚴格的組合邏輯功能,也可以完全旁路LUT,只使用寄存器用于存儲或者同步。這種靈活的LE輸出級使其非常適合所有類型的邏輯操作。FPGA LE含有專門的進位邏輯和LAB中的寄存器鏈布線,為這些信號提供最短鏈接。進位比特可以來自LAB中的其他LE,也可以來自器件中的其他LAB。產生的進位比特可以輸出到其他LE,或者器件互連中。LAB中的LUT和進位邏輯可以被完全旁路,鏈接LAB中的所有LE寄存器,把它們變

25、成移位寄存器,這適合DSP工作。和CPLD相比,進位邏輯和寄存器鏈布線的通用性進一步提高了性能,增強了對資源的管理。%注意:由于LUT和寄存器都能夠輸出至器件中的任一位置,不論是位于相同的LAB中,還是通過器件的布線通道。因此,FPGA LE可以配置完成寄存器封裝功能。采用寄存器封裝,一個LE可以輸出兩路不同的函數,一路來自LUT和進位鏈邏輯,另一路來自輸出寄存器。只使用模塊的組合邏輯部分,完全不相關的寄存器函數可以封裝到一個LE中。因此,這有助于節(jié)省器件資源。目前為止,所討論的FPGA LE的確要比CPLD宏單元在設計上更加靈活,但還是需要LE級聯和反饋才能產生具有較多輸入的函數。為解決這個

26、問題,一些高級FPGA使用自適應邏輯模塊(ALM)。ALM和LE相似,但有一些重要優(yōu)勢。首先,ALM包括兩個輸出寄存器,為邏輯鏈和寄存器封裝提供更多的選項,在一個邏輯模塊中生成多個函數。ALM還具有內置硬件加法器模塊。ALM中的加法器是專用資源,完成標準算術操作,不需要在LUT或者在DSP中生成這些數學函數。這提高了數學性能,簡化了LUT邏輯。ALM中的LUT和LE的主要不同點是ALM中的LUT是自適應LUT,即ALUT。ALUT與LUT相似,但可以對它進行劃分,配置為大小不同的LUT,以適應兩種類型不同的函數,包括最簡單到非常復雜的函數。所有8個輸入都可以用于完成復雜算術函數,而ALUT可以

27、按照不同的方式來進行劃分,實現簡單函數。例如,兩個LUT,一個是3輸入,一個是5輸入。還可以劃分ALUT以支持更復雜的7輸入函數,其額外的輸入用于寄存器封裝。分成兩個4輸入LUT,使ALUT后向兼容標準LE中的4輸入LUT技術。最后,如果兩個函數之間可以共享輸入,還能夠進行其他方式的劃分?;贏LM的FPGA使用較少的資源和智能資源管理技術,大大提高了邏輯工作的性能。1.3.2 可編程布線FPGA器件中的布線通道看起來簡單,但實際上提供更多的功能和互連。FPGA布線通道使器件資源能夠與芯片任何地方的所有其他資源進行通信。老款的非FPGA器件是無法實現的。曼哈頓型布線通道及大小不同的固定長度邏輯

28、段,大大簡化了通過布線調整來達到設計時序要求。隨著器件資源的增加,布線通道數量線性增長就可以連接所有的器件資源。FPGA布線通道可以分成兩類:本地互連及行列互連。本地互連直接連接LE或者LAB中的ALM,鄰近LAB之間進行最短連接,稱為直接鏈路。另一類互連是行列互連。這類互連的長度固定,跨過一定數量的LAB,或者整個器件。LAB I/O可以連接到本地互連,實現高速本地操作,或者直接連接至行列互連,向芯片的其他部分發(fā)送數據。1.3.3 可編程I/OFPGA I/O控制功能含在陣列邊沿的模塊中,所有器件資源都可以通過FPGA布線通道使用該功能。FPGA中的I/O模塊通常被稱為I/O單元。I/O單元

29、含有和老款CPLD I/O控制模塊相同的基本功能,但是功能更豐富,使FPGA I/O單元非常適合用于所有類型的設計。除了基本輸入、輸出及雙向信號,I/O引腳還支持多種I/O標準,包括多種最新的低電壓高速標準。其他特性包括可變電流驅動能力和擺率控制等,以提高電路板級信號完整性。上拉電阻形式的片內匹配功能有助于減少電路板上的匹配元件數量。有些器件的I/O單元還含有鉗位二極管,使能后可以用做PCI總線的I/O。根據設計需要,器件中未使用的I/O引腳可以被設置為開漏或者三態(tài)。1.3.4 嵌入式存儲器RAM現代FPGA器件除了LAB之外還含有特殊的硬件模塊。這些專用資源模塊占用了陣列中一個或者多個模塊,

30、通過FPGA布線通道可以訪問這些模塊。這些專用資源通常在器件中以特殊行列模塊的形式進行排列。存儲器模塊就是特殊的專用模塊,可以配置為不同類型的存儲器。FPGA存儲器模塊可以配置成單端口或者雙端口RAM,或者可編程ROM,還可以用做移位寄存器或者FIFO緩沖,以替代LAB邏輯。由于FPGA存儲器模塊和器件中的其他結構一樣可以進行編程,因此,上電時能夠以任意存儲器內容對其進行初始化??梢猿跏蓟癁槿我獯鎯ζ髂J?,并進行測試,所以,這對設計調試非常有用。1.3.5 嵌入式乘法器現代FPGA器件中另一類專用資源模塊是嵌入式乘法器。嵌入式乘法器是高性能邏輯模塊,能夠完成乘法、加法和累加操作。它們可以替代L

31、UT邏輯來提高設計中的算術性能。這對DSP設計非常有用。某些器件還具有高速收發(fā)器。這些I/O結構支持高速協議,傳送速率達到每秒百兆位甚至千兆位。較高的傳送速率一般用于通信和網絡設備中。1.3.6 時鐘由于FPGA是基于同步寄存器邏輯的,因此,時鐘和時鐘控制結構是FPGA體系結構的重要組成部分。時鐘基本上是高速扇出控制信號,FPGA器件有控制時鐘信號應分配到哪里、時鐘信號怎樣到達目的地的硬件。所有FPGA器件都含有專用時鐘輸入引腳。這些引腳接收時鐘信號,直接連接至芯片中的其他時鐘控制結構。其他引腳可以用做時鐘引腳,但信號需要通過其他邏輯結構。當不用做時鐘時,時鐘輸入引腳可以用做標準I/O。時鐘輸

32、入引腳一般饋入器件中的鎖相環(huán)PLL。PLL根據輸入時鐘的特性來產生其他時鐘域,保證所有時鐘域彼此同相,并且斜移最小。時鐘控制模塊用于管理時鐘控制,選擇哪些時鐘應送入器件的時鐘布線網絡。它們還用于使能或者禁止上電和斷電時選擇的時鐘。時鐘布線網絡含有用于向器件中所有邏輯輸出時鐘的布線通道。這些特殊的布線通道一般和普通的行列互連分開。時鐘互連全局網絡能夠連接所有邏輯,而有的器件還含有局部或者分層時鐘網絡,僅向器件中的某些部分輸送時鐘。1.3.7 鎖相環(huán)如前所述,PLL是能夠產生不同時鐘域的結構,保證在生成的輸出時鐘之間斜移最小。PLL是可編程的,使設計人員很容易建立不同頻率、占空比和相移的多種時鐘域

33、,用于整個設計中。例如,含有1路輸入時鐘和基于輸入時鐘的3路輸出時鐘域。100 MHz的輸入來自時鐘輸入引腳。PLL輸出時鐘是和輸入相同的100 MHz時鐘,或者200 MHz時鐘,以及相對于輸入相移90度的200 MHz時鐘。這些時鐘被送入時鐘控制模塊,在器件時鐘網絡中進行分配。一般可以在上電時對PLL進行編程,而某些器件的PLL在正常工作時可隨時編程。1.3.8 FPGA與CPLD的對比現在我們對比一下CPLD和FPGA的主要特性,提供一個簡單參考,幫助確定某一設計適合采用哪類器件。首先,對比一下硬件,如表1.2所示。表1.2 FPGA與CPLD的硬件對比內 部 結 構CPLDFPGA基本

34、邏輯組成LAB由宏單元構成LAB由LE和ALM構成 建立邏輯功能乘積和LUT 或ALUT邏輯布局LAB圍繞全局互連LAB排列在網格陣列互連LAB本地和全局PILAB本地和行/列/分段/整個芯片板上DSP專用乘法器/加法器/累加器板上存儲器存儲器模塊,可使用互連編程技術EPROM、EEPROM FlashSRAMCPLD和FPGA都是由邏輯陣列模塊構成的,但是CPLD LAB基于乘積和宏單元,而FPGA LAB使用基于LUT的邏輯單元。CPLD LAB圍繞中心全局互連排列,隨著器件中邏輯數量的增加,呈指數增長。FPGA LAB以網格陣列排列,隨器件密度線性增長。CPLD互連包括LAB本地可編程陣

35、列及中心可編程互連。FPGA器件包括本地互連,用于各個LAB,但是和LAB邏輯分開,器件還包括行列互連,這些互連跨過陣列中的多個LAB,以及整個芯片的長寬。FPGA器件一般包括專用資源模塊用于存儲或者DSP邏輯。CPLD不含有這些資源。最后,CPLD包括片內EPROM、EEPROM或者閃存結構,以存儲編程和配置信息,這些信息在斷電后也不會丟失。FPGA使用SRAM單元進行編程,這種易失編程技術要求器件每次上電時都進行編程。對基本特性進行對比,是選擇使用哪種技術最好的方法。CPLD性能合適,而FPGA速率更高。這兩種技術都能夠為復雜功能設計提供大量的邏輯。但是,FPGA由于具有LAB網格陣列,邏

36、輯資源更豐富。對于高速通信應用,唯一的選擇是使用某些FPGA中的收 發(fā)器。一般而言,CPLD的功耗較低,但是FPGA也有很多低功耗特性,其功耗幾乎和CPLD相當,具體取決于設計。當把設計移植到固定的結構化ASIC時,唯一選擇是使用FPGA。最后,設計電路板時,必須考慮FPGA編程需要的外部元件,占用的電路板面積、電路板走線和功耗等。CPLD是單機器件,在編程和正常工作時,不需要任何額外的硬件。選擇可編程邏輯器件時需要考慮很多選項和因素。在選擇器件時,進行對比是良好的開始,但還是需要經常查看器件手冊,以了解器件特性和不足。如表1.3所示,是CPLD和FPGA的特性對比。表1.3 CPLD和FPG

37、A的特性對比特 性CPLDFPGA性能低端到高端高端、高速用戶邏輯用于小型和中型設計用于大型復雜設計I/O可編程,支持多種I/O標準可編程,支持多種I/O標準高速通信某些器件為很多協議提供收發(fā)器支持功耗低低到高ASIC移植直接移植、功能匹配、性能提高編程非易失實施接通,不需要其他外部器件易失,每次上電需要編程1.4 FPGA的設計流程FPGA設計方法可以總結為一個簡單的設計流程,Altera的Quartus II軟件是全集成開發(fā)工具,完全支持這一設計流程。具體步驟如下。(1)進行源文件的編輯和編譯。首先需要將設計思路用文本方式或圖形方式表達出來,進行排錯編譯,為進一步的邏輯綜合做準備。常用的源

38、程序輸入方式有原理圖輸入方式和文本輸入方式。(2)進行邏輯綜合和優(yōu)化。將源文件經過一系列的操作,分解成一系列的邏輯電路及對應的關系,最終獲得門級電路甚至更底層的電路描述文件,即生成與FPGA/CPLD基本結構相對應的網表文件。(3)進行目標器件的布線/適配。在選用的目標器件中建立起與網表文件符合的基本邏輯電路的對應關系。(4)目標器件的編程下載。如果編譯、綜合、布線/適配和行為仿真、功能仿真、時序仿真等過程都沒有發(fā)現問題,即滿足原設計的要求,則可以將布線/適配器產生的配置/下載文件下載電纜載入目標芯片中。(5)硬件仿真/硬件測試。將下載好程序的FPGA放在開發(fā)板上進行測試,以驗證設計思想與實際

39、電路的偏差。1.5 Altera公司FPGA低成本器件Cyclone IICyclone II器件是Altera公司在2004年6月推出的,采用90nm、低k值電解質工藝。其中的邏輯單元數量高達68 416個,片內嵌入式存儲器容量最多增加至1.1MB,用戶I/O最多可達622個。這個系列的產品具有用戶定義的功能、性能領先、低功耗、高密度和低成本的優(yōu)勢。1.5.1 主要特性Cyclone II器件可提供4608到68 416個邏輯單元(LE),包括了嵌入式18×18位乘法器、專用外部存儲器接口電路、4Kb嵌入式存儲器塊、鎖相環(huán)(PLL)和高速差分I/O等功能。表1.4所示為Cyclon

40、e II FPGA系列的特性。表1.5所示為Cyclone II器件封裝和最多用戶I/O管腳數。表1.6列出了Cyclone II FPGA的適用配置器件。表1.4 Cyclone II FPGA系列的特性器 件EP2C5EP2C8EP2C20EP2C35EP2C50EP2C70邏輯單元4608825618 75233 21650 52868 416M4K RAM塊(4 K比特+512校驗比特)263652105129250總比特數119 808165 888239 616483 840594 4321 152 000嵌入式18×18位乘法器1318263586150PLLs2244

41、44最多用戶I/O 管腳數142182315475450622差分通道5575125200192275表1.5 Cyclone II 器件封裝和最多用戶I/O管腳數封裝尺寸/mm×mmEP2C5EP2C8EP2C20EP2C35EP2C50EP2C70144-Pin TQFP (16×16)8985208-Pin PQFP(30.6×30.6)142138256-Pin FineLine BGA(17×17)182152484-Pin FineLine BGA(23×23)315322294672-Pin FineLine BGA(2

42、7×27)475450422896-Pin FineLine BGA(31×31)622表1.6 CycloneII FPGA的適用配置器件配置器件支持CycloneII器件EP2C5EP2C8EP2C20EP2C35EP2C50EP2C70EPCS1×EPCS4×××EPCS16××××××EPCS64××××××1.5.2 基于數字信號處理(DSP)應用Cyclone II器件提供最多150個18×18

43、位的乘法器,可以實現通用數字信號處理(DSP)功能。與基于邏輯單元的乘法器相比,嵌入式乘法器性能更高,占用邏輯單元更少。Cyclone II FPGA內部的嵌入式乘法器能夠實現常用的簡單乘法器操作。嵌入式乘法器,如圖1.14所示,都可以被配置成為一個18×18位的乘法器,或兩個9×9位的乘法器。 圖1.14 CycloneII器件內部的嵌入式乘法器嵌入式乘法器同時支持有符號和無符號數的乘法。它還提供可選的輸入和輸出寄存器,用于提高性能。嵌入式乘法器也可以與Cyclone II器件的M4K RAM塊進行無縫集成,實現高效的DSP算法,如FIR 濾波器和視頻處理。上述嵌入式乘法

44、器能夠在250MHz下運行,消除了復雜算法計算的性能瓶頸,將DSP系統的整體吞吐量提高了若干個數量級。Cyclone II器件可被用做DSP應用的FPGA協處理器,分擔DSP處理器的復雜算法計算,提高系統的整體性能。1.5.3 專用外部存儲器接口Cyclone II器件可以通過一個專用接口和雙倍數據速率(DDR)/DDR2、單倍速率(SDR)SDRAM器件以及四倍數據速率(QDR II)SRAM器件進行通信,保證快速可靠的數據傳輸,傳輸速率最高達到668 Mbps。表1.7給出了Cyclone II支持的外部存儲器接口。DDR SDRAM器件十分流行,主要是因為其低功耗、相對低的價格和高帶寬特

45、性。由于數據處理在時鐘的兩個沿都可進行,因此DDR SDRAM 器件的帶寬是SDR的兩倍。四倍數據速率(QDR II)SRAM器件使系統設計人員能夠將數據吞吐能力最大化,主要應用在通信領域,時鐘速率最高可達167MHz。QDR II架構具有雙數據端口(輸入和輸出)特性,每個時鐘周期各執(zhí)行兩次操作,從而實現每個時鐘周期完成四個數據指令。表1.7 Cyclone II 器件支持的外部存儲器接口存 儲 技 術I/O標準最大總線寬最大時鐘速率最大數據速率SDR SDRAM3.3 V LVTTL72 bits167 MHz167MbpsDDR SDRAM2.5 V SSTLClass I,II72 bi

46、ts167 MHz334 MbpsDDR2 SDRAM1.8 V SSTLClass I,II72 bits167 MHz334 MbpsQDRII SRAM1.8 V HSTLClass I,II36 bits167 MHz668 MbpsCyclone II器件可以和外部存儲器進行高速可靠的數據傳輸。高速接口的關鍵技術在于采用專用I/O特性,確保滿足所有的時序需求。每個Cyclone II器件都采用了優(yōu)化的I/O管腳,以接入DDR/DDR2、SDR SDRAM和QDR II SRAM 器件。每個I/O區(qū)都具有最多兩套接口信號管腳,每套管腳包含一個單一數據選通(DQS)管腳和相關數據(DQ)

47、管腳。每個器件最多可支持72個DQ管腳,并帶有相應的DQS管腳,支持一個具有64比特數據和糾錯的雙面存儲器模塊(DIMM)。專用數據選通DQS電路在讀周期中針對優(yōu)化了的時鐘和數據序列將DQS信號做了 移相。1.5.4 嵌入式鎖相環(huán)Cyclone II器件具備最多4個增強型鎖相環(huán)(PLL),提供先進的時鐘管理能力。例如,頻率合成、可編程相移、外部時鐘輸出、可編程占空比、鎖定檢測、可編程帶寬、輸入時鐘擴頻和支持高速差分輸入輸出時鐘信號。Cyclone II PLL提供了時鐘合成功能,允許內部工作時鐘與輸入時鐘頻率不同。每個PLL能夠提供最多3個輸出時鐘,每個輸出時鐘的頻率可互不相同。PLL提供兩個

48、比例因子,分別為m、n的除法計數器,這里m、n和后比例計數器可以是1到32中的任何整數。Cyclone II PLL允許實現時間上的多路復用,通過時分多路復用,可以利用較少的邏輯單元實現給定功能,從而以器件資源共享的方式提高器件面積效率。Cyclone II中的每個PLL支持一個差分或一個單端外部輸出時鐘。每個PLL帶有一對外部時鐘輸出管腳。外部時鐘輸出管腳支持多種I/O標準,如表1.8所示。表1.8 Cyclone II PLL的特性特 性PLL支持輸入時鐘頻率11311 MHz輸出時鐘頻率10400 MHz外部輸出管腳的時鐘頻率10200 MHz時鐘倍頻和分頻m、n除法計數器和后比例計數器

49、相移125 ps遞增可編程占空比支持可編程帶寬支持擴頻支持輸入時鐘的擴頻續(xù)表特 性PLL支持內部時鐘輸出數3外部時鐘輸出數一個差分或單端輸入時鐘和外部時鐘輸出I/O標準支持LVTTL, LVCMOS, 2.5/1.8/1.5 V, 3.3 V PCI, SSTL-2 Class &, SSTL-3 Class I &, LVDS, HSTL, PCI-X, LVPECL%注意:外部時鐘輸出可被用做系統時鐘或用來使板上不同的器件同步。時鐘反饋特性可以作為內部延遲的補償,或用來調整外部時鐘輸出與時鐘輸入的相位關系。Cyclone II PLL具有較強的時鐘移相能力,能夠實現可編程相移。用戶可以實現125 ps時間間隔的相位移動。這種可編程相移特性是滿足時序約束的理想方法。Cyclone II PLL可以鎖定檢測信號。鎖定輸出指示當前的時鐘輸出信號與參考時鐘是否同步。鎖定檢測信號可用于控制和同步電路板上的不同器件。可編程占空比允許PLL產生不同占空比的輸出時鐘??删幊陶伎毡忍匦詫τ陔p倍數據速率(DDR)應用非常有效,數據在時鐘的正負邊沿都可以進行傳送??删幊陶伎毡仍试S開發(fā)人員控制時鐘正負邊沿的位置,簡化和這些沿相關的建立保持時間需求。Cyclone II PLL的帶寬是衡量其跟蹤輸入時鐘和濾除抖動能力的標準。利用Cyclone II器件,開發(fā)人員可以控制PLL的帶

溫馨提示

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

評論

0/150

提交評論