天天看點

Xilinx FPGA 學習筆記——時鐘資源

轉載自:http://blog.csdn.net/lg2lh

在Xilinx的FPGA中,時鐘網絡資源分為兩大類:全局時鐘資源和區域時鐘資源。

全局時鐘資源是一種專用互連網絡,它可以降低時鐘歪斜、占空比失真和功耗,提高抖動容限。Xilinx的全局時鐘資源設計了專用時鐘緩沖與驅動結構,進而使全局時鐘到達CLB、IOB和BRAM的延時最小。

區域時鐘資源是獨立于全局時鐘網絡的。Xilinx的器件分成若幹個時鐘區域,以Virtex-6為例,Virtex-6的最小器件有6個區域,最大器件有18個區域。它與全局時鐘不同,區域時鐘信号X隻能驅動限定的時鐘區域。

這裡面提到區域時鐘的概念,需要解釋一下。Xilinx的FPGA器件是通過時鐘區域來管理時鐘網絡的,以Virtex-6為例,時鐘區域的大小固定為40個CLB 高,半個晶片寬。是以大尺寸的器件有更多的時鐘區域。如下圖所示,下圖中的FPGA器件一共包含6個時鐘區域,左側三個右側三個,從圖可以看出每個區域高度是2*20CLBs,區域寬度是半個FPGA晶片的寬度。中間是CMT時鐘管理子產品。

Xilinx FPGA 學習筆記——時鐘資源

每個時鐘區域的中間方向有一個時鐘行(HROW),以Virtex-6為例,一個時鐘行,共包含12個水準時鐘線,12個水準時鐘線可以全部由全局時鐘BUFG驅動。也可以由區域内部的時鐘元件緩沖器驅動,例如BUFH和BUFR。這個時候有人會問什麼是BUFG、BUFR和BUFH。

先來解釋一下BUFG,這個比較簡單,就是全局時鐘網絡時鐘驅動器,如果時鐘信号要走全局時鐘網絡,必須通過這個BUFG來驅動,BUFG可以驅動所有的CLB,RAM,IOB。spartan6 有一共有16個BUFG全局時鐘線。virtex-6則一共有32個BUFG全局時鐘線。參考文獻連結見下面。

再看BUFH,BUFH驅動區域中的水準全局時鐘樹,Xilinx的時鐘是通過時鐘樹來分布的,以spartan6時鐘樹為例,看下圖。FPGA中間豎排是CMT時鐘管理子產品,就是PLL和DCM。全局時鐘緩沖器BUFG是位于FPGA器件的中心位置,時鐘的輸入可以來自FPGA的上、下、左、右的bank,也可以來自PLL或DCM;16個BUFGMUX通過驅動vertical spine并經vertical spine 往南北方向傳播,vertical spine就相當于時鐘樹的樹幹 ,根據這條線路,時鐘水準延伸至HCLK時鐘列并經HCLK時鐘列提供了通路局部邏輯原語的路徑,HCLK及所謂的水準時鐘線,相當于樹枝;每一個HCLK列左右兩邊各有16個水準時鐘緩沖BUFH驅動左右邏輯資源。

Xilinx FPGA 學習筆記——時鐘資源

以Virtex-6每一個HCLK列左右兩邊各有12個水準時鐘緩沖BUFH驅動左右邏輯資源,即每個時鐘區域有12個BUFH時鐘線。如下圖

Xilinx FPGA 學習筆記——時鐘資源

最後解釋BUFR,BUFR我在SPARTAN6的時鐘資源手冊UG382裡沒有看到,應該是沒有啊。BUFR是區域時鐘緩沖器,要進入區域時鐘網絡,必須例化BUFR。一個BUFR最多可以驅動三個相鄰的時鐘區域中的區域時鐘。頂部和底部區域中BUFR隻能連接配接相鄰的一個時鐘區域,也就是說,頂部的BUFR連接配接它所在的下面一個相鄰區域。底部的BUFR隻能連接配接它所在的上邊一個相鄰區域。是以,底部和頂部BUFR的作用區域為兩個時鐘區域。如下圖,下圖是共有8個時鐘區域的FPGA,每個時鐘區域最多包含6個BUFR時鐘線。截止現在可以看到(紫色标注)Vertex器件的每個時鐘區域,共有6個BUFR和12個BUFH。SPARTAN6每個時鐘區域好像就有16個BUFH。最後聲明一下BUFR不僅可以驅動IO,也可以驅動CLB,RAM。下面接收的BUFIO隻能驅動IOB子產品。BUFR還可以1-2-4-8分頻。

Xilinx FPGA 學習筆記——時鐘資源

最後說一下BUFIO,BUFIO是用來驅動I/O列内的專用時鐘網絡,這個專用的時鐘網絡獨立于全局時鐘資源,适合采集源同步資料。BUFIO隻能由位于同一時鐘區域的Clock-Capable I/O驅動。一個時鐘區域有4個BUFIO,其中的2個可以驅動相鄰區域的I/O時鐘網絡。BUFIO不能驅動邏輯資源(CLB、BRAM等),因為I/O時鐘網絡隻存在于I/O列中。

具體這些個時鐘元件BUF怎麼用,我還沒實踐,先對這些BUF概念了解一下,僅供大家參考。小弟初學,肯定有了解不對的地方,大家請指正。

參考文獻的連結:

http://xilinx.eetrend.com/blog/1957

http://blog.sina.com.cn/s/blog_bff0927b010173bp.html

http://www.tools138.com/front/article/queryById.htm?id=417885