日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FPGA是如何搭建的

發布時間:2025/3/13 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FPGA是如何搭建的 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

FPGA是如何搭建的

前文介紹了FPGA的可編程技術,知道了現在大部分的FPGA是采用的SRAM工藝構成可編程開關,內部集成了百萬甚至千萬個可編程的CMOS門電路,正如FPGA的名字——現場可編程門陣列。但是,FPGA并非單純的由“門”形成的結構,下文將詳細介紹構成FPGA的多種結構以及這些結構如何相互合作實現特定功能。

傳送門:FPGA可編程技術

一. FPGA的結構劃分

FPGA大致由三大部分構成:

  • 實現邏輯電路的邏輯要素 —— 邏輯塊(Logic Block,LB)。此要素以觸發器和門電路為底層單元,這些觸發器和門電路組成多種邏輯功能塊,如:乘積項(實現乘法和加法功能)、查找表(實現任意組合邏輯)和數據選擇器(MUX)等。這些邏輯塊可相互組合實現各種邏輯。
  • 和外部信號連接的輸入/輸出要素 —— IO塊(Input/Output Block,IOB)。此要素的功能是連接IO引腳和內部布線要素,其中通常包含上拉、下拉、輸入/輸出的方向和極性、轉換速率(slew rate)、開漏(open drain)等控制電路,以及觸發器等數據存儲電路。現在的FPGA通常支持多種規格的輸入/輸出,如:LVTTL、PCI、PCI express、SSTL等單端標準IO 和 LVDA等差分標準IO。
  • 連接前兩種要素的布線要素 —— 布線要素,包括布線通道開關塊(Switch Block,SB)和 連接塊(Connection Block,CB)。用于邏輯塊的互聯或是邏輯塊與IO塊的連接。除了上面所展示的島型構造外,還有多層構造、H-tree構造等多種類型。
  • 下圖展示了一種基本的島型(island style)FPGA結構,可以看到FPGA的三種基本要素是如何排布的。

    這三種要素可組合實現任意邏輯電路,但實際FPGA中為了更方便更可靠的實現某些特定功能還會加入一些必要的電路,例如時鐘樹、配置/掃描鏈(configuration chain)、測試電路等。現在的FPGA還會在內部集成處理器(如ARM核/DSP)、塊存儲器(BRAM)、乘法器、生成時鐘用的PLL或DLL等專用硬邏輯電路來提高性能。

    下圖展示了一種帶有存儲器塊和乘法器塊的島型FPGA結構。其中,相鄰的邏輯塊、連接塊、開關塊組成一個可重復邏輯塊,如圖中左上角紅色框所示。這些可重復邏輯呈陣列排列,中間再嵌入一些專用硬核電路,最終形成島型FPGA。

    注意這里對FPGA內嵌的存儲器塊和乘法器塊的稱呼——專用硬邏輯電路。它不同于經常說的硬核,FPGA里的硬核專指硬核處理器,如ZYNQ芯片內部集成的兩個Cortex-A9 ARM處理器核心。

    相鄰的邏輯塊、開關塊和連接塊組成一個可重復邏輯模塊,然后模塊呈陣列形排列最終形成島形FPGA。下圖展示了帶有乘法器塊和存儲器塊的島形FPGA結構。

    二. 邏輯塊

    邏輯塊LB是實現任意邏輯的核心。FPGA供應商對各自FPGA芯片中的邏輯塊結構有不同的稱呼,Xilinx公司稱之為CLB(Configurable Logic Block,可配置邏輯塊),而Altera公司稱之為LAB(Logic Array Block,邏輯陣列塊)。雖然稱呼不同,但不同公司LB的內部構成和功能是類似的。

    在今天的復雜CAD工具出現之前,工程師門還在手動處理電路,那時基于MUX的FPGA結構能達到最好的結果,但隨著FPGA集成度的快速增加,人工手工布局布線已不可能,且MUX結構并沒有提供高速進位邏輯鏈,這導致MUX用作算術運算時性能不佳。基于以上的兩個原因,現在的FPGA基本都放棄了MUX結構而使用基于LUT(Look-Up Table,查找表)的結構。

    2.1 基本邏輯單元

    BLE(Basic Logic Element,基本邏輯單元)是構成邏輯塊的基本要素。BLE由實現組合電路的LUT,實現時序電路的觸發器 以及 MUX構成。BLE的內部組成如下圖所示。MUX的控制端M0決定直接輸出LUT的值還是輸出FF中存儲的值。

    從上圖可見,4-LUT(4輸入查找表)是組成BLE的主要部分,它可以實現4個輸入的任意組合邏輯,但當要實現更多輸入的邏輯時,有兩個辦法是能輕松想到的,一種是多個4-LUT組合;另一種是使用一個k-LUT。這里就涉及到一個問題,到底幾輸入的LUT才是合適的呢

    2.2 幾輸入查找表是最優解

    FPGA的設計所關注的兩個最重要的問題是面積和速度。

    先說面積,FPGA的總面積 = 邏輯塊數 × 單個可重復邏輯塊面積。k-LUT直接影響每個邏輯塊的大小,k越大,每個邏輯塊功能越強,實現電路使用的邏輯塊數越少,但是邏輯塊自身的面積會增大,因此每個可重復邏輯模塊的面積會增大。所以,從FPGA面積的角度看,k的選擇需要權衡。

    再說速度,FPGA的延遲 = 邏輯塊互聯延遲 + 邏輯塊內部延遲。k越大,實現電路使用的邏輯塊數量越小,那么互聯次數越小,互聯延遲越小,但邏輯塊內部的延遲越大。

    因此,LUT的輸入數量與FPGA的面積、延遲均有著密切關系。

    FPGA的發展過程中,使用過3-LUT,4-LUT,5-LUT,6-LUT,之前業內的主流意見認為4-LUT最為高效。但后來關于LUT輸入數與面積和延遲的研究表明,6-LUT才是最優解,相關結果如下圖。因此,現在的FPGA都傾向于采用6-LUT。

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Qe12UVmX-1602468990606)(D:\OneDrive\圖片\我的博客圖片\FPGA\FPGA原理與結構\FPGA原理與結構-查找表輸入數與面積和延遲的關系-202010121008.png#pic_center)]

    2.3 自適應查找表

    需要注意的是,6-LUT的結構在實現5輸入邏輯時,有一半的配置內存是閑置的。邏輯輸入數越少,資源浪費的問題越嚴重,比如6-LUT實現2輸入邏輯時就有93%的配置內存閑置。這是造成FPGA資源使用率低的主要原因之一。如果6-LUT結構是可拆分的,當實現2輸入邏輯時拆分為 2-LUT + 4-LUT;當實現3輸入邏輯時拆分為兩個3-LUT,這種可拆分結構的LUT顯然可以改善資源浪費的問題。這種可拆分的LUT被稱為自適應查找表(adaptive LUT)。Altera公司的Stratix II 和 Xilinx公司的 Virtex 5 都采用了自適應LUT。

    三. 布線要素

    布線要素指的是FPGA各個邏輯塊之間,以及邏輯塊與IO塊之間的連接線路。它包含布線通道、開關塊和連接塊。按照布線要素的拓撲結構可分為以下四類:

  • 完全連接型
  • 一次元陣列型
  • 層次型
  • 二次元陣列型(或者說 島型)
  • 隨著FPGA的發展,因為效率、制程、工藝、性能等方面的原因,前三種連接線路結構已經不再使用了,目前,主流的FPGA的內部線路的連接方式是是島型,或者說目前的FPGA都是島型FPGA。

    3.1 島型FPGA詳細布線架構

    布線通道中連線的數量定義為通道寬度W。

    連接邏輯塊和布線通道的連接塊(CB)有輸入和輸出兩種,對應的參數是輸入自由度Fc.in 和 輸出自由度 Fc.out

    輸入自由度 = 輸入連接點數量 / W,下圖的 Fc.in = 2 / 4

    輸出自由度 = 輸出連接點數量 / W,下圖的 Fc.out = 1 / 4

    縱向和橫向布線通道的交叉處是開關塊(SB),開關塊的自由度Fs,下圖所示的開關塊每個輸出都可以從來自三個方向的輸入中選擇,所以開關自由度是3。

    布線的自由度由連接自由度和開關自由度共同決定,自由度越高意味著布線越靈活。但是,布線自由度和性能間存在著復雜的權衡,如果為提高自由度而增加開關數量,面積和延遲會惡化;如果減小開關數量,布線資源會減少,更可能因資源不足導致布線失敗。

    3.2 布線線段的長度

    FPGA的布線通道中,同時存在短距離、中距離、長距離等不同長度的布線線段。這里的布線線段長度指的是連線所跨越的邏輯塊的數量,如下圖,只跨越一個邏輯塊的長度為1(單倍線),同理,還有長度為2的雙倍線,長度為4的四倍線。此外,一些FPGA上還有橫跨整個器件的長距離連線,稱為長線。

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ALwrUe8i-1602468990611)(C:\Users\xu\AppData\Roaming\Typora\typora-user-images\image-20200930153714204.png#pic_center)]

    3.3 單向連線與雙向連線

    傳輸信號的連接線分兩種:雙向連線和單向連線。

    下圖(a)所示為雙向連線,基于雙向連線的結構可以減少布線通道中連線的數量,但總有一個方向的開關會閑置,并且會增加連線電容影響延遲。

    下圖(b)所示為單向連線,基于單向連線的結構布線數量是雙向連線的兩倍,但開關不會閑置,且連線電容小。

    現在的FPGA制程發展很快。芯片內部金屬層數增長,可以實現更多的連線,再從設計難度上考慮,FPGA正從使用雙向連線向單向連線轉變。

    3.4 開關塊

    開關塊由可編程開關構成,它的功能是控制布線路徑。按拓撲類型分,開關塊可分為三種:

  • 不相交(Disjoint)型
  • 通用(Universal)型
  • 威爾頓(Wilton)型
  • 下圖展示了通道寬度W=4時的三種開關塊的拓撲結構。交叉點處的白色圓點代表此處有可編程開關。所有的開關塊都有3條連接路徑可以選擇,如下圖左中不相交型 L0 可以與 T0、B0 或 R0 連接。所以開關塊的自由度是3。

    3.4.1 不相交型開關塊

    Xilinx公司的XC4000系列使用的是不相交型開關塊,故這類開關塊又被稱為Xilinx型開關塊。不相交型連接結構較為簡單,只有相同序號的線道可以互聯,即標號為i的線道自能連到其它標號也為i的線道上。也就是說,如果線網中的一條線道用線道i來實現,線網中的其他線道也必須用線道i來實現。如果線道i被其他線網占用,那么這個連接不能完成。因此,不相交型開關塊將整個布線通道分為W(通道寬度)個子集,各子集之間不互通,降低了可布線性。

    下圖展示了通道寬度W=5時,不相交開關塊的連接圖,開關塊由6個開關共同決定,因此開關總數為6W。

    3.4.2 通用型開關塊

    通用開關塊兩個成對的線道可以互聯,如上圖線道0和3,線道1和2分別成對。顯然,只有通道寬度W為偶數時才能兩兩成對,當W為奇數時,最后的線道W-1無法成對,就采取和不相干型開關塊一樣的連接方法。從上圖中可以看到,線道0可以連到相鄰通道的線道0或者線道3,如果線道0被其它節點占用了,可以利用線道3完成必要的連接。顯然,對比,對比不相交型開關塊,通用開關塊的可布線性有所提高。

    另外,通用開關塊自能對應單倍線,無法應用到其它長度的布線上。

    3.4.3 威爾頓型開關塊

    威爾頓型開關塊比前兩個拓撲的可布線性更高。評價不同類型開關塊性能的重要指標是實現相同功能時,使用的布線面積和布線延遲,布線面積越小越好,布線延遲越低越好。有研究指出,威爾頓型開關塊具有最小的布線面積,而三種拓撲的布線延遲相當。因此,威爾頓型開關塊的性能最優。另外,開關塊類型對FPGA的延時特性影響很小。

    3.5 連接塊

    連接塊也由可編程開關構成,其功能是連接布線通道和邏輯塊(或是專用硬核電路)。當通道寬度很大時,如果使用全交叉開關矩陣來實現,可編程開關的數量會很多,連接塊的面積會非常大。實際中的連接塊使用的是節省掉一些開關的稀疏開關矩陣。

    下圖展示了一個6輸入邏輯塊,通道寬度W=28的連接塊的開關分布示例。示例中布線通道全部由單向連線組成,其中正向連線14根(F0 ~ F13),反向連線14根(B0 ~ B13)。這28根連線和邏輯塊的6個輸入(In0 ~ In5)通過連接塊相連。邏輯塊的每個輸入都有14根連線與之相連,因此輸入自由度 = 14 / 28 = 0.5。

    四. IO塊

    IO塊負責器件的IO引腳與邏輯塊之間的接口部分,其功能包括:輸入/輸出緩沖、輸出驅動、信號方向控制、高阻抗控制等,可以使輸入/輸出信號按指定的方式在邏輯塊和IO引腳間傳輸。IO塊里還有觸發器,可以鎖存輸入/輸出信號。

    下圖展示的是Xilinx公司XC4000系列IO塊的內部結構,一般FPGA的IO塊結構也與之基本相同,其主要特征如下:

    • 輸出部分有上拉和下拉電阻,可以讓輸出鎖定為0或者1。
    • 輸出使能信號OE控制輸出緩沖器。
    • 輸入/輸出各自都有觸發器,可用來調整信號延遲。
    • 輸出緩沖器的轉換速率(slew rate)可調。
    • 輸人緩沖器閾值符合TTL或CMOS標準。
    • MUX6帶有延時電路,用來保證輸入的保持時間。

    IO塊負責FPGA與外部的電氣適配,要使FPGA能對應各種輸出標準和輸出電壓。下圖所示的是Inter公司的Stratix V 的IO規格。可見IO口支持包括高速差分信號(LVDS)在內的多種IO規格和輸出電壓。

    隨著IO規格的種類不斷增多,很難讓每個獨立IO都能應對所有標準,所以,現在的FPGA通常將多個IO劃為一組,稱為IO分組,然后以IO分組為單位進行功能劃分和管理。每個分組內共享電源電壓和參考信號,這樣,多個分組就能應對更多的IO規格,用戶可以根據需要使用哪個IO組的哪個IO引腳。

    五. 專用硬邏輯電路

    現在的FPGA內部基本都嵌入有多個不同功能的專用硬核電路。像DSP塊,ARM塊,存儲器塊,時鐘塊等。這里只簡單介紹FPGA的組成,所以這部分先略過不談,后續會更新一篇或多篇博客來詳細說明這些專用硬核電路。

    六. 總結

    FPGA由邏輯塊、IO塊和布線要素這三大部分搭建出基本結構,為追求更高性能,可能會嵌入幾種專用硬核電路。現在的FPGA基本都是島型架構,IO塊在FPGA四周外圍,邏輯塊在內部,布線通道水平豎直交叉排布,圍繞這各個像島嶼一樣的邏輯塊。

    七. 參考

  • 《FPGA原理與結構》第三章 日本 田野英晴主編, 趙謙譯
  • 高海霞. 基于SRAM技術的現場可編程門陣列器件設計技術研究[D].西安電子科技大學,2005.
  • 總結

    以上是生活随笔為你收集整理的FPGA是如何搭建的的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 96久久| 四虎影视成人永久免费观看亚洲欧美 | 一区二区乱码 | 夜夜嗨一区二区三区 | 毛片在线播放视频 | 国模大胆一区二区三区 | 成人免费精品视频 | 国产嫩草影院久久久 | 国产欧美精品一区 | 蜜臀久久99精品久久久久久宅男 | 天天射夜夜爽 | 性高潮视频在线观看 | 成人毛片在线精品国产 | 嫩草视频入口 | 欧美成人a交片免费看 | 成人一区二区三区 | 免费a在线 | 人人艹视频| 欧美日韩国产精品一区二区 | a毛片| 国产一区二区三区色淫影院 | 高清av一区二区三区 | 亚洲经典一区 | 国产成人精品一区二区三区网站观看 | 色大师av一区二区三区 | 网站一级片| 色姑娘综合网 | 国产一级色 | av网站一区 | 国产精品久久一区 | 手机看片国产 | 免费视频国产 | 性高潮视频在线观看 | 99这里有精品视频 | 秋霞av一区二区三区 | 黄色小视频免费看 | 国产91清纯白嫩初高中在线观看 | 国产二区三区视频 | 欧美成人性生活视频 | 樱花视频在线免费观看 | 原神淫辱系列同人h | 免费播放毛片精品视频 | 成人免费视屏 | 中文字幕91视频 | 免费观看的av | 精品成人一区二区三区 | 国产三级久久久久 | 99福利影院 | 91精品婷婷国产综合久久竹菊 | 青青草精品在线视频 | www.97av.com| 亚洲一区二区中文字幕 | 久月婷婷 | 一区二区视频 | 精品人妻一区二区色欲产成人 | 亚洲综合站 | 日韩在线观看视频网站 | 欧美第一网站 | 精品国产中文字幕 | 99国产精品免费 | 91色片| 美女扒开腿让男生桶 | 一级黄色片免费看 | 91传媒在线播放 | 香蕉传媒 | 免费观看视频一区二区 | 精品国产一区二区三区噜噜噜 | 经典三级久久 | 高清日韩一区 | 日本三级中文 | 日本三级视频 | av制服丝袜| 黑人玩弄人妻一区二区绿帽子 | 91精品国产色综合久久不卡电影 | 少妇人妻在线视频 | 可以免费看污视频的网站 | 少妇天堂网 | 天堂在线亚洲 | 五个女闺蜜把我玩到尿失禁 | 91免费高清 | 女教师痴汉调教hd中字 | 欧美性视频在线 | 国产视频三区 | 91亚洲精品久久久久久久久久久久 | 久久美女av| 国产原创视频在线 | 97自拍网 | 法国少妇愉情理伦片 | 中日韩中文字幕 | 成人公开视频 | 丰满人妻一区二区三区性色 | 免费在线观看的av | 国产精品午夜在线 | 丁香花高清在线观看完整动漫 | 欧美男女交配 | 午夜寂寞剧场 | 香蕉视频一级片 | 俄罗斯女人裸体性做爰 | 久久久久久草 |