国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!

這篇具有很好參考價(jià)值的文章主要介紹了【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

??本文對(duì)xilinx 7系列FPGA的時(shí)鐘布線資源進(jìn)行講解,內(nèi)容是對(duì)ug472手冊(cè)的解讀和總結(jié),需要該手冊(cè)的可以直接在xilinx官網(wǎng)獲取,或者在公眾號(hào)回復(fù)“xilinx手冊(cè)”即可獲取。

1、概括

??7系列器件根據(jù)芯片大小不同,會(huì)有8至24個(gè)時(shí)鐘區(qū)域,如圖1所示,圖中的每個(gè)虛線框就表示一個(gè)時(shí)鐘區(qū)域,每個(gè)時(shí)鐘區(qū)域包含50個(gè)CLB和50個(gè)IO。
【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖1 7系列FPGA時(shí)鐘區(qū)域劃分

??由上圖可知,F(xiàn)PGA被主時(shí)鐘網(wǎng)絡(luò)(Clock Backbone)分為左右兩部分,在主時(shí)鐘網(wǎng)絡(luò)中包含32個(gè)全局時(shí)鐘資源BUFG,32個(gè)BUFG被水平時(shí)鐘線(Horizontal Center)劃分為上下兩部分,每部分包含16個(gè)BUFG,上下兩部分的BUFG不能混用。

??從左向右,I/O 列(I/O Column)就是FPGA輸入輸出管腳的資源,包含前文介紹過(guò)的IOB、ILOGIC、OLOGIC等資源。位于I/O列旁邊的CMT,可以提供時(shí)鐘頻率合成、去偏差和抖動(dòng)濾波功能。每個(gè)CMT包含一個(gè)混合模式時(shí)鐘管理器(MMCM)和一個(gè)鎖相環(huán)(PLL)。最右側(cè)就是高速收發(fā)器所在列。

??注意水平相鄰的兩個(gè)時(shí)鐘區(qū)域通過(guò)水平時(shí)鐘行(Horizontal Clock Row)連接,也就是BUFH。把圖1中陰影部分的時(shí)鐘區(qū)域放大,得到結(jié)果如圖2所示。每個(gè)時(shí)鐘區(qū)域包含50個(gè)CLB和50個(gè)IO,在區(qū)域內(nèi)部又被水平時(shí)鐘行(Horizontal Clock Row)分為上、下兩部分,各自包含25個(gè)CLB和25個(gè)IO管腳。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖2 時(shí)鐘區(qū)域的基本視圖

??由圖2可知,時(shí)鐘區(qū)域內(nèi)部主要包含全局時(shí)鐘緩沖器(BUFG)、行時(shí)鐘緩沖器(BUFH)、區(qū)域時(shí)鐘緩沖器(BUFR)、IO時(shí)鐘緩沖器(BUFIO)、時(shí)鐘輸入管腳CC,BUFMR用于驅(qū)動(dòng)垂直相鄰時(shí)鐘區(qū)域的BUFR和BUFIO。

??后文主要就是對(duì)上面這些內(nèi)容進(jìn)行詳細(xì)講解,最后在通過(guò)一張圖進(jìn)行總結(jié),以后只需要通過(guò)最后的圖就知道7系列的FPGA的時(shí)鐘區(qū)域內(nèi)各個(gè)緩沖器的使用規(guī)則以及時(shí)鐘輸入管腳的時(shí)鐘規(guī)則。

2、時(shí)鐘輸入管腳

??用戶(hù)時(shí)鐘必須通過(guò)專(zhuān)用時(shí)鐘的差分引腳輸入FPGA,專(zhuān)用時(shí)鐘引腳輸入的信號(hào)可以對(duì)FPGA內(nèi)部全局、區(qū)域時(shí)鐘資源進(jìn)行專(zhuān)用高速訪問(wèn),時(shí)鐘信號(hào)不能通過(guò)通用IO進(jìn)入FPGA。

??每個(gè)I/O bank包括50個(gè)I/O引腳,在每個(gè)I/O列的每個(gè)I/O bank的50個(gè)I/O引腳中,有四個(gè)支持時(shí)鐘的輸入引腳對(duì)CC (總共8個(gè)引腳),2對(duì)MRCC和2對(duì)SRCC時(shí)鐘管腳,如圖3所示。水平時(shí)鐘行(Horizontal Clock Row)的上、下兩部分各包含一對(duì)MRCC差分時(shí)鐘管腳和一對(duì)SRCC時(shí)鐘管腳。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖3 時(shí)鐘區(qū)域資源

??這也可以從FPGA的原理圖中得到證實(shí),圖4是xilinx FPGA的一個(gè)BANK原理圖。在中部包含四個(gè)SRCC和MRCC的差分時(shí)鐘輸入引腳,IO_L11P_T1_SRCC就表示SRCC的P輸入端。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖4 時(shí)鐘輸入管腳的原理圖

??每個(gè)支持時(shí)鐘的輸入管腳可以連接到PCB上的差分或單端時(shí)鐘,單端時(shí)鐘輸入必須分配給支持時(shí)鐘的輸入差分引腳對(duì)的P端。如果單端時(shí)鐘連接到差分時(shí)鐘引腳對(duì)的P端,則N端不能用作另一個(gè)單端時(shí)鐘引腳,只能用作用戶(hù)I/O。時(shí)鐘輸入管腳也可以被用作任何I/O標(biāo)準(zhǔn)(包括差分I/O標(biāo)準(zhǔn))的通用IO使用。

??SRCC管腳可以驅(qū)動(dòng)當(dāng)前時(shí)鐘域的IO時(shí)鐘緩沖器(BUFIO)、區(qū)域時(shí)鐘緩沖器(BUFR)、行時(shí)鐘緩沖器(BUFH)、位于同部分(如果SRCC位于FPGA下半部分,那就只能驅(qū)動(dòng)下半部分的BUFG)的全局時(shí)鐘緩沖器(BUFG)、相同或相鄰時(shí)鐘區(qū)域的CMT。

??MRCC具有SRCC所有功能,且可以驅(qū)動(dòng)多時(shí)鐘區(qū)域緩沖器(BUFMR)來(lái)訪問(wèn)最多三個(gè)上下垂直相鄰的時(shí)鐘區(qū)域的BUFR和BUFIO,在后文講解BUFR的時(shí)候會(huì)進(jìn)行詳細(xì)講解。

??如果一個(gè)時(shí)鐘驅(qū)動(dòng)一個(gè)CMT,那么時(shí)鐘輸入管腳和CMT必須處于同一個(gè)時(shí)鐘區(qū)域。

??單個(gè)時(shí)鐘輸入可以驅(qū)動(dòng)多達(dá)三個(gè)CMT,但時(shí)鐘的輸入管腳必須與中間的CMT處于同一時(shí)鐘區(qū)域,其余兩個(gè)CMT必須位于上下相鄰的時(shí)鐘區(qū)域。

??當(dāng)時(shí)鐘輸入管腳驅(qū)動(dòng)同一列中其它時(shí)鐘區(qū)域的CMT,但不驅(qū)動(dòng)同一時(shí)鐘區(qū)域的CMT時(shí),需要設(shè)置CLOCK_DEDICATED_ROUTE = BACKBON。這種情況下,CMT無(wú)法將輸出時(shí)鐘與輸入時(shí)鐘正確對(duì)齊。

??這里主要是了解FPGA每個(gè)IO bank的專(zhuān)用時(shí)鐘管腳有哪些,不同時(shí)鐘管腳輸入的時(shí)鐘信號(hào)能夠驅(qū)動(dòng)的時(shí)鐘資源有什么差異,單端時(shí)鐘應(yīng)該從什么管腳進(jìn)入FPGA就行了。

3、全局時(shí)鐘緩沖器(BUFG)

??從此開(kāi)始就會(huì)涉及一些原語(yǔ)的介紹,但是都比較簡(jiǎn)單,繼續(xù)往下看。

??7系列FPGA時(shí)鐘樹(shù)專(zhuān)為低偏斜和低功耗操作而設(shè)計(jì),任何未使用的分支都被斷開(kāi)。時(shí)鐘樹(shù)也可以用來(lái)驅(qū)動(dòng)邏輯資源,如復(fù)位或時(shí)鐘使能,主要用于高扇出網(wǎng)絡(luò)。

??每個(gè)7系列器件都有32條全局時(shí)鐘線,BUFG可以被上/下同一部分的MRCC、SRCC、CMT、BUFG、BUFR、GT高速收發(fā)器時(shí)鐘、還有計(jì)數(shù)器分頻得到的時(shí)鐘(不推薦)驅(qū)動(dòng)。BUFG的輸出可以驅(qū)動(dòng)CMT、BUFH、高速收發(fā)器時(shí)鐘信號(hào)、同一部分中的BUFG、CLB及IOB等所有時(shí)鐘區(qū)域的時(shí)鐘信號(hào)和控制信號(hào)。

??全局時(shí)鐘緩沖器(BUFGCTRL,簡(jiǎn)稱(chēng)BUFG)驅(qū)動(dòng)全局時(shí)鐘線,必須用于訪問(wèn)全局時(shí)鐘線。使用時(shí)鐘區(qū)域中的12條水平時(shí)鐘線,每個(gè)時(shí)鐘區(qū)域最多支持12條全局時(shí)鐘線。BUFG和BUFH會(huì)共用同一個(gè)時(shí)鐘區(qū)域里面的12條水平時(shí)鐘線。

??可以通過(guò)vivado中芯片的時(shí)鐘走線觀察,如圖5所示,一個(gè)區(qū)域會(huì)有12條水平的時(shí)鐘線。
【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖5 時(shí)鐘區(qū)域的12條水平時(shí)鐘線

??全局時(shí)鐘緩沖器相關(guān)的原語(yǔ)是比較多的,包括BUFGCTRL、BUFG、BUFGCE、BUFGCE_1、BUFGMUX、BUFGMUX_1、BUFGMUX_CTRL。其實(shí)后面6個(gè)都是通過(guò)BUFGCTRL演化而來(lái)的,常用的就是BUFG,所以本文就講解BUFGCTRL的功能以及怎么演化為BUFG的,其余原語(yǔ)就是使能或者選擇時(shí)鐘的功能,可以根據(jù)功能就可以得知具體怎么演化的了。

3.1、BUFGCTRL

??BUFGCTRL原語(yǔ)可以用于切換兩個(gè)異步時(shí)鐘,如圖6是BUFGCTRL原語(yǔ)的框圖,I0和I1是兩個(gè)時(shí)鐘輸入端口,而S0、S1、CE0、CE1、IGNORE0、IGNORE1是相應(yīng)的控制信號(hào),O是輸出時(shí)鐘端口。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖6 BUFGCTRL原語(yǔ)框圖

??對(duì)應(yīng)原語(yǔ)如下所示:

   BUFGCTRL #(
      .INIT_OUT(0),           // Initial value of BUFGCTRL output ($VALUES;)
      .PRESELECT_I0("FALSE"), // BUFGCTRL output uses I0 input ($VALUES;)
      .PRESELECT_I1("FALSE")  // BUFGCTRL output uses I1 input ($VALUES;)
   )
   BUFGCTRL_inst (
      .O(O),             // 1-bit output: Clock output
      .CE0(CE0),         // 1-bit input: Clock enable input for I0
      .CE1(CE1),         // 1-bit input: Clock enable input for I1
      .I0(I0),           // 1-bit input: Primary clock
      .I1(I1),           // 1-bit input: Secondary clock
      .IGNORE0(IGNORE0), // 1-bit input: Clock ignore input for I0
      .IGNORE1(IGNORE1), // 1-bit input: Clock ignore input for I1
      .S0(S0),           // 1-bit input: Clock select for I0
      .S1(S1)            // 1-bit input: Clock select for I1
   );

??幾個(gè)信號(hào)對(duì)應(yīng)的真值表如下表1所示:

表1 BUFGCTRL真值表

S0 CE0 S1 CE1 O
1 1 X 0 I0
1 1 0 X I0
0 X 1 1 I1
X 0 1 1 I1
1 1 1 1 保持

??當(dāng)S0和CE0為高電平且S1或CE1有低電平時(shí),將時(shí)鐘I0輸出,如果S1、CE1同時(shí)為高電平且S0或CE1為低電平時(shí),將時(shí)鐘I1輸出。如果四個(gè)信號(hào)全為高電平,則保持之前的輸出不變。

??對(duì)應(yīng)的時(shí)序圖如圖7所示,在I0的1處之前,S0和CE0為高電平,S1和CE1為低電平,則輸出時(shí)鐘I0。在1處S0、CE0、S1、CE1電平翻轉(zhuǎn),但是輸出信號(hào)O不會(huì)立即將時(shí)鐘信號(hào)I1輸出,而是要檢測(cè)到I0和I1的下降沿之后,在I1的上升沿3處后面才會(huì)把I1輸出。

??那如果不想讓BUFGCTRL在S和CE信號(hào)變化后檢測(cè)I0和I1的下降沿,該怎么辦?只需要把IGNORE0或者IGNORE1信號(hào)拉高即可,如圖7所示,把IGNORE1拉高,在5處S0、CE0、S1、CE1電平翻轉(zhuǎn),后面就只檢測(cè)I0的下降沿,而無(wú)需檢測(cè)I1的下降沿。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖7 BUFGCTRL時(shí)序圖

??BUFGCTRL有三個(gè)參數(shù),其中PRESELECT_I0和PRESELECT_I1用于設(shè)置I0和I1在器件運(yùn)行前的初始狀態(tài),一般默認(rèn)即可。INIT_OUT是用來(lái)設(shè)置BUFGCTRL在切換時(shí)是檢測(cè)I0和I1有效沿,以及檢測(cè)到相應(yīng)沿時(shí)輸出的電平狀態(tài),默認(rèn)為0。

??圖7中INIT_OUT為0,在切換時(shí)鐘過(guò)程中,在2處檢測(cè)到I0下降沿,然后端口O輸出低電平。

??雖然S和CE均用于選擇所需輸出,但對(duì)于無(wú)毛刺開(kāi)關(guān),僅建議使用S。

3.2、BUFG

??BUFG只是一個(gè)時(shí)鐘緩沖器,具有一個(gè)時(shí)鐘輸入和一個(gè)時(shí)鐘輸出。此原語(yǔ)基于BUFGCTRL,其中一些引腳連接到邏輯高電平或低電平。

??圖8是BUFG的框圖,將BUFGCTRL的S1、CE1、IGNORE0接低電平,S0、CE0、I1、IGNORE1接高電平,此時(shí)就會(huì)把I0作為輸出,也就是BUFG的功能了。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖8 BUFG框圖

??BUFG的原語(yǔ)如下所示,這也是最常用的,把時(shí)鐘信號(hào)引入全局時(shí)鐘網(wǎng)絡(luò)。

   BUFG BUFG_inst (
      .O(O), // 1-bit output: Clock output
      .I(I)  // 1-bit input: Clock input
   );

圖9是BUFG的時(shí)序圖。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖9 BUFG時(shí)序圖

??至于其余的BUFGCE、BUFGCE_1、BUFGMUX、BUFGMUX_1、BUFGMUX_CTRL也都是把BUFGCTRL的幾個(gè)輸入信號(hào)接固定電平演化得到的,此處就不再贅述,需要詳細(xì)了解的可以直接查看數(shù)據(jù)手冊(cè)。

4、水平時(shí)鐘緩沖器(BUFH/BUFHCE)

??水平時(shí)鐘緩沖器(BUFH/BUFHCE)允許通過(guò)水平時(shí)鐘行訪問(wèn)單個(gè)時(shí)鐘區(qū)域中的全局時(shí)鐘線。

??BUFH可以被同一或水平相鄰時(shí)鐘區(qū)域的SRCC、MRCC、CMT、BUFG、GT時(shí)鐘、互聯(lián)邏輯(不建議)驅(qū)動(dòng),BUFH的輸出可以驅(qū)動(dòng)同一時(shí)鐘區(qū)域的CMT、GT時(shí)鐘、該區(qū)域中任意時(shí)鐘節(jié)點(diǎn)(CLB、IOB、RAM、DSP等時(shí)鐘節(jié)點(diǎn)), 相當(dāng)于收到區(qū)域限制的BUFG。

??要使用BUFH,邏輯必須適合水平相鄰的兩個(gè)區(qū)域(左和右),如圖10所示。它還可以用作時(shí)鐘使能電路(BUFHCE ),獨(dú)立使能或禁用跨越單個(gè)時(shí)鐘區(qū)域的時(shí)鐘,從而實(shí)現(xiàn)潛在的節(jié)能。與驅(qū)動(dòng)兩個(gè)相鄰區(qū)域的BUFG相比,BUFH的功耗和抖動(dòng)更低。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖10 BUFH示例

??這個(gè)其實(shí)比較有用,比如電路中某部分電路可能就在上電之后工作一段時(shí)間,經(jīng)過(guò)這段時(shí)間后,就可以把該時(shí)鐘的使能信號(hào)拉低,從而關(guān)閉該區(qū)域的時(shí)鐘,降低功耗。

??使用每個(gè)時(shí)鐘區(qū)域中的12條水平時(shí)鐘線,每個(gè)時(shí)鐘區(qū)域可以支持多達(dá)12個(gè)時(shí)鐘。每個(gè)BUFH都有一個(gè)時(shí)鐘使能引腳(CE ),允許動(dòng)態(tài)關(guān)閉時(shí)鐘。圖11是BUFH的框圖。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖11 BUFH框圖

??BUFH對(duì)應(yīng)原語(yǔ)模板如下所示:

   BUFH BUFH_inst (
      .O(O), // 1-bit output: Clock output
      .I(I)  // 1-bit input: Clock input
   );

   BUFHCE #(
      .CE_TYPE("SYNC"), // "SYNC" (glitchless switching) or "ASYNC" (immediate switch)
      .INIT_OUT(0)      // Initial output value (0-1)
   )
   BUFHCE_inst (
      .O(O),   // 1-bit output: Clock output
      .CE(CE), // 1-bit input: Active high enable
      .I(I)    // 1-bit input: Clock input
   );

??原語(yǔ)的輸入和輸出信號(hào)都比較簡(jiǎn)單,不再贅述,該原語(yǔ)包含兩個(gè)參數(shù),其中INIT_OUT表示初始化時(shí)BUFH輸出電平,默認(rèn)輸出低電平。CE_TYPE用來(lái)表示使能端口與時(shí)鐘的關(guān)系,是異步使能還是同步使能,默認(rèn)為同步使能。

5、區(qū)域時(shí)鐘緩沖器(BUFR)

??BUFR將時(shí)鐘信號(hào)驅(qū)動(dòng)到時(shí)鐘區(qū)域內(nèi)的專(zhuān)用時(shí)鐘網(wǎng),獨(dú)立于全局時(shí)鐘樹(shù)。每個(gè)BUFR可以驅(qū)動(dòng)其所在區(qū)域的四個(gè)區(qū)域時(shí)鐘網(wǎng),BUFR可以驅(qū)動(dòng)I/O邏輯和邏輯資源(CLB、塊RAM等)。

??BUFR可以被同一時(shí)鐘區(qū)域的SRCC、MRCC、(MMCM . CLKOUT0~CLKOUT3)、時(shí)鐘反饋CLKFBOUT、上下相鄰時(shí)鐘區(qū)域的BUFMR、通用互聯(lián)(用戶(hù)分頻產(chǎn)生的時(shí)鐘信號(hào))驅(qū)動(dòng),BUFR輸出可以驅(qū)動(dòng)BUFG在該區(qū)域能驅(qū)動(dòng)的所有節(jié)點(diǎn)、CMT、同部分的BUFG(不推薦)。

??BUFR能夠產(chǎn)生相對(duì)于時(shí)鐘輸入的分頻時(shí)鐘輸出,分頻系數(shù)可以設(shè)置為1~8之間的整數(shù)。FPGA內(nèi)部能夠?qū)r(shí)鐘分頻的資源就是鎖相環(huán)和BUFR,鎖相環(huán)需要經(jīng)過(guò)全局時(shí)鐘網(wǎng)絡(luò),延遲會(huì)比BUFR分頻大很多,但是鎖相環(huán)的分頻會(huì)更加穩(wěn)定。圖12是BUFR的原語(yǔ)模型。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖12 BUFR原語(yǔ)模型

BUFR的原語(yǔ)模板如下所示:

   BUFR #(
      .BUFR_DIVIDE("BYPASS"),   // Values: "BYPASS, 1, 2, 3, 4, 5, 6, 7, 8" 
      .SIM_DEVICE("7SERIES")  // Must be set to "7SERIES" 
   )
   BUFR_inst (
      .O(O),     // 1-bit output: Clock output port
      .CE(CE),   // 1-bit input: Active high, clock enable (Divided modes only)
      .CLR(CLR), // 1-bit input: Active high, asynchronous clear (Divided modes only)
      .I(I)      // 1-bit input: Clock buffer input driven by an IBUF, MMCM or local interconnect
   );

??BUFR的原語(yǔ)端口比較簡(jiǎn)單,I是輸入時(shí)鐘,O是輸出時(shí)鐘,CE是輸出時(shí)鐘使能,高電平有效。CLR用于分頻邏輯異步清零,高電平有效,將輸出設(shè)為低電平,不使用分頻功能時(shí)不能使用該信號(hào)。要注意在使用過(guò)程中CE信號(hào)從無(wú)效變?yōu)橛行Ш?,必須將CLR拉高一次。

??該原語(yǔ)有一個(gè)分頻的參數(shù)BUFR_DIVIDE,默認(rèn)為BYPASS,不使用分頻功能。注意分頻系數(shù)設(shè)置為奇數(shù)時(shí),輸出時(shí)鐘占空比不是50%,低電平持續(xù)時(shí)間會(huì)比高電平持續(xù)時(shí)間長(zhǎng)一個(gè)輸入時(shí)鐘周期。

??下圖是BUFR輸出3分頻的時(shí)序圖,在1后面的時(shí)鐘I上升沿,CE為高電平,此時(shí)輸出時(shí)鐘O輸出高電平。由于采用3分頻,所以時(shí)鐘I前一個(gè)時(shí)鐘周期BUFR輸出高電平,然后輸出兩個(gè)時(shí)鐘周期的低電平。在3處時(shí)鐘I上升沿檢測(cè)到CLR為高電平,則端口O輸出低電平。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖13 BUFR輸出3分頻時(shí)序圖

??BUFR還是比較簡(jiǎn)單,能夠驅(qū)動(dòng)一個(gè)時(shí)鐘區(qū)域內(nèi)的所有時(shí)序節(jié)點(diǎn),并且能夠?qū)斎霑r(shí)鐘信號(hào)進(jìn)行分頻,可以減小延時(shí)。但是可能會(huì)有疑問(wèn),為什么會(huì)有1分頻這個(gè)選項(xiàng)?1分頻不就是不進(jìn)行分頻嗎?

??當(dāng)參數(shù)BUFR_DIVIDE設(shè)置為BYPASS時(shí),輸出信號(hào)直接繞過(guò)BUFR內(nèi)部分頻器,導(dǎo)致輸出信號(hào)的延時(shí)比分頻后輸出信號(hào)的延時(shí)小。

??如下圖所示,ISERDES的CLK采用BUFR直接輸入,而CLKDIV是MRCC經(jīng)過(guò)BUFR分頻后的時(shí)鐘。如果兩個(gè)BUFR輸出時(shí)鐘有效沿要對(duì)齊,提供CLK時(shí)鐘的BUFR分頻系數(shù)就只能設(shè)置為1,不能設(shè)置為BYPASS。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖14 驅(qū)動(dòng)多時(shí)鐘區(qū)域的BUFR

6、IO時(shí)鐘緩沖器(BUFIO)

??前文提到的這些時(shí)鐘路由資源,可以驅(qū)動(dòng)時(shí)鐘區(qū)域內(nèi)的所有時(shí)鐘節(jié)點(diǎn),但是BUFIO只能驅(qū)動(dòng)當(dāng)前時(shí)鐘區(qū)域的IO列中的時(shí)鐘節(jié)點(diǎn)。

??除互聯(lián)邏輯外,能夠驅(qū)動(dòng)BUFR的資源也能夠驅(qū)動(dòng)BUFIO,而B(niǎo)UFIO的輸出只能驅(qū)動(dòng)ILOGIC和OLOGIC的IO列中的時(shí)鐘信號(hào)。

??下圖能夠很好說(shuō)明BUFIO和BUFR的區(qū)別,BUFIO的輸出只能驅(qū)動(dòng)IO列里面的時(shí)鐘端口,而B(niǎo)UFR擁有BUFIO所有功能且還能驅(qū)動(dòng)當(dāng)前時(shí)鐘區(qū)域里的CLB、RAM、DSP的時(shí)序節(jié)點(diǎn)。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖15 BUFIO與BUFR的功能對(duì)比

??BUFIO驅(qū)動(dòng)IO列的資源的延時(shí)相比BUFR、BUFG這些會(huì)更少,所以一般BUFIO與BUFR會(huì)一起使用,如下圖所示,BUFIO用于驅(qū)動(dòng)IO列中的時(shí)鐘信號(hào),而B(niǎo)UFR驅(qū)動(dòng)該時(shí)鐘區(qū)域內(nèi)的其余時(shí)鐘資源。這種方式在后續(xù)千兆網(wǎng)中會(huì)使用。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖16 BUFIO與BUFR使用方式

??BUFIO的原語(yǔ)模型如下圖所示:

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖17 BUFIO模型

??該原語(yǔ)的模板如下所示:

   BUFIO BUFIO_inst (
      .O(O), // 1-bit output: Clock output (connect to I/O clock loads).
      .I(I)  // 1-bit input: Clock input (connect to an IBUF or BUFMR).
   );

??原語(yǔ)很簡(jiǎn)單,就一個(gè)輸入時(shí)鐘,經(jīng)過(guò)一定內(nèi)部延時(shí)后輸出。

7、多區(qū)域時(shí)鐘緩沖器(BUFMR/BUFMRCE)

??用戶(hù)時(shí)鐘從MRCC或SRCC進(jìn)入FPGA后,僅能驅(qū)動(dòng)當(dāng)前時(shí)鐘區(qū)域里的BUFIO和BUFR。如果同時(shí)想要驅(qū)動(dòng)上、下兩個(gè)垂直相鄰時(shí)鐘區(qū)域里的BUFR或BUFIO,則需要使用BUFMR。只有MRCC進(jìn)入的時(shí)鐘信號(hào)可以使用BUFMR,SRCC進(jìn)入的時(shí)鐘信號(hào)不能使用BUFMR。

??BUFMR/BUFMRCE只能把同一時(shí)鐘區(qū)域的MRCC或GT的時(shí)鐘信號(hào)作為輸入,而輸出信號(hào)只能驅(qū)動(dòng)垂直相鄰三個(gè)時(shí)鐘區(qū)域里面的BUFR和BUFIO,如下兩圖所示,兩張圖描述的內(nèi)容相似。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖18 BUFMR/BUFMRCE使用

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖19 BUFMR/BUFMRCE使用

??BUFMR/BUFMRCE的原語(yǔ)模型如下圖所示:

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖20 BUFMR模型

??BUFMR和BUFMRCE原語(yǔ)其實(shí)就相差一個(gè)使能引腳,其余沒(méi)有區(qū)別,原語(yǔ)模板如下所示:

   BUFMR BUFMR_inst (
      .O(O), // 1-bit output: Clock output (connect to BUFIOs/BUFRs)
      .I(I)  // 1-bit input: Clock input (Connect to IBUF)
   );
   BUFMRCE #(
      .CE_TYPE("SYNC"), // SYNC, ASYNC
      .INIT_OUT(0)      // Initial output and stopped polarity, (0-1)
   )
   BUFMRCE_inst (
      .O(O),   // 1-bit output: Clock output (connect to BUFIOs/BUFRs)
      .CE(CE), // 1-bit input: Active high buffer enable
      .I(I)    // 1-bit input: Clock input (Connect to IBUF)
   );

8、總結(jié)

??前文對(duì)BUFG、BUFH、BUFR、BUFIO、BUFMR做了講解,其實(shí)這些緩沖器的功能相似。

??1、BUFG功能最強(qiáng)大,每個(gè)FPGA最多只能有32個(gè)BUFG工作,32個(gè)BUFG被水平時(shí)鐘線分為上下兩部分,各16個(gè)BUFG,上半部分的BUFG不能驅(qū)動(dòng)下半部分相關(guān)時(shí)鐘節(jié)點(diǎn)。

??2、BUFH是能夠被水平相鄰時(shí)鐘區(qū)域的SRCC、MRCC等資源驅(qū)動(dòng),能夠驅(qū)動(dòng)該時(shí)鐘區(qū)域中BUFG能夠驅(qū)動(dòng)的時(shí)鐘節(jié)點(diǎn)。

??3、BUFR是區(qū)域時(shí)鐘緩沖器,能夠驅(qū)動(dòng)所在區(qū)域BUFG能驅(qū)動(dòng)的時(shí)鐘節(jié)點(diǎn),并且能夠?qū)斎霑r(shí)鐘進(jìn)行分頻輸出,可以降低分頻時(shí)鐘延時(shí)。

??4、BUFIO只能驅(qū)動(dòng)所在時(shí)鐘區(qū)域中的IO列中ILOGIC、OLOGIC的時(shí)鐘端口,延時(shí)也是最低的,最適合作為源同步時(shí)鐘的處理。一般與BUFR組合使用,將延遲降低到最小。

??5、BUFMR可以把所在時(shí)鐘區(qū)域的MRCC或GT時(shí)鐘作為輸入,輸出信號(hào)可以驅(qū)動(dòng)垂直相鄰三個(gè)時(shí)鐘區(qū)域的BUFR和BUFIO。

??上述所有資源都可以使用下圖進(jìn)行總結(jié),下圖是A7 FPGA的一個(gè)時(shí)鐘區(qū)域各個(gè)時(shí)鐘資源的分布。

【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!,FPGA,fpga開(kāi)發(fā)

圖21 Artix-7 XC7A200T設(shè)備中的時(shí)鐘區(qū)域,帶GTP收發(fā)器和I/O組(右側(cè))

??經(jīng)過(guò)前文講解,該圖可以對(duì)手冊(cè)的一半內(nèi)容進(jìn)行總結(jié),所以此處最后拿出來(lái)進(jìn)行總結(jié)。

??首先一個(gè)時(shí)鐘區(qū)域包括50個(gè)CLB,上圖中HROW上面包含25個(gè)CLB,下面包含25個(gè)CLB,且HROW上半部分的IO列中包含25個(gè)IO管腳,下半部分也有25個(gè)IO管腳,均包含2對(duì)差分時(shí)鐘專(zhuān)用引腳CC。

??IO列中包含BUFR和BUFIO,BUFIO的輸出只存在IO列中,表示只能驅(qū)動(dòng)IO列中的時(shí)鐘資源,而B(niǎo)UFR輸出還與CLB、RAM、DSP等時(shí)鐘端口連接,表示可以驅(qū)動(dòng)更多資源。

??BUFMR輸出分別穿出該時(shí)鐘區(qū)域,向上、下分別延伸,表示可以驅(qū)動(dòng)垂直相鄰上下區(qū)域的BUFR和BUFIO。

??BUFG和BUFH都是從主時(shí)鐘網(wǎng)絡(luò)中引出,通過(guò)HROW所在水平時(shí)鐘行進(jìn)入時(shí)鐘區(qū)域,會(huì)共用一個(gè)時(shí)鐘區(qū)域的12條水平時(shí)鐘線。并且在該區(qū)域中,BUFG和BUFH能夠驅(qū)動(dòng)的時(shí)鐘資源相同,都能夠被CMT和GT的時(shí)鐘信號(hào)驅(qū)動(dòng)。

??時(shí)鐘布線資源只是該手冊(cè)的一大半內(nèi)容,還有一半內(nèi)容是對(duì)MMCM和PLL使用進(jìn)行講解,包括原語(yǔ)的使用及相關(guān)參數(shù)。

??這個(gè)手冊(cè)很久之前就讀過(guò),那時(shí)候并沒(méi)有單獨(dú)調(diào)用這些資源使用,所以對(duì)BUFG、BUFH這些緩沖器的理解并不充分,甚至?xí)煜?。最近在?xiě)以太網(wǎng)相關(guān)代碼時(shí),使用到了BUFIO、BUFR這些緩沖器,就重讀了一遍手冊(cè),對(duì)一些重要的內(nèi)容進(jìn)行了總結(jié)。

??手冊(cè)最后幾頁(yè)的圖也可以說(shuō)是精華所在吧,能夠?qū)η拔牡拇蟛糠謨?nèi)容進(jìn)行總結(jié),熟悉之后,只要看到這些圖片就可以支道每個(gè)緩沖器的功能等等,不必記憶什么文字內(nèi)容。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-774244.html

到了這里,關(guān)于【驚喜揭秘】xilinx 7系列FPGA時(shí)鐘區(qū)域內(nèi)部結(jié)構(gòu)大揭秘,讓你輕松掌握!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • FPGA學(xué)習(xí)_Xilinx7系列FPGA基本結(jié)構(gòu)

    FPGA學(xué)習(xí)_Xilinx7系列FPGA基本結(jié)構(gòu)

    參考:https://xilinx.eetrend.com/content/2019/100042384.html xilinx7系列FPGA主要包括:Spartan?-7、Artix?-7、Kintex?-7、Virtex?-7。其性能/密度/價(jià)格也隨著系列的不同而提升。 Spartan7 系列擁有最低的價(jià)格、最低的功耗、最小的尺寸以及最低的設(shè)計(jì)難度,一些低端應(yīng)用中極為合適。 Artix7 系列相

    2024年04月09日
    瀏覽(83)
  • FPGA - 7系列 FPGA內(nèi)部結(jié)構(gòu)之CLB -02- CLB功能詳解

    FPGA - 7系列 FPGA內(nèi)部結(jié)構(gòu)之CLB -02- CLB功能詳解

    本文翻譯自UG474第二章,主要對(duì)7系列FPGAs CLB結(jié)構(gòu)進(jìn)行詳細(xì)介紹。這些細(xì)節(jié)對(duì)設(shè)計(jì)優(yōu)化和驗(yàn)證很有幫助。 CLB 在 7 系列 FPGA 中按列排列。 7 系列是基于 ASMBL架構(gòu)提供的獨(dú)特柱狀方法的第四代產(chǎn)品。ASMBL 架構(gòu) Xilinx 創(chuàng)建了高級(jí)硅模塊塊 (ASMBL) 架構(gòu),以支持具有針對(duì)不同應(yīng)用領(lǐng)域優(yōu)化

    2024年02月06日
    瀏覽(21)
  • FPGA - 7系列 FPGA內(nèi)部結(jié)構(gòu)之CLB -03- CLB相關(guān)原語(yǔ)以及應(yīng)用

    FPGA - 7系列 FPGA內(nèi)部結(jié)構(gòu)之CLB -03- CLB相關(guān)原語(yǔ)以及應(yīng)用

    本文節(jié)選UG474的第二章,進(jìn)行整理翻譯。CLB資源被FPGA綜合工具自動(dòng)有效地使用,不需要任何特殊的FPGA專(zhuān)用編碼。一些HDL編碼建議和技術(shù)可以幫助優(yōu)化設(shè)計(jì)以獲得最大效率。 這些指南是為有效使用7系列CLB的設(shè)計(jì)建議提供的快速核對(duì)表。7系列CLB的設(shè)計(jì)建議: 資源利用 使用通用

    2024年02月03日
    瀏覽(31)
  • FPGA - 7系列 FPGA內(nèi)部結(jié)構(gòu)之SelectIO -04- 邏輯資源之IDELAY和IDELAYCTRL

    FPGA - 7系列 FPGA內(nèi)部結(jié)構(gòu)之SelectIO -04- 邏輯資源之IDELAY和IDELAYCTRL

    本文節(jié)選UG471的第二章,進(jìn)行整理翻譯,用于介紹SelectIO資源內(nèi)部的IDELAY資源和IDELAYCTRL資源。 每個(gè) I/O 模塊都包含一個(gè)稱(chēng)為 IDELAYE2 的可編程延遲原語(yǔ)。 IDELAY 可以連接到 ILOGICE2/ISERDESE2 或 ILOGICE3/ISERDESE2 塊。 IDELAYE2 是一個(gè) 31 抽頭、環(huán)繞式延遲原語(yǔ),具有校準(zhǔn)的抽頭分辨率。它

    2023年04月08日
    瀏覽(24)
  • FPGA - 7系列 FPGA內(nèi)部結(jié)構(gòu)之SelectIO -08- 高級(jí)邏輯資源之OSERDESE2

    FPGA - 7系列 FPGA內(nèi)部結(jié)構(gòu)之SelectIO -08- 高級(jí)邏輯資源之OSERDESE2

    本文節(jié)選UG471的第三章,進(jìn)行整理翻譯,用于介紹高級(jí)SelectIO邏輯資源內(nèi)部的OSERDESE2資源。 7 系列器件中的 OSERDESE2 是專(zhuān)用的并串轉(zhuǎn)換器,具有特定的時(shí)鐘和邏輯資源,旨在促進(jìn)高速源同步接口的實(shí)現(xiàn)。 每個(gè) OSERDESE2 模塊都包含一個(gè)用于數(shù)據(jù)和三態(tài)控制的專(zhuān)用串行器。 數(shù)據(jù)和三

    2023年04月27日
    瀏覽(25)
  • FPGA時(shí)鐘資源與設(shè)計(jì)方法——Xilinx(Vivado)

    1.時(shí)鐘資源包括:時(shí)鐘布線、時(shí)鐘緩沖器(BUFGBUFRBUFIO)、時(shí)鐘管理器(MMCM/PLL)。 2.時(shí)鐘類(lèi)型有三種:全局時(shí)鐘,可以驅(qū)動(dòng)整個(gè)內(nèi)核上的同步邏輯;局部時(shí)鐘,可以驅(qū)動(dòng)特定和相鄰區(qū)域的邏輯;IO時(shí)鐘,可以驅(qū)動(dòng)某個(gè)IO的特定邏輯。 3.混合模式時(shí)鐘管理器(MMCM)和數(shù)字時(shí)鐘管理

    2024年02月22日
    瀏覽(24)
  • FPGA時(shí)鐘資源詳解(4)——區(qū)域時(shí)鐘資源

    FPGA時(shí)鐘資源詳解(4)——區(qū)域時(shí)鐘資源

    ?FPGA時(shí)鐘系列文章總覽: FPGA原理與結(jié)構(gòu)(14)——時(shí)鐘資源 https://ztzhang.blog.csdn.net/article/details/132307564 目錄 一、概述 二、Clock-Capable I/O 三、I/O 時(shí)鐘緩沖器 —— BUFIO 3.1?I/O 時(shí)鐘緩沖器 3.2?BUFIO原語(yǔ) 四、區(qū)域時(shí)鐘緩沖器——BUFR? 4.1 區(qū)域時(shí)鐘緩沖器 4.2?BUFR原語(yǔ) 五、區(qū)域時(shí)鐘網(wǎng)

    2024年04月26日
    瀏覽(21)
  • 【Xilinx FPGA】DDR3 MIG 時(shí)鐘管腳分配

    【Xilinx FPGA】DDR3 MIG 時(shí)鐘管腳分配

    之前在驗(yàn)證 FPGA 板卡的芯片管腳時(shí),所用的測(cè)試工程使用內(nèi)部 PLL 生成的時(shí)鐘作為 DDR3 的參考時(shí)鐘。后來(lái)嘗試將參考時(shí)鐘改為外部 100M 晶振時(shí)鐘,發(fā)現(xiàn) MIG IP 配置工具找不到相應(yīng)管腳,于是學(xué)習(xí)并梳理了?Xilinx DDR3 MIG IP 時(shí)鐘管腳的分配規(guī)則,在這里做個(gè)記錄。 ? 目錄 1 MIG 時(shí)鐘

    2024年02月06日
    瀏覽(21)
  • Xilinx FPGA器件中時(shí)鐘資源的說(shuō)明以及使用 --ibufg ibufgds

    xilinx 時(shí)鐘資源分為兩種:全局時(shí)鐘和第二全局時(shí)鐘。 一、全局時(shí)鐘資源 Xilinx 全局時(shí)鐘采用全銅工藝實(shí)現(xiàn),并設(shè)計(jì)了專(zhuān)用時(shí)鐘緩沖與驅(qū)動(dòng)結(jié)構(gòu),可以到達(dá)芯片內(nèi)部任何一個(gè)邏輯單元,包括CLB、I/O引腳、內(nèi)嵌RAM、硬核乘法器等,而且時(shí)延和抖動(dòng)都很小。對(duì)FPGA設(shè)計(jì)而言,全局時(shí)

    2023年04月09日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包