FPGA學習筆記(一) 初識FPGA

2022-03-17 20:50:56 字數 1802 閱讀 5166

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

fpga(field-programmable gate array,現場可程式設計門陣列),正如其名,fpga內部有大量的可程式設計邏輯功能塊,使用verilog hdl(硬體描述語言)實現設計。

玩過微控制器的小夥伴剛接觸fpga可能會有點困惑,其實fpga與微控制器最大的區別就在於:fpga設計的是電路,微控制器設計的是程式。微控制器只有乙個cpu在工作時鐘的驅動下順序的執行程式(取指、解碼、執行),所以工作速度較慢,而fpga設計出來的是整個電路邏輯系統,根本不需要微控制器這麼複雜,所以fpga的工作速度自然很快,在兩者各有各的優勢下,微控制器主要用於進行相關控制,fpga多用於訊號處理相關。

典型的fpga原理和結構如下圖(注:以cyclone iv e fpga晶元為例),主要包括三類基本資源

是實現使用者功能的基本單元,多個邏輯功能塊通常規則地排成乙個陣列結構,分布於整個晶元;

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

完成晶元內部邏輯與外部管腳之間的介面,圍繞在邏輯單元陣列四周;

fpga從簡單的邏輯粘合,發展到現在的可程式設計片上系統,fpga廠家也在基本的fpga架構上加入了一些擴充套件資源,比如時鐘管理單元(pll、dll)、嵌入式儲存器單元和硬體乘法器單元,dsp單元一些高階器件還加入了高速收發器、甚至嵌入式硬核處理器,讓fpga的應用領域更廣闊,cyclone iv e器件加入的擴充套件資源

有:模擬電路,將輸入的週期訊號進行分頻和倍頻,或改變相位,輸出乙個或多個穩定的時鐘訊號;

嵌入式塊ram,容量大小9kbit,這些儲存器可以被配置成單埠、簡單雙埠、真雙埠ram、fifo緩衝器、rom

快速進行運算

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,兩塊都很精緻有木有~

FPGA學習瑣碎筆記(一)

一 fpga硬體組成 1 cpu 處理器 fpga的高階處理器主要由xilinx 被amd收購 與altera 被intel收購 兩家製作。fpga的低端處理器製造廠商有紫光 復旦微 高雲等。其最小資源為clb,clb的數量決定了該fpga晶元的資源大小。其外部晶振輸入頻率一般為50mhz,經過倍頻...

fpga入門學習之一 fpga簡介

fpga簡介 說到底,fpga就是乙個能夠按照自己的意願去實現一些功能模組的這麼一種晶元。那問題就來啦,dsp也好 微控制器也好都能夠實現你說的這些功能,那我為什麼要選擇fpga呢?筆者認為選擇fpga的原因就在於,我如果想實現乙個20個串列埠收發資料的模組怎麼辦,我如果想實現乙個幾百兆時鐘的設計怎...

FPGA學習筆記1

fp1 fopen c fc addr.coe wt fprintf fp1,memory initialization radix 10 n 進製數 fprintf fp1,memory initialization vector n for i 1 length fc addr fprintf ...