<td id="muxoi"><ruby id="muxoi"></ruby></td>
    <pre id="muxoi"></pre><table id="muxoi"></table>

      <p id="muxoi"><strong id="muxoi"><small id="muxoi"></small></strong></p>
      <td id="muxoi"><ruby id="muxoi"></ruby></td>

      集成電路技術分享

       找回密碼
       我要注冊

      QQ登錄

      只需一步,快速開始

      搜索
      查看: 1112|回復: 4
      打印 上一主題 下一主題

      你必須知道的FPGA硬件屬性

      [復制鏈接]
      跳轉到指定樓層
      1#
      月影星痕 發表于 2019-7-7 13:48:10 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
      事實上,MCU對有些任務來說是很適合的,但對其它一些任務來說可能做的并不好。舉例來說,當需要并行執行大量計算任務時,FPGA可能會讓你喜出望外。

      如果我們進一步放大,我們可以看到,每個可編程模塊都包含有許多數字功能。在這個例子中,我們可以見到一個三輸入的查找表(LUT)、一個復用器和一個觸發器,但重要的是我們要認識到,這些功能的數量和類型對不同系列的FPGA來說是會變化的。

      觸發器可以被配置(編程)為寄存器或鎖存器;復用器可以被配置為選擇一個到邏輯塊的輸入或LUT的輸出;LUT可以被配置為代表任何所要求的邏輯功能。在實際應用中,即使最簡單的FPGA都會使用四輸入LUT,而一些更大更復雜的器件甚至會宣稱使用六、七或八輸入的LUT,但為了簡單起見,我們還是討論三輸入版本。



      我們會在以后的文章中討論各種類型的FPGA實現技術,F在我們只需要知道,FPGA內部的可編程單元可以用反熔絲、閃存單元或SRAM內存單元來實現。先讓我們看一個用反熔絲技術創建的FPGA吧。這是一種一次性可編程(OTP)技術,這意味著一旦你編程了這個FPGA,它將永遠保持這個狀態而不再改變。

      對基于反熔絲技術的FPGA來說,編程器件相當于通過“硬件連線”將第一組復用器的輸入連接到實現目標邏輯功能所需的正確0或1值。我們使用這個LUT實現了前面那張圖隱含的公式y=(a & b)|c。在實際應用中,復用器可以用場效應管的分支“樹”來實現,但我們在這里真的不用擔心最底層的實現細節。另外一種非常常見的FPGA實現技術是使用SRAM配置單元。同樣,我們會在以后的文章中討論更多的細節。這里我們所要知道的僅是當電路板第一次上電時,基于SRAM的FPGA會加載配置信息(我們可以把這個過程想像為器件的編程)。

      我沒有顯示0和1被加載進SRAM單元的那種機制,因為我不想讓問題變得復雜。出于這次討論的目的,我們真的無需擔心這種“魔術”是如何發生的。我在這里唯一要提的事(給你考慮的空間)是—使用一種被稱為部分再配置的技術—FPGA的一部分可以發起對另一部分進行再配置(當然反過來也行)。對于具有微控制器和/或軟件背景的讀者來說,我們可以將這種技術想象為相當于自我修改代碼的硬件。這意味著這種技術是非常非常強大的,但也會帶來很難隔離和調試的問題。

      FPGA器件還包含有通用的輸入/輸出(GPIO)引腳和焊盤。通過配置單元,FPGA器件內的互連部分可以被編程為這樣:將器件的主輸入連接到一個或多個可編程邏輯塊的輸入。任何邏輯塊的輸出也可以用來驅動任何其它邏輯塊的輸入和/或FPGA器件的主輸出。另外,GPIO引腳可以被配置為支持種類廣泛的I/O標準,包括電壓、終端阻抗、擺率等。



      世界上第一塊FPGA與本文中討論的架構非常類似。這塊FPGA就是賽靈思公司在1985年推出的XC2064(是用2um工藝節點制造的),它包含有8×8=64的邏輯塊陣列,每個邏輯塊包含一個四輸入LUT和其它一些簡單功能。從那以后,FPGA發展勢不可擋,正像我們看到的那樣,更為復雜的FPGA架構

      如果某個邏輯功能(比方說計數器)是用FPGA的可編程構造實現的,那么這個功能可以被說成“軟功能”。相比之下,如果某個功能是直接用芯片實現的,則被說成“硬功能”。(隨著這些功能變得越來越大越來越復雜,我們一般稱它們為內核)。軟內核的優勢在于,你可以讓它們做你想讓它們做的任何事。硬內核的優勢是它們占用較少的硅片面積,具有較高的性能,并且功耗較低。最優的解決方案是混合使用軟內核(用可編程構造實現)和硬內核(直接用硅片實現)。

      舉例來說,該器件可能包含數千個加法器、乘法器和數字信號處理(DSP)功能;數兆位的片上內存,大量的高速串行互連(SERDES)收發器模塊,以及眾多的其它功能。

      這是真正讓人興奮的事情,你可以用FPGA中的普通可編程構造做的事情之一是,使用其中的一部分實現一個或多個軟處理器內核。當然,你可以實現不同規模的處理器。舉例來說,你可以創建一個或多個8位的處理器,加上一個或多個16位或32位的軟處理器—所有處理器都在同一器件中。

      一種情形是軟件開發人員捕獲他們的代碼,在SoC FPGA的Cortex-A9處理器上運行這些代碼,然后通過分析識別任何可能嚴重影響性能并成為瓶頸的功能。這些功能隨后可能就轉交給硬件設計工程師用可編程構造來實現,它們(這些功能,不是設計工程師)將使用較低的時鐘頻率提供明顯更高的性能,而且功耗更低。
      2#
      zhangyukun 發表于 2019-7-8 09:01:46 | 只看該作者
      你必須知道的FPGA硬件屬性
      3#
      zxopenljx 發表于 2019-8-18 15:44:15 | 只看該作者
      你必須知道的FPGA硬件屬性
      4#
      zxopenljx 發表于 2023-3-23 17:48:53 | 只看該作者
      你必須知道的FPGA硬件屬性
      5#
      hellokity 發表于 2023-3-25 16:45:46 | 只看該作者
      你必須知道的FPGA硬件屬性
      您需要登錄后才可以回帖 登錄 | 我要注冊

      本版積分規則

      關閉

      站長推薦上一條 /1 下一條

      QQ|小黑屋|手機版|Archiver|集成電路技術分享 ( 京ICP備20003123號-1 )

      GMT+8, 2023-6-24 14:03 , Processed in 0.067350 second(s), 19 queries .

      Powered by Discuz! X3.4

      © 2001-2023 Discuz! Team.

      快速回復 返回頂部 返回列表