基于BUFGMUX與DCM的FPGA時鐘電路設(shè)計
發(fā)布時間:2008/5/28 0:00:00 訪問次數(shù):516
在當(dāng)前的數(shù)字集成電路設(shè)計中,同步電路占了絕大部分。所謂同步電路,即電路中的所有寄存器由為數(shù)不多的幾個全局時鐘驅(qū)動,被相同時鐘信號驅(qū)動的寄存器共同組成一個時鐘域,并可認(rèn)為同時時鐘域內(nèi)所有寄存器的時鐘沿同時到達(dá)。
然而,在實際電路中,同時鐘域內(nèi)寄存器時鐘沿的到達(dá)時間存在偏差,即時鐘偏差。通過合理的時鐘設(shè)計,可以減少這種時鐘偏差,使其相對時鐘周期可以忽略不計,從而達(dá)到同步的效果。
1 asic的時鐘電路
在asic的電路設(shè)計中,自動布局布線工具使用動態(tài)搭建時鐘緩沖器樹的方法來解決時鐘偏差問題。其基本思想就是控制時鐘源與寄存器之間的門延時與線路延時。如果同時鐘域內(nèi)所有寄存器的時鐘端與時鐘源之間的路徑,包含大體相同的時鐘緩沖器個數(shù)與連線長度,就可以近似地認(rèn)為時鐘信號從時鐘源到各寄存器時鐘端的延時是相等的,因此寄存器間的時鐘偏差可以忽略不計。
asic時鐘樹結(jié)構(gòu)如圖1所示。
2 fpga的時鐘電路
隨著fpga集成度的不斷提升,單片fpga已經(jīng)可以完成百萬門級的集成電路設(shè)計。因此,很多asic設(shè)計可以利用fpga完成流片前的功能驗證。甚至直接使用fpga進(jìn)行商業(yè)生產(chǎn)。但是,fpga的特殊結(jié)構(gòu)決定了基于fpga的設(shè)計不能直接照搬在asic設(shè)計當(dāng)中的某些經(jīng)驗,時鐘設(shè)計便是其中較突出的一條。asic時鐘樹結(jié)構(gòu)如圖1所示。
由于fpga的生產(chǎn)工藝,在出廠之前,fpga內(nèi)部元件之間的連線已經(jīng)完全固定。同時,fpga具有連線延時相對門延時較大的特點,造成fpga并不能通過動態(tài)搭建時鐘緩沖器樹的方法解決時鐘偏差問題。實際上,時鐘樹結(jié)構(gòu)已經(jīng)被預(yù)先固化在芯片當(dāng)中。針對xilinx公司的virtex ⅱ系列的fpga。其時鐘樹結(jié)構(gòu)如圖2所示。
該系列fpga直接利用單獨一層銅布線層搭建時鐘網(wǎng)絡(luò)。所有的時鐘信號,只能通過處于芯片縱向中軸線上下兩端的16個bufgmux進(jìn)入時鐘網(wǎng)絡(luò)。所有bufgmux輸出端一直延伸到芯片的中心,連接到銅布線層處于芯片中央縱向分布寬度為8的時鐘總線。縱向時鐘總線再連接到橫向的8條寬度為8的時鐘總線,進(jìn)而延伸到每一個clb(configurable logic block,可編程邏輯塊)的grm(general route matrix,通用布線矩陣陣列)上。
也就是說,在virtex ⅱ結(jié)構(gòu)的fpga當(dāng)中,最多可以存在16個時鐘域,然而同時只能存在最多8個全局時鐘(上下兩個對應(yīng)的bufgmux共用一條時鐘總線)。由于每個寄存器的時鐘端都通過橫向和縱向的時鐘總線連接到位于芯片中央的時鐘源,而時鐘源通過相同路徑長度的連線和bufgmux連接,因此可以認(rèn)為從同一bufgmux出發(fā)的時鐘信號到芯片內(nèi)所有寄存器的延時相同,從而沒有時鐘偏差,經(jīng)過實際工程驗證,同bufgmux構(gòu)成的時鐘域內(nèi)時鐘偏差最多不超過0.3ns。
3 設(shè)計實例
為了更好的說明fpga 時鐘電路的使用方法與其特殊的問題,下面將用一個在virtex ⅱ 6000 fpga上實現(xiàn)的設(shè)計實例具體說明時鐘電路建立的方法。
3.1 問題分析
圖3顯示了在該設(shè)計當(dāng)中的4個時鐘域。
這樣的時鐘結(jié)構(gòu),在asic的時鐘樹設(shè)計中,并不會引發(fā)很大的問題。但是在fpga的設(shè)計中,如果不加處理,會引起電路綜合、布局布線的巨大壓力。其主要的問題源于fpga綜合軟件對bufgmux的自動指定,造成門控時鐘和分頻時鐘與源時鐘之間出現(xiàn)較大的時鐘偏差。
一般,綜合軟件可以通過verilog hdl的“posedge”和“negedge”關(guān)鍵字,或者vhdl當(dāng)中的“event”關(guān)鍵字判斷出時鐘信號。然而,綜合工具并沒有判斷門控時鐘與分頻時鐘的能力,即就是綜合工具認(rèn)定的時鐘只能是一根網(wǎng)線,而不能穿越一般的邏輯門。為了讓同時鐘域的寄存器間沒有時鐘偏差。綜合工具會自動在時鐘的源頭為時鐘信號指定bufgmux,使得時鐘信號使用銅布線資源。
經(jīng)過綜合工具的自動指定,最終會將圖3當(dāng)中時鐘結(jié)構(gòu)轉(zhuǎn)換為圖4中的電路結(jié)構(gòu)。
正如第2節(jié)所述,fpga通過其特定的時鐘網(wǎng)絡(luò),使得時鐘信號從bufgmux到每個clb的時鐘端沒有時鐘偏差。但是,此結(jié)構(gòu)的間接后果是為每個clb的時鐘端添加了一個相同的時鐘線延時,即從bufgmux通過時鐘網(wǎng)絡(luò)到達(dá)grm的時間,在正常情況下,這個時間為6-7ns。
正是由于這一點,在綜合工具自動指定bufgmux之后,為了實現(xiàn)clk_2xg這個門控時鐘,必須將clk_2x時鐘信號通過與門,再經(jīng)過bufgmux重新連接到時鐘資源。顯而易見,clk_2xg時鐘域的時鐘信號相對時鐘源clk_in來說經(jīng)過了兩次bufgmux和clk_2x的時鐘域產(chǎn)生了至少6ns的時鐘偏差。同理,clk_1xg和clk_1x相應(yīng)與clk_2x之間存在12ns和6ns
在當(dāng)前的數(shù)字集成電路設(shè)計中,同步電路占了絕大部分。所謂同步電路,即電路中的所有寄存器由為數(shù)不多的幾個全局時鐘驅(qū)動,被相同時鐘信號驅(qū)動的寄存器共同組成一個時鐘域,并可認(rèn)為同時時鐘域內(nèi)所有寄存器的時鐘沿同時到達(dá)。
然而,在實際電路中,同時鐘域內(nèi)寄存器時鐘沿的到達(dá)時間存在偏差,即時鐘偏差。通過合理的時鐘設(shè)計,可以減少這種時鐘偏差,使其相對時鐘周期可以忽略不計,從而達(dá)到同步的效果。
1 asic的時鐘電路
在asic的電路設(shè)計中,自動布局布線工具使用動態(tài)搭建時鐘緩沖器樹的方法來解決時鐘偏差問題。其基本思想就是控制時鐘源與寄存器之間的門延時與線路延時。如果同時鐘域內(nèi)所有寄存器的時鐘端與時鐘源之間的路徑,包含大體相同的時鐘緩沖器個數(shù)與連線長度,就可以近似地認(rèn)為時鐘信號從時鐘源到各寄存器時鐘端的延時是相等的,因此寄存器間的時鐘偏差可以忽略不計。
asic時鐘樹結(jié)構(gòu)如圖1所示。
2 fpga的時鐘電路
隨著fpga集成度的不斷提升,單片fpga已經(jīng)可以完成百萬門級的集成電路設(shè)計。因此,很多asic設(shè)計可以利用fpga完成流片前的功能驗證。甚至直接使用fpga進(jìn)行商業(yè)生產(chǎn)。但是,fpga的特殊結(jié)構(gòu)決定了基于fpga的設(shè)計不能直接照搬在asic設(shè)計當(dāng)中的某些經(jīng)驗,時鐘設(shè)計便是其中較突出的一條。asic時鐘樹結(jié)構(gòu)如圖1所示。
由于fpga的生產(chǎn)工藝,在出廠之前,fpga內(nèi)部元件之間的連線已經(jīng)完全固定。同時,fpga具有連線延時相對門延時較大的特點,造成fpga并不能通過動態(tài)搭建時鐘緩沖器樹的方法解決時鐘偏差問題。實際上,時鐘樹結(jié)構(gòu)已經(jīng)被預(yù)先固化在芯片當(dāng)中。針對xilinx公司的virtex ⅱ系列的fpga。其時鐘樹結(jié)構(gòu)如圖2所示。
該系列fpga直接利用單獨一層銅布線層搭建時鐘網(wǎng)絡(luò)。所有的時鐘信號,只能通過處于芯片縱向中軸線上下兩端的16個bufgmux進(jìn)入時鐘網(wǎng)絡(luò)。所有bufgmux輸出端一直延伸到芯片的中心,連接到銅布線層處于芯片中央縱向分布寬度為8的時鐘總線?v向時鐘總線再連接到橫向的8條寬度為8的時鐘總線,進(jìn)而延伸到每一個clb(configurable logic block,可編程邏輯塊)的grm(general route matrix,通用布線矩陣陣列)上。
也就是說,在virtex ⅱ結(jié)構(gòu)的fpga當(dāng)中,最多可以存在16個時鐘域,然而同時只能存在最多8個全局時鐘(上下兩個對應(yīng)的bufgmux共用一條時鐘總線)。由于每個寄存器的時鐘端都通過橫向和縱向的時鐘總線連接到位于芯片中央的時鐘源,而時鐘源通過相同路徑長度的連線和bufgmux連接,因此可以認(rèn)為從同一bufgmux出發(fā)的時鐘信號到芯片內(nèi)所有寄存器的延時相同,從而沒有時鐘偏差,經(jīng)過實際工程驗證,同bufgmux構(gòu)成的時鐘域內(nèi)時鐘偏差最多不超過0.3ns。
3 設(shè)計實例
為了更好的說明fpga 時鐘電路的使用方法與其特殊的問題,下面將用一個在virtex ⅱ 6000 fpga上實現(xiàn)的設(shè)計實例具體說明時鐘電路建立的方法。
3.1 問題分析
圖3顯示了在該設(shè)計當(dāng)中的4個時鐘域。
這樣的時鐘結(jié)構(gòu),在asic的時鐘樹設(shè)計中,并不會引發(fā)很大的問題。但是在fpga的設(shè)計中,如果不加處理,會引起電路綜合、布局布線的巨大壓力。其主要的問題源于fpga綜合軟件對bufgmux的自動指定,造成門控時鐘和分頻時鐘與源時鐘之間出現(xiàn)較大的時鐘偏差。
一般,綜合軟件可以通過verilog hdl的“posedge”和“negedge”關(guān)鍵字,或者vhdl當(dāng)中的“event”關(guān)鍵字判斷出時鐘信號。然而,綜合工具并沒有判斷門控時鐘與分頻時鐘的能力,即就是綜合工具認(rèn)定的時鐘只能是一根網(wǎng)線,而不能穿越一般的邏輯門。為了讓同時鐘域的寄存器間沒有時鐘偏差。綜合工具會自動在時鐘的源頭為時鐘信號指定bufgmux,使得時鐘信號使用銅布線資源。
經(jīng)過綜合工具的自動指定,最終會將圖3當(dāng)中時鐘結(jié)構(gòu)轉(zhuǎn)換為圖4中的電路結(jié)構(gòu)。
正如第2節(jié)所述,fpga通過其特定的時鐘網(wǎng)絡(luò),使得時鐘信號從bufgmux到每個clb的時鐘端沒有時鐘偏差。但是,此結(jié)構(gòu)的間接后果是為每個clb的時鐘端添加了一個相同的時鐘線延時,即從bufgmux通過時鐘網(wǎng)絡(luò)到達(dá)grm的時間,在正常情況下,這個時間為6-7ns。
正是由于這一點,在綜合工具自動指定bufgmux之后,為了實現(xiàn)clk_2xg這個門控時鐘,必須將clk_2x時鐘信號通過與門,再經(jīng)過bufgmux重新連接到時鐘資源。顯而易見,clk_2xg時鐘域的時鐘信號相對時鐘源clk_in來說經(jīng)過了兩次bufgmux和clk_2x的時鐘域產(chǎn)生了至少6ns的時鐘偏差。同理,clk_1xg和clk_1x相應(yīng)與clk_2x之間存在12ns和6ns
熱門點擊
- 基于CD4060的硬件看門狗技術(shù)
- 用NCP1200代換脈寬調(diào)制控制UC3842
- 基于RFID技術(shù)的智能倉庫管理系統(tǒng)
- 建筑智能化系統(tǒng)設(shè)計任務(wù)書的編制
- 視頻安防監(jiān)控系統(tǒng)技術(shù)要求
- 多路溫度采集及監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
- 太原科技大學(xué) 劉立群 孫志毅
- 用ROM實現(xiàn)組合邏輯函數(shù)
- ESD知識
- 城市軌道交通電力綜合監(jiān)控系統(tǒng)的結(jié)構(gòu)與網(wǎng)絡(luò)通信
推薦技術(shù)資料
- 羅盤誤差及補(bǔ)償
- 造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細(xì)]
- EVL250WMG1L諧振轉(zhuǎn)換器應(yīng)用分析
- STGWA30IH160DF2
- 集成半橋 MOSFET 驅(qū)動器
- 全新AI操作系統(tǒng)One UI
- 全新空間音頻標(biāo)準(zhǔn)—Eclipsa Audio
- RISC-V MCU+接口技術(shù)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究