FPGA硬件資源結構

前言

FPGA(Flield Programmable Gate Array)作爲一種可編程的芯片,其結構和開發方式都與傳統的MCU或DSP不同。MCU或DSP的設計,是主要進行軟件程序設計,用戶主要使用C語言完成各種控制和算法的實現,各種功能是在CPU的控制下按照順序依次來實現的。而FPGA設計,實質上是電路設計,是在一個可以現場編程的通用邏輯器件中去搭建各種具有一定功能的邏輯電路,各個邏輯電路之間是各自獨立的,能夠並行執行。同時各個功能電路之間又通過一定的控制和握手信號相互協調。所以,在開發和使用FPGA之前,需要對其有一定充分細緻的認識,包括對其硬件資源結構,硬件電路設計和開發環境等。

硬件資源結構概述

典型的FPGA通常包含三類基本資源:可編程邏輯功能塊,可編程I/O塊和佈線資源。

在這裏插入圖片描述

1. 可編程邏輯功能塊(CLB模塊)

是實現用戶功能的基本單元,多個邏輯功能塊通常規則的排成一個陣列結構,分佈於整個芯片。一個CLB模塊通常包含若干個基本的查找表LUT,寄存器和多路選擇器資源,因此FPGA的邏輯表達是基於LUT的。

CLB在FPGA中資源最爲豐富,由兩個SLICE構成,其中SLICE又分爲SLICEL(L:Logic)和SLICEM(M:Memory),因此CLB可分爲CLBLL和CLBLM兩類,其主要區別是SLICEM中含有能夠把LUT資源重新整合爲RAM或ROM的邏輯,這就是所謂的Distributed Ram,而SLICEL不具備該項功能,所以SLICEM比SLICEL多了存儲器和移位功能。

在這裏插入圖片描述

SLICEL和SLICEM內部包含4個6輸入查找表(LUT6),3個數據選擇器(MUX),1個進位鏈(carry chain)和8個觸發器(Flip-Flop)。

在這裏插入圖片描述

2. 可編程I/O塊(IOB)

完成芯片內部邏輯與外部管腳之間的接口,圍繞在邏輯單元陣列的四周,完成不同電氣特性下對輸入/輸出信號的驅動和匹配要求,I/O按組分類,每組都能夠獨立地支持不同的I/O標準,每個組的接口標準由其接口電壓VCCO決定的,一個組只能有一種VCCO,只有相同電氣標準的端口才能連接到一起,VCCO電壓相同是接口標準的基本條件。

在這裏插入圖片描述

3. 佈線資源

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

實際使用中FPGA器件都會在典型的架構上加入一些其他的常用資源,如時鐘管理單元(PLL,DLL),嵌入式存儲器單元和硬件乘法器單元,部分器件還加入了高速收發器甚至是嵌入式硬核處理器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章