FPGA之時(shí)鐘規(guī)劃淺析
一、前言
????????對(duì)于vivado這類使用verilog語(yǔ)言的進(jìn)行工程設(shè)計(jì)的工具,軟件的時(shí)鐘規(guī)劃設(shè)計(jì)是至關(guān)重要的一個(gè)環(huán)節(jié),下面將針對(duì)軟件時(shí)鐘規(guī)劃的設(shè)計(jì)原理進(jìn)行一些基礎(chǔ)的說(shuō)明,了解這個(gè)也能提高自己程序設(shè)計(jì)的可靠性,以及問(wèn)題定位,本文以xilinx的xc7z100ffg900-2器件為例。
二、時(shí)鐘規(guī)劃概念
????????廣泛的來(lái)說(shuō),時(shí)鐘規(guī)劃包含了布局,布線流程,布局是將時(shí)鐘單元在滿足設(shè)計(jì)的要求下放置于可放置的位置,布線是在布局的基礎(chǔ)下進(jìn)行時(shí)鐘模塊間的線路連接。
三、時(shí)鐘規(guī)劃的模塊
? ? ? ? ?常見(jiàn)的時(shí)鐘單元有全局時(shí)鐘緩沖器BUFG、水平時(shí)鐘緩沖器BUFH、區(qū)域時(shí)鐘緩沖器BUFR、IO時(shí)鐘緩沖BUFIO、跨區(qū)域時(shí)鐘緩沖器BUFMR
BUFG:驅(qū)動(dòng)的時(shí)鐘范圍為整個(gè)芯片,通常位于芯片的中央位置;
BUFH:驅(qū)動(dòng)的范圍為同水平方向相鄰的兩個(gè)時(shí)鐘區(qū)域,通常位于芯片中央的垂直方向上按區(qū)域分布
BUFR:驅(qū)動(dòng)單個(gè)時(shí)鐘區(qū)域的時(shí)鐘,通常在每個(gè)時(shí)鐘區(qū)域內(nèi)部都有;
BUFMR:驅(qū)動(dòng)垂直方向上相鄰的兩個(gè)時(shí)鐘區(qū)域,通常位于左右兩側(cè)區(qū)域分界的位置;
IO:只能用于驅(qū)動(dòng)和IO相關(guān)的時(shí)鐘;
四、時(shí)鐘規(guī)劃之時(shí)鐘單元布局
? ? 根據(jù)芯片不同時(shí)鐘緩沖器的驅(qū)動(dòng)范圍不同,劃分為不同的時(shí)鐘區(qū)域,進(jìn)入“window->Device”,查看時(shí)鐘區(qū)域劃分,如下圖,圖中共有14個(gè)時(shí)鐘區(qū)域,每個(gè)區(qū)域的范圍為對(duì)應(yīng)方框的范圍,每個(gè)時(shí)鐘區(qū)域的邊界用不同顏色的線條來(lái)進(jìn)行區(qū)分,每個(gè)方框內(nèi)如X0Y6為時(shí)鐘區(qū)域的坐標(biāo)。

4.1 BUFG
? ? ? ? 在device的中間位置,可以看到bufg是垂直分布的,每個(gè)紅色小方格為一個(gè)bufg,共32個(gè),并且BUFG不屬于任何一個(gè)時(shí)鐘區(qū)域。

4.2?BUFH
? ? ? ? 在芯片中間垂直方向,BUFH分為左右兩列,每列各12個(gè),每列的驅(qū)動(dòng)范圍為鄰近的時(shí)鐘區(qū)域。

????????下圖為上圖針對(duì)BUFH位置放大圖,可看出左右兩個(gè)時(shí)鐘區(qū)域的分界線是將左右兩列的BUFH包含進(jìn)去了。

4.3?BUFR?
????????圖中選定的四個(gè)白色小方塊位置即為BUFR的位置,左側(cè)的AD28/AE28是IO 的位置,每個(gè)時(shí)鐘區(qū)域都有4個(gè)BUFR

4.4?BUFIO?
????? 下圖四個(gè)白色方框的位置即為BUFIO,在其右側(cè)的紅色小方框?yàn)锽UFR

? ? ? ? ?在整個(gè)芯片范圍內(nèi),如下圖用粉紅色菱形標(biāo)注的為BUFIO的分布位置,每個(gè)區(qū)域4個(gè)BUFIO,7個(gè)區(qū)域共28個(gè)BUFIO

五、時(shí)鐘規(guī)劃之時(shí)鐘單元走線
5.1?BUFG->BUFH
? ? ? ? 大體的時(shí)鐘驅(qū)動(dòng)方向?yàn)锽UFG->BUFH->SWITHBOX->時(shí)鐘端口,Switchbox是芯片上的布線資源,下圖即為BUFG通過(guò)BUFH驅(qū)動(dòng)FF的圖

5.2?BUFR->FF

5.3?BUFIO->FF
????? ??BUFIO可直接通過(guò)時(shí)鐘路徑驅(qū)動(dòng)FF的clk端口
