• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 汽車電子 > 學習方法與實踐 > FPGA中的IP集成方法對比

    FPGA中的IP集成方法對比

    ——
    作者:Altera公司 時間:2008-01-02 來源:《世界電子元器件》 收藏
    引言 

    從最初的計算機和電話開始,互聯網絡一直是電子工程的關鍵構成。在超大規模(VLSI)電路時代,由于MOS晶體管的驅動特性以及片內互聯相對較大的電容,互聯網絡變得尤其重要。 

    芯片內部用于連接功能單元的互聯網絡對芯片性能有很大的影響,甚至是決定性的影響。總線雖然是一種最簡單的互聯,但從容量或者角度看,卻是較差的選擇,因為驅動總線以最大速率工作時需要的和空間隨總線電容呈指數增大。而且,多點連接網絡也不是一種好選擇,因為即使每次只需要一次對話,或者會話限于最近的鄰居之間,也必須驅動整條總線。交叉是不錯的解決方案,其最大容量由底層器件和布線技術決定。一般而言,多方會話的最佳解決方案是采用交叉網絡。 


    現狀 

    目前的片內總線直接源自計算機系統中使用的系統寬度總線(實際上進行了精簡)。盡管我們知道這類總線的確發揮了作用,但它明顯在設計上受限于以前的商用目的和技術水平,也就是便宜的布線、昂貴的芯片,而互聯比邏輯速度快。 

    現在,情況發生了變化。現代大規模IC的速度一般受限于互聯,而不是邏輯。采用了多時鐘域和波傳播技術的芯片就充分證明了這一點。在眾所周知的“摩爾定律”(常常被錯誤地引用)作用下,現在可以提供豐富的邏輯門,而大部分工程師并不知道該如何使用這么多的資源。對于這一窘境,可以反過來考慮電路和系統設計:便宜的邏輯和互聯,而布線恰恰相反。 

    總線導致了總線標準的發展——很自然地產生于目前的商業和技術環境。不同生產商的各種IC需要通過印刷電路板進行通信,因此需要為邏輯電平、電流驅動和信號極性建立標準。各種引腳和信號標準(例如,晶體管到晶體管邏輯,即TTL)導致了引腳組標準,也就是總線標準的產生。信號標準簡化了不同元件之間的連接,總線標準實現了各種微處理器、外設和存儲器的連接。這樣產生了將整個電路板看成是一種插入模塊的電路板級標準(例如,VME、S-100、Futurebus、PCI等)。實際上,在很多情況下,這些電路板級標準已經超出了供應商專用芯片級偽標準的范圍。 

    雖然引腳級、芯片級和電路板級總線實現了電氣兼容性,但并不能保證各構成部分之間能夠實際對話。可以說電路能夠工作,而協議較弱。但是標準并沒有解決系統體系結構和數據流的問題,因此,標準只是很好地解決了那些瑣碎的問題,例如怎樣發送連續的“1”和“0”字符串。 

    與很多法律、政策和規章相似,總線標準也得貫徹其效用。但是,總線一經采用,就開始過時了。總線的嚴密性成為其弱點。總線標準對信號、協議、帶寬和應用模型的變化適應性不強。總線在本質上變化很慢,很快就不能適應意外的變化。它阻礙了創新;延誤了原創。雖然總線能夠頑強地支撐下去,但是如果不具有連續性,那就一無是處了。當然,在不斷發展變化的標準化大海中,它仍然是穩穩豎立的燈塔。沒有確定的規范,元件生產商應怎樣遵循標準呢? 


    其他考慮

    總線的替代方案有很多,都曾在各種計算機、芯片、電路板、ASIC和中得到成功應用。如同總線不是解決所有互聯問題的靈丹妙藥,這些替代方案也不是萬能的。如果能避免標準總線固定的程序安排和時間進度,那就有可能為設計開辟新的坦途,為普通項目帶來一些創意和創新。 

    總線和網絡 

    目前總線體系結構的替代方案其實也不過是一類不同的總線。準確地說,是不同的互聯拓撲,例如網絡、交換架構或者交叉結構。這些互聯拓撲成功地應用在很多芯片、電路板和系統級產品中,變得越來越流行。隨著芯片和系統級體系結構的變化,其互聯邏輯隨之變化。

    如圖1所示,總線拓撲一般采用點對點或者點對多點會話結構。這些總線也是源自引腳或者電路板級接口的標準化要求,這樣,各種供應商的芯片能夠實現互通。總線可以有多個主機(發起一次會話,發送或者接收數據),但是每次只有一個主機處于活動狀態。在總線的定義上,其本質就具有獨占性。每次只有一個主機能夠使用總線;所有其他主機必須等待。因此,在任何總線規范中,總線仲裁(例如,共享機制)成為最重要的組成部分。 

    圖1 傳統的總線拓撲(略) 

    雖然每次只有一個主機處于活動狀態,但是大部分總線支持多主機。主機競爭使用總線,發起一次會話,等待從機(或者在“多呼”會話中的多個從機)的響應,然后釋放總線。主機可以發起第二次會話,也可以通過仲裁,把總線控制權交給其他主機。這種安排會導致系統瓶頸,等待使用總線大大降低了系統性能。 

    有些更高級的總線支持分割會話,下一次會話的開始和前一次會話的結束相互重疊,從而減少仲裁或者會話延遲的開銷。雖然這樣從整個會話時間中去掉了一些多余的周期,但卻無助于解決所有總線根本上存在的單主機問題。 

    在ASIC或者中,采用片內布線資源很容易實現芯片級總線。標準芯片架構技術在芯片頂層提供相對平直的金屬層,方便了總線的實現(也易于實現分布和全局時鐘信號)。 

    網絡拓撲和傳統的總線非常相似。網絡也是針對在共享介質上的點對點或者點對多點會話而設計的,也采用了對總線的仲裁控制(通常使用碰撞探測和重試算法)。而且,鄰近的會話過程還可以稍微重疊,以節省時間。除了物理實現以外,網絡和總線是非常相似的。 

    交換架構 

    交叉交換及其更通用的同類技術--交換架構,比標準總線即簡單又復雜。交叉交換提供多主機和多從機芯片或者系統多點對多點會話機制。與總線和網絡不同,交叉和交換架構支持多路同時會話。除了每次只有一個主機進行會話的情況之外,這種結構大大提高了帶寬。在這種情況下,傳統的總線或者網絡能正常工作。在更常見的多主機隨機發起會話(一般是同時的)的情況下,交換架構(如圖2所示)會產生更好的結果。 

    圖2 交換架構拓撲(略) 

    多主機的情況非常普遍,甚至是在只有一個微處理器或者一個處理器內核的系統中。據Gartner/Dataquest的研究,芯片系統(SoC)中的處理器數量平均大概是3.5個,并且這一數字還在增長。換句話說,大部分芯片都含有多個處理器,其中“處理器”被定義為執行軟件的RISC、CISC、視頻或者網絡處理器。 

    即使是只有一個微處理器的芯片也通常含有一個以上的處理器“內核”。Intel著名的Core 2 Duo以及類似的處理器在一個硬件芯片上含有兩個甚至更多的異類處理器。Freescale(Motorola)的雙處理器QUICC和PowerQUICC通信芯片已經推出了10余年的時間。網絡和通信市場無廠芯片公司在每一芯片系列中都推出了具有4個、10個甚至更多處理器的器件。絕非偶然,這些器件也在內部采用了交換架構。 

    交叉交換之所以這樣命名,是因為它以前采用的是互相垂直放置的交叉金屬條結構。垂直的開關或者繼電器對之間建立了電氣連接。由于X方向的任何金屬條都能夠連接到Y方向的金屬條,因此,有時候也稱其為X-Y交叉。交叉交換結構在電信設備上非常普遍,在實現任意連接上發揮了重要作用。 

    交換架構不但提高了系統總帶寬,而且還避免了仲裁延時以及總線開銷問題。總線是單一資源,而交換架構是共享的。只要兩個主機沒有同時尋址同一個從機(反之亦然),就可以同時進行任意數量的會話。當出現資源沖突時,交換架構仲裁的作用和其他共享資源的情況一樣;除非出現沖突,否則不需要進行仲裁。 

    因此,交換架構具有更好的帶寬和更低的延時。在很多高性能設計中,處理器提取代碼、存儲數據,或者接收數據,并不希望出現共享總線中的時間代價問題,因此,存儲器延時非常重要。當多個主機能夠同時尋址多個從機時,也會提高總帶寬(即,主機/從機同時會話的數量)。 

    Amdahl定律闡述了存儲器帶寬必須隨著處理器數量的增加而增大。而半導體存儲器帶寬的發展跟不上處理器對帶寬需求的增長。存儲器成為阻礙性能的瓶頸,這種不平衡導致產生了各種工作方式,包括多級緩沖、寫數據通路、可寫代碼存儲,以及不同的指令集等。每一個芯片設計人員的首要工作就是如何打開這一存儲器瓶頸。繼續挖掘共享總線會適得其反。 


    實現互聯 

    和其他互聯一樣,交換架構在實現時 也必須注意底層硬件的性能。早期的交叉交換結構的確如此。現在的交換架構使用半導體邏輯門和金屬布線層。和總線相比,交換架構不依靠金屬層,而是更多的采用邏輯門。因此,這種結構不太適合應用在電路板上,而是等含有豐富邏輯資源的芯片的理想選擇。“硬”ASIC處于二者之間,它傾向于采用大量金屬層,而邏輯相對較少,除非專門針對交換架構進行設計,一般情況下,它更適合總線。 

    在有大量邏輯的FPGA中,交換架構應用得非常好,它發揮FPGA的性能,也符合業界發展趨勢。設計人員轉向“軟”硬件(知識產權),交換架構本質上是“軟”的,能夠和設計中的其他軟很好地協同工作。而總線,被定義得非常嚴密,控制得非常嚴格。因此,交換架構更容易綜合,更適應現有的(以及未來的)功能模塊。 

    如果沒有固定總線接口,功能模塊或者組件能夠更快地發展,不會受到總線的限制。這對設計人員、IP用戶以及IP本身都是好消息。交換架構成為“IP基礎”,而替代總線;它以更靈活的方式連接芯片的各個區域。 

    交換架構還利用了EDA工具取得的進展。它是更抽象的互聯形式,比Verilog總線模型的抽象級更高。互聯的細節被提取出來,設計人員可以把精力放在數據流和體系結構上,而不是總線時序和延時。 


    提高抽象級 

    軟件開發人員已經習慣于在工具中詳細說明自己的設計構思。他們采用的方式從二進制表示,到指令助記符,直到C和Java等高級語言。開發人員并不用指定每個變量存儲在什么地方,以及是怎么安排的,而是由編譯器完成這一工作。提取出細節后,開發人員能夠集中精力處理流控制、計算和邏輯,而編譯器正確地實現所有的變量、寄存器、算法操作、存儲等等。C語言開發人員甚至不用知道“字”是16位還是64位,這并不重要。 

    良好的硬件開發工具,例如較好的編譯器,通過很少的操作就可以把設計人員的想法在目標硬件中實現。和編譯器一樣,開發工具掌握了底層平臺的結構和資源。這樣,工具完成了兩項任務:幫助設計人員從細節中解脫出來,比設計人員更好地實現映射。過多的指定或者約束通常會導致較差的硬件(或者軟件),因為這樣會使編譯器無法進行自己的工作。良好的編譯器不僅僅是翻譯,而是起到了優化的功能。

    在今天的環境中,總線規范過多地約束了硬件工具能夠提供的“解決方案空間”。讓工具自由地發揮底層硬件解決方案的功能不僅使工作更容易,而且更好。特別是在FPGA邏輯豐富的環境中,總線無助于完善器件的功能。互聯可能不是很理想,但總是必須的。無論是采用總線、交換架構、網絡還是其他拓撲結構,這些都是設計芯片其他部分(也可能是系統的其他部分)的基礎。如果做的好,它可以幫助實現系統的很多目標。做的不好(或者不合適),設計人員必須應對各種限制,而無法高效工作。 


    解決方法 

    Altera SOPC Builder軟件提供的解決方案自動處理IP和設計模塊的,滿足了設計人員在更高抽象層工作的需求。SOPC Builder支持具有流和存儲器映射接口的組件,提供的系統設計互聯架構能夠實現設計中數據面和控制面的集成。互聯架構支持從機側仲裁,實現多主機總線同時訪問,提高了主機側仲裁方案的系統性能。 

    它還可以進一步管理好拓撲,提高橋接性能。設計人員或者系統規劃人員從對性能要求較低的域中分離出性能和吞吐量更好的系統域。SOPC Builder的流接口為數據包處理、流復用和DSP數據等寬帶應用提供了大吞吐量、低延時互聯。存儲器映射系統互聯架構使用最少的FPGA邏輯資源來支持數據通路復用、地址解碼、等待狀態生成,外設地址對齊(包括支持自然或者動態總線寬度調整),以及中斷優先級分配等。圖3所示為SOPC Builder系統互聯體系結構,它和圖2中的交換架構相一致。 

    圖3 SOPC Builder系統互連架構(略)

    每次當您在系統中加入新組件或者改變外設訪問優先級時,SOPC Builder都能夠自動生成新的最佳系統互聯架構。由于SOPC Builder自動生成了系統互聯架構,您可以迅速方便地對系統進行修改,以提高性能或者增加功能。Altera ? Quartus ? II設計軟件訂購版和網絡版均提供SOPC Builder。 


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 吉林省| 柳江县| 贵定县| 股票| 九龙坡区| 湘西| 尤溪县| 屯留县| 威海市| 贵德县| 昌图县| 五河县| 山丹县| 南郑县| 辰溪县| 潞城市| 阳泉市| 原阳县| 桐城市| 沐川县| 板桥市| 巩义市| 台山市| 灵武市| 安塞县| 汉川市| 昂仁县| 石棉县| 四会市| 牡丹江市| 凤台县| 九龙坡区| 博湖县| 湖州市| 大姚县| 广昌县| 鹰潭市| 娄烦县| 岳普湖县| 宜丰县| 金寨县|