編者語:筆者本科專業電子信息工程,讀書時代用的第一塊開發板就是Altera公司的,當時腦子里完全沒有Altera這個概念,只知道這是塊FPGA開發板。但就是這塊開發板讓我開始接觸并深刻認識到FPGA技術、VHDL語言的魅力。雖然后來沒去鉆研做技術,但它給我留下的印象是最深刻的。那么,各位自稱FPGA工程師的你們是不是也一樣呢?Altera公司的FPGA開發板用了那么多年,Quartus II 軟件用得那么順手。但是卻不了解“Altera這家伙到底是什么呢?“、”它多大了?“、”它為什么能在中國這片廣闊天地上培育出這么多牛叉的工程師?“...筆者在跟很多FPGA工程師聊天的過程中,經常會聽到這些疑問。湊巧Altera今年30周歲,筆者就帶著大家一起來見識下Altera的30年發展歷程吧...
創始年代
1983年,Altera公司正式成立。很多人現在對這一年印象還非常深刻——挑戰者號和哥倫比亞號航天飛機首航,菲律 賓總統小阿基諾被暗殺,美國入侵格林納達等。而在技術領域卻是白駒過隙,30年顯得如此漫長。TCP/IP成為ARPANET的正式協議——那時還沒有互 聯網。IBM推出了PC-XT——個人計算機還沒有硬盤。宣布了GNU項目。
在電子設計領域,微處理器在很多嵌入式設備中得到了廣泛應用,替代了高端微型計算機,在低端則替代了大量的小規模數字芯片。典型的數字系統包括微處理器或 者微控制器,周圍是接口電路,連接芯片總線和外部存儲器芯片以及接口。小規模邏輯芯片和中等規模功能模塊IC還在使用,更多的用在建立微處理器周圍的接 口,或者橋接總線,對于性能關鍵的應用,則協助微處理器完成一些操作。
而且,這一時期,在設計領域逐漸采用了新的替代解決方案。邏輯門陣列——特別是經過預制造的邏輯門陣列,在最終產品階 段,由一系列客戶定義的金屬層進行配置,支持設計人員將數千個邏輯門和存儲器封裝到一個芯片中。對于很多項目,并不熟悉設計過程,依靠于基于工作站的 EDA工具進行原理圖采集,獲取庫單元,進行仿真,而前端費用非常昂貴。但是對于規模較大、資金較充裕的設計團隊,邏輯門陣列是很好的替代方案,減少了芯 片數量,提高了設計性能,同時降低了功耗。
從今天的標準來看,那時的設計風格也是千差萬別。習慣于數字邏輯的工程師通常使用形式結構來進行設計:布爾代數和最小表 達式定義組合邏輯,通過狀態機來描述時序邏輯。這些工程師會使用手動方法或者越來越多的計算機軟件工具來采集并分析其設計。但是工程師的背景各不相同,特 別是模擬工程師,通常會使用更直觀的方法。這些設計人員傾向于使用原理圖進行設計輸入,從左側的空白開始設計,然后是輸入信號到輸出,增加邏輯門、觸發 器、中等規模的器件,以及要連接的微處理器。邏輯門陣列用戶也傾向于采用原理圖方法,這只是因為它能夠對在芯片中建立的電路進行近似描述。這兩種相反的設 計風格在設計發展過程中都扮演了一定的角色,但是業界在1983年出現了另一種創新方法,并逐漸得到廣泛應用。
1978年,出現了另一種替代方法,但還沒有引起重視。Monolithic Memories的芯片設計團隊開發了一款名為PAL的器件(對于“可編程陣列邏輯”,采用了更知名的術語“可編程邏輯陣列”)。芯片是一次性編程數字器 件,實現布爾表達式的簡化標準形式:乘積求和格式。PAL含有很多宏單元,每個單元包括開關陣列,這可以將芯片的任意輸入和輸出連接至8個乘積項中的每一 個。然后,宏單元在寬OR邏輯門中對乘積項進行求和,提供可配置觸發器,寄存OR邏輯門的輸出,為選擇時鐘提供一些復用器,旁路寄存器,等等。1983 年,PAL的容量、速度和配置發展很快,使得設計人員有很大的選擇余地。
這些可編程器件為數字設計人員提供了很好的方法:邏輯密度高于小規模邏輯門和觸發器,比專用商用中等規模器件更靈活,例 如,計數器、寄存器和解碼器,與邏輯門陣列相比,還提供非常熟悉的設計流程,沒有前端開支。供應商為微型計算機和大型機提供軟件工具,這可以轉換成布爾表 達式、狀態機,某些機制轉換為芯片開關映射。
Altera登場
這是Altera于1984年推出其首款產品的環境。EP300芯片( 圖1)是可編程邏輯芯片,但是在四個方面與PAL有明顯的不同。首先,EP300是可重新編程的,看起來比較方便,而事實表明這成為了業界的關鍵因素。封裝上的石英窗口支持用戶對管芯進行紫外燈照射,擦除含有器件配置的EPROM單元,因此,可以再次對芯片進行編程。
圖1.通過管芯上的窗口,照射紫外光,Altera EP300具有可擦除能力。
其次,EP300是CMOS器件,那時,還是采用高功耗的雙極工藝來制造大部分PAL、小規模和中等規模邏輯。第 三,Altera芯片是通用的——即,用戶可以對EP300進行編程,幾乎可以模擬絕大部分現有PAL類型器件的配置。最后,Altera為EP300提 供了設計工具,這一工具運行在IBM PC上,而不是工程工作站或者微型計算機上。Altera資深副總裁Don Faria回憶說:“這的確是創新。PC剛剛出現,工程師對其很有興趣,有時候,人們觀看我們的演示就是為了看一看PC-XT。”
還有另一點不同,是與Altera有關,不僅僅是EP300。Altera采用了代工線模式。那時大部分半導體公司都依 靠他們自己生產線的專用工藝來獲得競爭優勢,Altera設計的EP300也盡可能采用通用EPROM工藝。因此,可以在很多其他公司生產線上生產芯片, 只需要對設計進行很小的改動即可。石印掩膜就是刀刻紅膜相片——只修改設計文件參數并不能改變它。因此,開發的設計要在性能上有競爭力而且可移植性要好, 這的確有一定的難度。
Faria回憶說,這一新器件非常符合系統設計人員的需求。20引腳封裝含有8個宏單元。每個宏單元( 圖2) 含有的寄存器接收8個乘積項的OR運算。因此,每個宏單元很容易解碼16位地址總線。早期數據資料中的一個例子是,衍生器件EP310連接了微處理器地址 總線,為RAM、EPROM和5個串行I/O收發器提供了片選信號。器件還可以進行復雜的轉換,例如,解碼二進制數,驅動7段顯示屏的每一段。或者,一個 芯片可以實現非常復雜的狀態機,具有8個二進制狀態變量。
圖2.EP300被排列成可配置乘積求和。
通過在EP300中實現接口和狀態機,設計人員可以嘗試新的邏輯表達式,重新配置設計,重新映射地址總線,以及類似的試 驗,不會有PAL各種各樣的問題。更重要的是在成本上,這可能不是令人很激動,但他們可以設計一塊電路板,在成品中安裝各種型號器件,甚至可以在現場進行 重新配置。由于有這些優勢,EP300及其衍生型號很快得以廣泛應用,設計人員自然會希望將更多的功能在可編程器件中實現。這種趨勢促使生產出規模更大的 器件。
越來越多的問題
Altera的響應是擴展芯片系列,含有更多的宏單元,最終在EP1800中,68引腳的含鉛芯片載體上實現了48個宏 單元器件。在這一點,對邏輯容量的需求對PAL體系結構帶來了很大的壓力,促使體系結構開始發展變化。Faria解釋說:“我們知道標準PAL體系結構很 難進行調整。”
在傳統的PAL中,每一宏單元的每個乘積項可以訪問所有輸入信號,所有宏單元輸出,以及所有這些信號的互補信號。隨著宏單元數量的增加,這一排列好的互聯矩陣會呈幾何級數增長,很快將無法承受。Faria說:“因此,我們開始對互聯進行劃分。”
在EP1800中,這一趨勢非常明顯,一個封裝中實際是四個獨立的EP300器件( 圖3)。由內部總線將這四個器件連接起來,而不是都嘗試去驅動相同的乘積項矩陣。這種組織使得器件具有可制造性,但是,要求設計人員要想清楚哪一宏單元去實現某一邏輯表達式,其他的哪一宏單元要訪問結果。器件四個部分的連接會帶來額外的延時。
圖3.隨著可編程器件容量的增長,簡單的乘積求和組織被劃分設計替代,并不是所有的乘積項要訪問所有信號。
新體系結構,新參與者
大約在此時,1985年,發生的一個外部事件影響了Altera體系結構:最近成立的Xilinx發布了其第一款FPGA。FPGA與EPLD相比是根本不同的體系結構,這些不同觸發了Altera內部的多項創新。
FPGA并不是匯集宏單元,而是嘗試仿真邏輯門陣列的結構。第一款芯片是邏輯單元陣列——相對簡單的邏輯單元(LE), 每個都含有一個三輸入查找表(LUT),用于產生邏輯功能,還有一個可配置觸發器,以及用于調整信號和選擇時鐘的復用器。邏輯單元并沒有采用固定連接,而 是通過交換結構連接至多層金屬堆疊,這具有不同的長度和方向:可編程互聯。正如在邏輯門陣列中,FPGA用戶能夠決定一小簇邏輯門(邏輯單元)的功能,這 些邏輯簇怎樣連接至芯片的其他簇,通過連接邏輯單元,逐步構建形成電路。
這些器件的三個方面引起了邏輯設計人員的注意。首先,與小規模EPLD中的宏單元數量相比,FPGA中有大量的邏輯單 元,因此,FPGA表面上看起來的容量通常都不太正確。其觸發器的確比等價EPLD的多,但是對于組合邏輯,密度是不可比的。第二個吸引人的方面是,與后 來非常流行的邏輯門陣列非常相似,這給研究并采用新技術的設計人員帶來了很大的想象空間。第三,對于習慣于把設計考慮成原理圖而不是布爾等式的設計人員而 言,FPGA看起來更直觀。很清楚的知道邏輯門和觸發器網絡應怎樣映射到FPGA中。
后一點成為發展趨勢。越來越明顯的是很難調整基于布爾表達式的形式設計,這與設計實現它的PAL相似。布爾代數能夠準確簡明的表達設計人員使用幾百個邏輯門的目的。但是對于一千個邏輯門,印刷錯誤以及難以理解表達式的含義實際上意味著,很難實現這么多邏輯門。
1985年,Altera基于PC的設計套裝提供了四種不同的設計輸入方法:布爾表達式、狀態機映射、網表和原理圖。軟 件采用任何一種形式來進行設計,簡化為布爾表達式,簡明的進行表達,將表達式映射到目標器件電路中,提供仿真器,因此,設計人員能夠看到芯片是怎樣工作 的。工具還使得用戶能夠選擇通過配置芯片的單獨的EPROM單元來直接控制,認識到這一事實,有經驗的設計人員進行優化工作,效果要比一些軟件好得多。
Altera的回答
Altera對FPGA的響應是提高其下一代器件的邏輯容量。而Altera設計人員完成這一工作時并沒有復制FPGA體系結構,或者嘗試簡單的擴大EPLD。相反,他們將劃分PAL這一概念擴展為一類新體系結構:復雜PLD (CPLD)。
在后來采用的工藝密度(大約1 μm)中,CPLD解決了兩類問題,這在FPGA中很快體現出來。這些問題之一是扇入
FPGA邏輯單元中的LUT只有三路輸入。因此,FPGA需要級聯多級LE才能實現大扇入功能,例如地址解碼器( 圖4)。多級通常導致很大的延時,低效的占用了大量的互聯和邏輯單元。
圖4.某些功能,例如這一8比特地址解碼器,可以采用PAL寬扇入兩個邏輯級來實現,但是,如果采用較窄的FPGA邏輯單元輸入,則需要多個邏輯級。
第二個問題是時序預測性。在PAL中,任何邏輯表達式的延時相同,不論它有多復雜,或者放置在哪里,只要能夠適配到一個 宏單元中即可。如果一個表達式需要PAL或者CPLD中的多個宏單元,單元之間的橋接只會在時序上增加額外的固定延時。因此,您實際上可以很快計算出邏輯 功能的通路延時。
這種簡潔并沒有體現在FPGA中。在早期的器件中,資源非常寶貴,互聯的延時非常大。因此,時序的差別會很大,具體取決 于工具怎樣將您的設計映射到邏輯單元和互聯中。器件逐漸填滿后,工具必須付出很大的努力才能找到開放布線通路和自由的邏輯單元,問題越來越嚴重。在利用率 達到90%的FPGA中,如果您看一下說明,制造商并不推薦這種情況,看起來對邏輯不大的改變就會導致布局和時序出現很大的變化,很難連接。
Altera的第一款CPLD是1988年的MAX5000器件,不用放棄PAL的確定性時序,便可以實現更高的邏輯密度。通過針對工藝特性來優化邏輯粒度,體系結構達到了其目標。
一項對比說明了這一點。在傳統的PAL中,每一乘積項要訪問芯片中的每一變量。那么,劃分粒度就是整個器件。在第一個 FPGA中,每個LUT都要訪問其本身的或者其他單元的三路信號。Altera設計人員認真思考了PAL的大粒度太大無法進行擴展,而早期FPGA的精細 粒度導致了時序不可預測這一問題。對于1988年的工藝技術,最好的答案應位于兩者之間。
MAX 5000體系結構( 圖5) 找到了最佳點。每一MAX芯片含有一個或者多個邏輯陣列模塊(LAB)。每個LAB,實際上是沒有I/O端的較大的(16個或者32個宏單元) PAL。LAB的宏單元每個都有四個乘積項。而每個LAB都含有一些非專用的乘積項,可以連接至宏單元,以延長其連接距離。每個LAB都連接至片內可編程 互聯陣列(PIA),在LAB之間連接信號,具有固定的額外延時。所有LAB共享一個可編程I/O布線矩陣,將邏輯連接至焊盤環。
圖5.MAX體系結構通過將乘積和模塊分組到LAB中,提供幾種分層互聯級,同時提高了邏輯密度和可預測性。
MAX CPLD是成功的折中方案。時序雖然不像小規模PAL那樣簡單,但仍然是確定性的,限制在非常窄的窗口中。把設計映射到器件中并不簡單,但是由設計軟件自動完成,可以選擇手動編輯。
1980年底直至1990年初一直都要求提高邏輯密度。隨著邏輯門數量的增加,應用開發人員開始考慮CPLD,它具有優 異的扇入和確定性,是解碼器和狀態機等需要大量邏輯的最佳選擇。對于需要大量寄存器的功能,設計人員之所以選擇FPGA是因為它在觸發器數量上有很大的優 勢。
人越來越難以理解器件,但設計工具越來越智能,因此,對手動編輯的需求降低了。在1980年底,出現了一種全新的設計風 格,它基于Verilog硬件描述語言(HDL)的自動邏輯綜合。除了名稱,HDL與Verilog一樣,根本就沒有描述硬件。而是,采用名為寄存器傳送 邏輯的新形式來描述硬件功能。
使用Verilog (及其ADA衍生競爭對手,VHDL)無意得到的結果是,綜合產生了有很多寄存器的同步設計。這些設計直觀上更適合在有大量寄存器的FPGA體系結構中實現,而不是在組合邏輯CPLD中實現。
直覺并不意味著現實,由于FPGA結構的限制,早期嘗試面向FPGA進行邏輯綜合失敗了。但是,設計人員仍然開始思考采 用Verilog等文本語言進行邏輯設計,開始考慮FPGA不僅僅是接口單元,而是實現其設計完整功能模塊的方法。Altera成立二十年的時候,半導體 工藝邏輯密度不斷增長,同樣非常關鍵的是越來越豐富的工藝互聯,這些都帶來了新機遇。這恰恰是Altera開始另一次革命的時候。
從膠合邏輯到子系統:Altera的第二個十年
這是 1994 年。美國航天飛機還在執行常規任務。全世界興致勃勃的關注彗星 Shoemaker-Levy 9 的分裂,它最終撞向了木星的大氣層。連接英國和法國的英吉利海峽終于圓夢百年。令人意想不到的是,臨時共和軍停止了在北愛爾蘭的軍事敵對行動。在電子行 業,英特爾剛剛宣布,奔騰處理器克服了著名的奔騰中斷缺陷,成為個人計算機的主流處理器。 Altera 開始了他的第二個十年。
從作為簡單邏輯芯片開始 , 可編程邏輯器件 (PLD) 十多年來一直按照摩爾定律發展 , 越來越復雜 —— 邏輯容量超過了 10K 等價邏輯陣列。在發展過程中, PLD 分成了兩種體系結構:基于布爾乘積求和的復雜 PLD (CPLD) ,并通過 EEPROM 單元進行編程,以及基于查找表 (LUT) 的 FPGA ,以微小 SRAM 來實現這些查找表。
這兩種體系結構一開始都有其專用性。CPLD ( 圖 1) 適用于具有大扇出或者嚴格時序約束的電路。 FPGA 適用于具有大量寄存器的設計。對于關心組合邏輯模塊和狀態機的設計人員,一般都認為 CPLD 更友好一些 —— 在 1994 年,這是老觀點。而更喜歡 FPGA 的一批年輕設計人員則把邏輯看成文本: Verilog 或者 VHDL 。
圖1.CPLD體系結構
這兩種體系結構有一個共同的發展趨勢 : 隨著芯片邏輯容量的增長 , PLD 的應用出現了變化。當 CPLD 還受限于幾千個等價邏輯門時,設計人員采用芯片主要是實現中央微處理器或者微控制器 (MCU) 芯片周圍的簡單功能。較小的器件用作地址解碼器、中斷控制器,或者總線擴展器。較大的器件可以是快速狀態機智能直接存儲器訪問控制器,處理某些實時操作, 而軟件完成這些操作太慢了。
但是 , 10K 邏輯門帶來了新機遇。設計人員可以在大約 3K 邏輯門中開發一個 8 位 MCU , 或者一個簡單的 16 位 CPU 內核 , 例如 , 已經成為古董的 8086 ,它 只需要兩倍的邏輯門。采用 10K-20K 邏輯門,設計人員能夠開發基于小型 CPU 的子系統,例如,總線接口和可編程串行接口控制器,這些都包含在 PLD 中。與標準產品非 PLD 解決方案相比,這類設計要慢一些,能效也低,但卻是完全用戶可定義的,可重新編程的。最顯著的是,大部分這類子系統設計都有大量的寄存器,很多都需要大量 的內部 SRAM kilobytes (KB) 。
Altera轉向FPGA發展
在這種環境下 , Altera設計人員總結出 , 市場需要一類新產品。與 FPGA 相似,它應該采用精細粒度邏輯單元,每一個單元都含有 LUT 和寄存器。但是像 CPLD 一樣,它應該使用層次化的確定性互聯,以保持時序的可預測性,而且簡單。 Altera 增加了第三種單元,借鑒了某類邏輯門陣列。這一新單元是一組嵌入到體系結構中的 SRAM 模塊,設計用作緩沖或者高速暫存存儲器、寄存器文件,或者實現復雜函數發生器的查找表。這種理念的結果是, 1995 年, Altera 推出了第一款類似 FPGA 的系列產品, FLEX? 10K 器件 ( 圖 2) 。
圖2.FLEX 10K器件結構圖
Altera 工程師還進一步打破了公司傳統 , 使用 SRAM 單元 —— 而不是他們可信的 EEPROM 技術來保存 FLEX 芯片的配置數據。這種選擇意味著,系統每次上電時,必須從外部存儲器對 FLEX 進行配置,就像基于 SRAM 的 FPGA 。但這也意味著,不需要占用大量空間的 EEPROM 單元, FLEX 邏輯單元會小很多。而且,十年磨一劍,轉到 SRAM 意味著,只要有新工藝, Altera 就能夠采用前沿工藝開發自己的器件,而不用等待代工線兩年以上來開發嵌入式 EEPROM 。這些變革最終促使半導體行業在每一新工藝節點的第一批設計都使用了 FPGA 。
新應用 , 新技術
FLEX 10K 器件及其后續器件促進了 PLD 行業的發展 ( 圖 3) 。新體系結構使得新應用成為可能,這要求采用新工具和技術,反過來進一步增加了對新體系結構的需求。
圖3.FPGA發展圖
FLEX 器件多達 250K 等價邏輯門 , SRAM 高達 40K , 使用其 SRAM 模塊 , 能夠實現某些非常復雜的狀態機和算術功能 , 已經遠遠超出了傳統的接口和膠合邏輯應用。用戶可以考慮整個子系統,例如以太網接口,其介質訪問控制器、協議卸載引擎;或者完整的信號處理加速器,包括其 總線接口、本地存儲,以及硬件有限沖擊響應 (FIR) 濾波器等;所有這些都含在一片 FLEX 芯片中。雖然 Altera 最初的目的是彰顯 FLEX 器件與 FPGA 的不同,但 FPGA 卻成為大規模 PLD 的總稱, Altera 也就逐漸采用了這一術語。
當用戶開始考慮子系統時 , 他們發現了新需求。子系統一般需要多個時鐘,每一時鐘與自己的鎖相環 (PLL) 同步。但是分立 PLL 價格昂貴,占用較大的電路板空間。因此,從 1996 年開始, Altera 推出了具有內部可編程 PLL 的 FLEX 器件。其強大的功能節省了電路板空間,能夠提高芯片時鐘質量。而更重要的是,它揭示了很重要的發展趨勢: FPGA 成為子系統,開始集成常用的非 PLD 硬件模塊,以改進系統總體設計。
設計方法也在改變。在 1990 年后期 , 具有 100K 邏輯門的 FLEX 器件超越了傳統的一張白紙式的設計方法。設計團隊將其工作分成多個模塊,嘗試使用以前設計好的模塊,而不用開發新模塊。團隊開始許可來自第三方知識產權 (IP) 開發商的模塊。 Altera 開始開發 IP 庫。應用了設計工具,增加了新特性以幫助實現 IP 重用,新特性包括,能夠通過簡單的用戶界面設置可重用 IP 模塊的參數,第三方供應商能夠以加密形式提供 IP 模塊。
容量的增加也帶來了另一問題 : 調試。對于小型 PLD ,最常用的調試方法一直是“冒煙測試”:插入芯片,打開電源。在 100K 邏輯門,第一次嘗試芯片就能夠工作,或者設計人員通過采用邏輯分析儀來觀察外部引腳,從而發現問題的概率幾乎為零。“冒煙測試”沒有用。設計人員開始在 ASIC 環境中仿真相關部分,在針對 FPGA 將其綜合到網表中之前,采用 RTL 仿真器測試他們的寄存器傳送級 (RTL) 代碼。
但是 , 在仿真中可行的 RTL 在實際中可能還無法工作。設計人員需要一種方法來觀察芯片運行時的內部工作情況。采用 SRAM 可編程 FPGA ,可以將 ad-hoc 調試電路寫入到 RTL 中,重新綜合,重新測試。但是,這樣做的投入較大,非常耗時。因此,在 1999 年, Altera 推出了 SignalTap? 邏輯分析器:這一硬件特性支持用戶在系統運行時監視 FLEX 器件中的每一個寄存器。
進入處理器 , 巨大的變化
這些大規模 FPGA 最需要的一種 IP 模塊是某類微處理器內核。對于 ASIC 設計,一般都能夠以硬核網表和 RTL 的形式提供 CPU 內核 IP 。但是,對于 FPGA 而言, CPU 卻是一種挑戰。算術單元和多端口寄存器文件等對于 CPU 內核非常關鍵的結構無法適配到 FPGA 硬件中。很難在 CPU 內核的關鍵通路上實現時序收斂。
因此 , 在 2000 年 , Altera 推出了 Nios? , 這一微處理器內核是由 FPGA 設計團隊開發的 , 在 FLEX 器件中實現。與基于單元的 ASIC 內核不同,這一 16 位 RISC Nios 處理器非常小,而且很快 —— 在 FPGA 架構中,對于 CPU 而言, 50 MHz 已經非常快了,比較容易實現。內核周圍很快出現了總線接口、外設和軟件等輔助支持系統。
然而 , 在 2000 年中期 , 停止了發展。互聯網泡沫 , 不僅將股票價格推高到荒謬的地步 , 而且虛構出巨大的互聯網容量 , 導致災難性的崩潰 , 隨著泡沫的破滅 , 半導體的需求急劇下降。泡沫使得網絡設備供應商成為 FPGA 的主要用戶,因此, FPGA 公司受到的傷害最大。隨著金融的緊縮, FPGA 供應商更積極的追求網絡之外的應用。
2001 年 , 泡沫還沒有退去的時候 , Altera 選擇在嵌入式系統大會上發布一款新器件 ,它注定成為泡沫退去后的“ 報春花 ”,這 要比一款長壽命產品更有意義。 Excalibur? 處理器統一了 APEX? 器件系列 FPGA 架構 —— 這是 FLEX 器件體系結構的發展,具有運行速度高達 200 MHz 基于單元的 ARM922 CPU 內核。器件的推出表明 FPGA 嘗試轉向嵌入式應用,在把關鍵 IP 模塊嵌入到 FPGA 硬件的實踐中邁出了一大步。
IP 中的發展趨勢
隨著 FPGA 的發展 , IP 重用更切實可行 , 出現了更多的新趨勢。毫無疑問,設計團隊希望能夠有置入到設計中的處理器內核。而且,他們希望內核支持業界標準接口。而新需求也體現在這些方面。
例如 , 從需要高帶寬的通信行業開始 , 系統設計人員不再采用具有分立時鐘的并行接口 , 而是采用高速自有時鐘串行 I/O 。電路板上芯片之間的信號類似來自硬盤讀放大器或者衛星接收機的信號。這些芯片中的收發器電路具有相對復雜的混合信號模塊,速度通常高達 Gigahertz 。請參考 圖 4。
這些收發器完成專門的設計任務 —— 超出了大部分 FPGA 用戶的專業知識 , 不適合在可編程邏輯中實現。對此 , 在 2001 年 , Altera 發布 Mercury? 器件系列 FPGA , 它具有內置為硬核 IP 的 1.25 Gbps 收發器。模塊包括 1.25 GHz 模擬驅動器和接收器,以及混合信號時鐘數據恢復電路,從接收波形中重建最初的數據。
在信號處理領域也出現了相似的過程, 包括無線通信和軍事應用。對于這些設計中最關鍵的構建模塊 —— 乘法累加器,采用可編程邏輯很難實現它們。從 Mercury 器件的專用 8x8 乘法器子模塊開始, Altera 于 2002 年推出 Stratix? 器件體系結構,轉向了嵌入式全數字信號處理 (DSP) 構建模塊。
圖4.Mercury器件采用了時鐘恢復電路實現高速串行互聯
不斷發展的方法
FPGA 容量在不斷增長 , 它們包含越來越多的硬核 IP 模塊 , 例如 , PLL 、調試控制器、串行收發器 , 以及某些應用中的 CPU 內核等。用戶將以前設計好的 IP 模塊連接起來,逐步開發自己的設計。某些設計是專用加速器,通常用于數據包處理或者信號處理,實現一條功能強大的流水線。而現在還出現了另一體系結構:圍 繞 CPU 內核展開設計,從 CPU 伸出的系統總線成為主干,其他模塊都掛在這一總線上。
這一設計方法強調了 IP的選擇和驗證 , 進行正確的連接 , 在 Verilog 中建立新的子系統。 Altera 再次積極響應,創新實現了SOPC Builder 。這一工具具有交互式的導航用戶界面,用于在 FPGA 上開發基于 CPU 的系統。用戶標明把哪些模塊裝配到哪里,由工具生成所需要的 RTL 。
不斷的發展變化促進了革命。 PLD 從膠合邏輯和總線接口組件發展到包含了數據包處理、信號處理功能和基于 CPU 的子系統。具有足夠的邏輯容量、合適的 IP 以及相應的工具, FPGA 已經從子系統的角色成為系統的核心。
第三個十年:FPGA成為SoC#e#
第三個十年:FPGA成為SoC
2003 年,互聯網泡沫破滅的時候,Altera開始了他的第三個十年。這是大結局的一年:哥倫比亞號航天飛機悲劇謝幕,先驅者10號失去聯絡,最后一臺大眾甲殼 蟲駛出裝配線。但這也是開始的一年:伊拉克戰爭,美國股市大牛市的開始,私人開發的SpaceShipOne第一次超音速飛行,中國第一次載人航天。
在系統設計領域,FPGA悄然向下一階段發展。使用最先進的CMOS技術,FPGA的邏輯密度和速度足以在一個芯片中實現CPU內核及其外設。 Altera發布了Nios,這一RISC CPU內核針對FPGA進行了優化,合作伙伴也開發了在FPGA中實現的其他流行CPU內核。Avalon是一種多主機總線體系結構,適用于CPU和芯片 系統之間的可編程邏輯規范互聯。市場上還出現了SoPC Builder,這款工具可以自動的在基于FPGA的SoC中裝入知識產權(IP)。
這些底層工作導致人們對可編程邏輯進行全新的思考。設計人員會繼續在CPLD中開發膠合邏輯。對高性能有要求的設計人員會繼續在數據包交換、信號處理和相關應用中實現更快、功能更強大的加速器和子系統。而此外,在Altera的第三個十年,FPGA作為芯片系統冉冉升起。
以CPU為中心的時期
即使在這十年中,SoC也趨向于采用簡單模式,以它們所替代的電路板級計算機為基礎。一片SoC通常包括一個CPU內核,一個本地高速緩存或者緊耦合SRAM,一個DRAM控制器,一條片內微處理器總線,以及應用程序所需要的外設控制器等(圖1)。這類應用會包括DMA控制器或者應用加速器,適用于經常性的繁雜任務,例如,數據傳送、加密計算,或者快速傅里葉變換(FFT)等。
圖1.一個典型的以CPU為中心的Soc設計
在FPGA中實現SoC有很大的優點。設計人員可以只選擇CPU內核中需要的硬件模塊。數字加速器可以使用Altera FPGA中的高速數字信號處理(DSP)模塊,其算術性能要遠遠高于微處理器和DSP芯片組合所能達到的水平。設計人員還可以使用嵌入在FPGA架構中的 可編程邏輯、DSP模塊以及RAM模塊實現定制加速器。可以把這些加速器設計用作微處理器總線單元,或者獨立直通處理器,開發與微處理器控制平面相獨立的 數據平面。
據Altera產品規劃經理Bernhard Friebe,提高集成度的一個重要優點是能效。FPGA中的RAM和DSP模塊等硬件功能的能效不會低于等價的ASIC或者貨架功能產品的能效。在可編 程邏輯中實現的功能的功耗通常要比等價的標準產品高,但并不總是這樣。但是,在這一時期,很多系統的主要能耗來自I/O。數據通過FPGA架構傳送不但非 常快,而且效率要遠遠高于通過芯片邊界進行傳送。通過限制FPGA內部寬帶數據傳送,系統設計人員能夠有效的降低系統級能耗。
由于已經有了硬件和IP來支持以CPU為中心的SoC,因此,Altera的重點放在了工具流程上。很顯然,SoC開發人員的工具需求與傳統邏輯設 計人員的完全不同。傳統上,接口或者數據通路組件設計人員會以VHDL或者Verilog的形式詳細的表達他們的設計,然后,每一個單元要通過邏輯驗證、 映射至FPGA資源以及時序收斂等步驟。
而SoC設計人員更關注抽象級。硬件足夠快,片內RAM容量足夠大?總線和存儲器帶寬夠用嗎?總線接口能夠互聯嗎?由于能夠充分重新使用IP,因 此,設計投入的重點由全部SoC邏輯轉向編寫軟件,利用已有IP開發一個或者兩個新模塊,將其置入到設計中。換句話說,SoC開發人員就像系統設計人員那 樣進行思考,而不像芯片設計人員那樣。
這樣帶來的一個結果就是Altera于2005年首次推出的漸進式編譯功能。設計投入一般是集中在SoC的一個或者兩個模塊上,而硬件大部分工作保 持不變。Altera的漸進式編譯特性支持設計人員對設計中的一部分重新進行設計,一般是固定位置和引腳約束,不需要通過工具鏈重新運行整個設計。這不僅 節省了編譯時間,而且降低了已經設計好的硬件部分受到干擾的風險。
SoC設計還導致偏向使用FPGA I/O引腳。作為總線橋接或者加速器,FPGA會有突發或者流形式的數據流過芯片,一般是從一條標準總線到另一條總線。一般而言,只有較少的時鐘域,大部分是由總線定義的。
以CPU為中心的SoC帶來了新需求。通常會有標準外部總線,例如,PCI或者USB。而現在,FPGA會最先使用總線,而不僅僅是總線上的一個用 戶。當然還會有DRAM端口,使得FPGA面臨如何使用DDR SDRAM接口技術的難題。在片內外設控制器和外部器件之間還會有很多串行或者并行連接。這種多樣性意味著更多的引腳,I/O上更多的信號和更大的電壓變 化,以及更多的時鐘域。這些變化反映在越來越復雜的FPGA I/O單元和時鐘網絡上。
內核和多核
半導體工藝一直在不斷改進,晶體管密度也越來越高。但是在Altera的第三個十年中,越來越難以進一步提高電路速度了。相應的,CPU生產商關注 的重點從提高時鐘頻率轉向兩個、四個甚至管芯上更多的CPU內核——多核體系結構。SoC設計人員在ASIC設計和FPGA設計上都緊隨其后。
多核思路體現在FPGA使用上有兩個明顯的方向。一個思路就是簡單的復制CPU內核。這相對比較容易將多個處理器內核編譯到FPGA中。但是將其連 接起來就不那么容易了。這里,可編程邏輯提供了豐富的資源,設計人員幾乎可以實現從陣列到緊耦合內核,直至共享L2高速緩存體系結構的所有一切,設計實現 多主機Avalon?總線上的獨立CPU。
多核的另一個思路采用了不同的方法:異構系統。實現一個CPU內核例化的同一總線、IP和工具支持同時實現CPU內核和多個對等的加速器 (圖2)。這也導致完全不同的多核設計思路:以軟件為中心的方法。
圖2.一個異構多核SoC設計
設計同構多核系統非常直觀,極其簡單。您需要知道比單個CPU速度快多少倍。使用更多的CPU,多出一個或者兩個也有可能降低效率。根據您期望的線 程之間共享的存儲器等級,選擇互聯體系結構。在CPU之間劃分軟件線程,仿真系統,并重復直至符合規范要求。這一過程一直是以硬件為中心的,選擇一種體系 結構,實現它,然后,劃分代碼,適配到硬件中。
但是,能夠建立自己的加速器則創立了全新的方法。它是這樣工作的。分析您的代碼,找到熱點。對于最難處理的代碼部分,建立定制加速器,這節省了 CPU周期,降低了能耗。仿真系統,然后再分析步驟,并重復,直到性能滿足要求。這一方法從一個CPU內核上的工作軟件開始,產生定制滿足實際系統軟件要 求的多個硬件加速器。系統第一次反映了軟件需求,而不是強制軟件符合要求。
2006年,Altera推出了兩項創新,支持這種異構多核設計風格。一項是編譯器,將一組可執行ANSI C代碼轉換成加速器,針對Altera FPGA中的Nios? CPU內核進行了優化。這種C語言至硬件加速(C2H)編譯器工具自動完成以軟件為中心的設計中最耗時和最容易出錯的步驟:生成加速器。
第二項創新則不太明顯。如果您對比一個快速單核處理器與時鐘速度較慢的一組等價處理器的功耗,由于高效的加速器,動態功耗會大幅度下降。但是泄漏 ——多年來一直難以解決的問題,不論電路是否工作,都隨著晶體管數量的增加而增大。因此,對于多核設計,泄漏電流對能效的影響最大。
Altera以第二項創新——可編程功耗技術來解決這一問題。硬件和軟件工具相結合,對于時序不關鍵的通路,選擇慢速低泄漏電路,減小了FPGA中的泄漏電流,同時實現了時序收斂。結果是,不管深亞微米工藝的泄漏有多大,都滿足了異構多核設計的能耗要求。
一致性和增強
最后階段標志著Altera第三個十年的結束:IP選擇的一致性。逐漸的,系統設計領域更加關注最棘手問題的特殊解決方案。特別是,嵌入式系統開發 人員幾乎都采用了C語言,嵌入式計算普遍采用ARM?內核,一些接口標準開始成為某些應用的主要標準,例如,高速系統總線、背板鏈接和芯片間互聯等。由 此,Altera開發創新技術來支持這些解決方案。
一個例子是,編程人員表達并行代碼的方式。C語言雖然能夠很好的定義順序執行的程序,但是無法表達熟練的編程人員使用的并行處理方法。但是,名為 OpenCL?的C衍生語言可以。2011年,Altera推出了一組工具,支持編程人員采用越來越流行的OpenCL編寫并行算法,將其翻譯成FPGA 中的并行硬件以及傳統CPU中的控制代碼,這不需要專門的FPGA設計知識。
多核SoC越來越一致的使用ARM Cortex?-A類CPU內核帶來了第二項創新。只要每一個設計團隊希望有不同的CPU,FPGA供應商就要滿足這些需求,在可編程邏輯中實現軟核。但是這種靈活性有其成本:占用邏輯單元、高功耗和低速。
Altera則采用了別的方法:在越來越多的嵌入式和無線應用中使用Cortex-A9。2012年,公司開始推出具有管芯硬核處理器子系統的 FPGA樣片:雙核Cortex-A9群,有自己的高速緩存、本地RAM、經過優化的存儲器控制器,以及部分外設控制器,這些都在ASIC類型基于單元的 硬件中實現。芯片設計人員非常小心的優化子系統和可編程邏輯架構之間的互聯,以實現異構多核系統。
這種多核處理器系統和FPGA之間不斷的融合帶來了另一項更關鍵的創新。2013年,Altera發布其下一代高端FPGA不僅由傳統的代工線合作 伙伴制造,而且還由Intel公司制造,使用了14 nm三柵極工藝,這源自Intel自己的CPU和SoC。從ASIC定位的代工線市場轉向擅長CPU的代工線,Altera FPGA獨辟蹊徑來解決功耗和性能問題,優化半導體工藝特性,而不是優化滿足ASIC代工線要面對的各種市場需求,這對于工藝單元、本地RAM和高速互聯 都非常關鍵。
Altera相信,這種選擇的結果是打破FPGA業界多年以來所習慣的性能和能耗模式。這是新十年最好的開始。
Altera技術發展里程碑
Altera由Robert Hartmann、Michael Magranet、Paul Newhagen和Jim Sansbury于1983年創立,這些有遠見的人們對當時的研究進行投資,認為半導體客戶將從用戶可編程標準產品中受益,逐步取代邏輯門陣列。為滿足這 些市場需求,Altera的創始人發明了首款可編程邏輯器件(PLD)——EP300,開創了半導體業界全新的市場領域。這一靈活的新解決方案在市場上打 敗了傳統的標準產品,為Altera帶來了半導體創新領先企業的盛譽。?
?
評論
查看更多