FPGA學習筆記(一)——初識FPGA


###### 【該隨筆中部分內容轉載自小梅哥】       #########

  FPGA(Field-Programmable Gate Array,現場可編程門陣列),正如其名,FPGA內部有大量的可編程邏輯功能塊,使用verilog HDL(硬件描述語言)實現設計。

  玩過單片機的小伙伴剛接觸FPGA可能會有點困惑,其實FPGA與單片機最大的區別就在於:FPGA設計的是電路,單片機設計的是程序。單片機只有一個CPU在工作時鍾的驅動下順序的執行程序(取指、譯碼、執行),所以工作速度較慢,而FPGA設計出來的是整個電路邏輯系統,根本不需要單片機這么復雜,所以FPGA的工作速度自然很快,在兩者各有各的優勢下,單片機主要用於進行相關控制,FPGA多用於信號處理相關。

  典型的FPGA原理和結構如下圖(注:以Cyclone IV E FPGA芯片為例),主要包括三類基本資源

          

  • 可編程邏輯功能塊(Altera-LE(Logic Element) / Xlinx-Slice)
                是實現用戶功能的基本單元,多個邏輯功能塊通常規則地排成一個陣列結構,分布於整個芯片;
  • 可編程內部互連資源

    包括各種長度的連線線段和一些可編程連接開關,它們將各個可編程邏輯塊或輸入/輸出塊連接起來,構成特定功能的電路。用戶可以通過編程決定每個單元的功能以及它們的互連關系,從而實現所需的邏輯功能。

  • 可編程輸入/輸出(I/O)塊

     完成芯片內部邏輯與外部管腳之間的接口,圍繞在邏輯單元陣列四周;

  

  FPGA從簡單的邏輯粘合,發展到現在的可編程片上系統,FPGA廠家也在基本的FPGA架構上加入了一些擴展資源,比如時鍾管理單元(PLL、DLL)、嵌入式存儲器單元和硬件乘法器單元,DSP單元一些高端器件還加入了高速收發器、甚至嵌入式硬核處理器,讓FPGA的應用領域更廣闊,Cyclone IV E器件加入的擴展資源有:

  • PLL鎖相環

    模擬電路,將輸入的周期信號進行分頻和倍頻,或改變相位,輸出一個或多個穩定的時鍾信號;

  • M9K存儲器

    嵌入式塊RAM,容量大小9Kbit,這些存儲器可以被配置成單端口、簡單雙端口、真雙端口RAM、FIFO緩沖器、ROM

  • 18*18硬件乘法器

    快速進行運算

 

  FPGA中除了三類基本資源和一些擴展資源外,由圖中可以看到,FPGA中資源分布也是很精致的:

    1、邏輯陣列和M9K存儲器交替分布,這樣做的優點是縮短數據的傳輸路徑,以獲得更優的時序性能;

    2、IOEs和PLL單元分布在器件的四周,數據流一般從左側IO流入,經過處理、運算、存儲,通過右側IO流出,控制信號通過上下IO輸入輸出;有時候系統需要高質量時鍾(比如軟核所需工作時鍾)通常由PLL單元產生,而這些分布在四周的PLL可以最短時鍾源產生工作時鍾,另外,PLL屬於模擬電路,放在周圍更利於和生產;

  下面具體了解下兩種主流FPGA的資源情況:

  Altera Cyclone IV E系列FPGA常見硬件資源詳情列表:

 

 

  Xilinx 7 系列FPGA 硬件資源詳情:

  

   最后,放上兩張開發板圖片,一塊是小梅哥基於Cyclone IV EP4CE10的AC620,一塊是Digilent基於Xilinx Artix7的Basys3,兩塊都很精致有木有~

  

  

 

 

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM