【基本知識】CLB、Slice、logic cell、LUT...


邏輯資源:

以Xilinx-SPARTAN6-XC6SLX25為例

 

 

 

 LC ---Logic Cell---邏輯單元

      首先介紹概念最簡單的邏輯單元,Logic Cell是Xilinx定義的一種標准,用於確定不同系列器件的“大小”。而在所有器件中,LC與LUT都有一個比例,但不同器件的LUT和FF搭配不一定相同,因此該比例往往會在數據手冊中給出。例如在SPANTAN-6的UG384中就給出:

 

  此外可以看看社區的回答: https://forums.xilinx.com/t5/Virtex-Family-FPGAs-Archived/logic-cell-vs-CLB/td-p/743699 

 

CLB---Configurable Logic Block

       可配置邏輯塊,是實現時序電路與組合電路的重要邏輯資源。CLB由多個(一般為4個或2個SPANTAN-6,並行垂直列)相同的Slice和附加邏輯(算數和進位鏈)構成。每個CLB模塊不僅可以用於實現組合邏輯和時序邏輯,還可以配置為分布式RAM和分布式ROM。

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

SPARTAN-6中每一個CLB的資源如下:

LS---Logic Slice

       邏輯片,邏輯片由LUT、FF、各種邏輯(門陣列)組成。Slice有三種類型,分別是:SliceL(logic)與SliceM(memory)、SliceX。在每一列CLB中有兩列Slice,其中一列為SliceX,另一列M與L交替。他們特征/功能如下表。

 

       可以從表中看出就功能而言M>L>X。

       SliceM

       SliceM中的LUT可作為6輸入1輸出的LUT/相同5地址的雙5輸入2獨立輸出的LUT。同樣可配置為64位/雙32位(1個32位位移寄存器SRL32/2個可尋址的16位移寄存器SRL16s)的分布式RAM,在CLB中,每個LUT的輸出可以及存在FF內。

       簡言之,SliceM可以作為查找表、觸發器、寬位多路數據選擇器、進位邏輯、分布式RAM、移位寄存器等。

 

       SliceL

       查找表、觸發器、多路數據選擇器、進位邏輯。

 

 

 

 

       SliceX

       查找表、觸發器。

 

 

 

在SPANTAN-6中,一個Slice包含4個6輸入LUT和8個FF以及多種邏輯。並包含SliceM(1/4),SliceL(1/4),SliceX(1/2)。(1個LS包含6.4個LC,故3758*6.4=24051.2個LC。

       Q:Slice功能有哪些?

       可以布局布線、可以做運算、等等,SliceM還可做RAM和位移寄存器。

 

LUT---Look Up Table

       查找表是最FPGA中實現邏輯的基本單元,通常有4輸入查找表和6輸入查找表(4/6 input LUT)。

       以4輸入查找表為例,可以看成4位地址輸入,1位數據輸出的存儲器,存儲的內容是真值表,依照輸入的地址的真值輸出對應的數據。

       LUT是組合的,如果RTL是時序電路,則實際上是LUT+FF組成。

LUT就是一個4/6地址為的RAM。

Q:為什么是4/6輸入?

       因為對於多輸入的信號處理的時候,就需要有多個LUT的級聯來實現,而級聯有不可避免的會導致延時過分,導致時序不滿足。因此在實際的FPGA產品中多采用的是4輸入或者6輸入的LUT。(更快,滿足時序)

 

 

 

LUT的重要作用-邏輯函數發生器

Spartan-6中的函數生成器中,每個Slice中的四個函數生成器(A、B、C和D)有6個獨立輸入(A1-A6)和2個獨立輸出(O5-O6)。本質上,邏輯函數發生器存儲的是真值表(Truth Table)的內容,而真值表則是通過布爾表達式獲得。SPARTAN-6中函數生成器可以實現6輸入布爾表達式(O6輸出)或者5輸入布爾表達式(O5和O6),只要這兩個布爾表達式共享公共輸入即可。

 

       查找表的輸出可以從O6直接輸出,或者從AMUX, BMUX, CMUX, DMUX輸出O5;O6輸出也可進入專用異或門、O5也可進位邏輯鏈; O6輸出進入進位邏輯多路復用器的選擇線、或者存儲單元的D輸入;或者O6進入3輸入D選擇器。

布爾表達式:

從最基本的層次來說,所有的布爾表達式,不論它的長短如何,其值只能是true或false。

存儲單元

       Slice包含8個存儲單元,有4個可以配置為由邊沿觸發的D觸發器或者敏感鎖存器,D觸發器輸入可由LUT輸出直接觸發或者經過一些門或者旁路Slice等;另外4個可配置為觸發器由邊沿觸發的D觸發器,但是當前4個鎖存時不能使用。

 

 

 

 

Distributed-RAM

       分布式RAM,與塊RAM相比消耗邏輯資源,即SliceM中的LUT。Distributed-RAM適合存儲小型緩存數據、FIFO或寄存文件。對於大型存儲需求使用塊RAM。分布式RAM是同步寫資源異步讀資源,然而同步讀資源可以通過添加一個FF在同一個Slice中實現,添加FF可以降低延遲。SliceM中的LUT可以通過多種組合方式來存儲更多數據。

 

 

 

 

ROM

       每個函數發生器可設置為64*1的ROM。

 

 

 

 

移位寄存器

       SliceM中的函數發生器還可以配置為移位寄存器

      

 

 

 

 

 

 

數據選擇器

       4:1需要1個LUT;       8:1需要2個LUT;       16:1需要4個LUT 

       4:1選擇器可以由Slice中的LUT和FF同時組成。

 

 

 

 

      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  8:1選擇器由Slice中的LUT、FF、三通道選擇器組成,如下圖。

 

 

 

快速超前進位邏輯

       在SliceM&L中包含專用的進位邏輯,用於在一個片中執行快速算術加減法。每個CLB都有一個進位鏈,這些進位鏈可以級聯形成更寬的加減邏輯。

       每個Slice中向上的進位鏈的高度為4位。在每一位中都有一個進位選擇器和一個專用異或門來對對應位的操作數進行加減。由圖可見與LUT的重要作用-邏輯函數發生器相對應。

 

 

 

 

 


免責聲明!

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



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