<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于BUFGMUX與DCM的FPGA時(shí)鐘電路設計

基于BUFGMUX與DCM的FPGA時(shí)鐘電路設計

——
作者:宋威,方穗明 時(shí)間:2007-01-26 來(lái)源:《現代電子技術(shù)》 收藏

在當前的數字集成電路設計中,同步電路占了絕大部分。所謂同步電路,即電路中的所有寄存器由為數不多的幾個(gè)全局時(shí)鐘驅動(dòng),被相同時(shí)鐘信號驅動(dòng)的寄存器共同組成一個(gè)時(shí)鐘域,并可認為同時(shí)時(shí)鐘域內所有寄存器的時(shí)鐘沿同時(shí)到達。

然而,在實(shí)際電路中,同時(shí)鐘域內寄存器時(shí)鐘沿的到達時(shí)間存在偏差,即時(shí)鐘偏差。通過(guò)合理的時(shí)鐘設計,可以減少這種時(shí)鐘偏差,使其相對時(shí)鐘周期可以忽略不計,從而達到同步的效果。

本文引用地址:http://dyxdggzs.com/article/20762.htm

1 asic的時(shí)鐘電路

在asic的電路設計中,自動(dòng)布局布線(xiàn)工具使用動(dòng)態(tài)搭建時(shí)鐘緩沖器樹(shù)的方法來(lái)解決時(shí)鐘偏差問(wèn)題。其基本思想就是控制時(shí)鐘源與寄存器之間的門(mén)延時(shí)與線(xiàn)路延時(shí)。如果同時(shí)鐘域內所有寄存器的時(shí)鐘端與時(shí)鐘源之間的路徑,包含大體相同的時(shí)鐘緩沖器個(gè)數與連線(xiàn)長(cháng)度,就可以近似地認為時(shí)鐘信號從時(shí)鐘源到各寄存器時(shí)鐘端的延時(shí)是相等的,因此寄存器間的時(shí)鐘偏差可以忽略不計。

asic時(shí)鐘樹(shù)結構如圖1所示。

2 fpga的時(shí)鐘電路

隨著(zhù)fpga集成度的不斷提升,單片fpga已經(jīng)可以完成百萬(wàn)門(mén)級的集成電路設計。因此,很多asic設計可以利用fpga完成流片前的功能驗證。甚至直接使用fpga進(jìn)行商業(yè)生產(chǎn)。但是,fpga的特殊結構決定了基于fpga的設計不能直接照搬在asic設計當中的某些經(jīng)驗,時(shí)鐘設計便是其中較突出的一條。asic時(shí)鐘樹(shù)結構如圖1所示。

由于fpga的生產(chǎn)工藝,在出廠(chǎng)之前,fpga內部元件之間的連線(xiàn)已經(jīng)完全固定。同時(shí),fpga具有連線(xiàn)延時(shí)相對門(mén)延時(shí)較大的特點(diǎn),造成fpga并不能通過(guò)動(dòng)態(tài)搭建時(shí)鐘緩沖器樹(shù)的方法解決時(shí)鐘偏差問(wèn)題。實(shí)際上,時(shí)鐘樹(shù)結構已經(jīng)被預先固化在芯片當中。針對xilinx公司的virtex ⅱ系列的fpga。其時(shí)鐘樹(shù)結構如圖2所示。

該系列fpga直接利用單獨一層銅布線(xiàn)層搭建時(shí)鐘網(wǎng)絡(luò )。所有的時(shí)鐘信號,只能通過(guò)處于芯片縱向中軸線(xiàn)上下兩端的16個(gè)bufgmux進(jìn)入時(shí)鐘網(wǎng)絡(luò )。所有bufgmux輸出端一直延伸到芯片的中心,連接到銅布線(xiàn)層處于芯片中央縱向分布寬度為8的時(shí)鐘總線(xiàn)??v向時(shí)鐘總線(xiàn)再連接到橫向的8條寬度為8的時(shí)鐘總線(xiàn),進(jìn)而延伸到每一個(gè)clb(configurable logic block,可編程邏輯塊)的grm(general route matrix,通用布線(xiàn)矩陣陣列)上。

也就是說(shuō),在virtex ⅱ結構的fpga當中,最多可以存在16個(gè)時(shí)鐘域,然而同時(shí)只能存在最多8個(gè)全局時(shí)鐘(上下兩個(gè)對應的bufgmux共用一條時(shí)鐘總線(xiàn))。由于每個(gè)寄存器的時(shí)鐘端都通過(guò)橫向和縱向的時(shí)鐘總線(xiàn)連接到位于芯片中央的時(shí)鐘源,而時(shí)鐘源通過(guò)相同路徑長(cháng)度的連線(xiàn)和bufgmux連接,因此可以認為從同一bufgmux出發(fā)的時(shí)鐘信號到芯片內所有寄存器的延時(shí)相同,從而沒(méi)有時(shí)鐘偏差,經(jīng)過(guò)實(shí)際工程驗證,同bufgmux構成的時(shí)鐘域內時(shí)鐘偏差最多不超過(guò)0.3ns。

3 設計實(shí)例

為了更好的說(shuō)明fpga 時(shí)鐘電路的使用方法與其特殊的問(wèn)題,下面將用一個(gè)在virtex ⅱ 6000 fpga上實(shí)現的設計實(shí)例具體說(shuō)明時(shí)鐘電路建立的方法。

3.1 問(wèn)題分析

圖3顯示了在該設計當中的4個(gè)時(shí)鐘域。

這樣的時(shí)鐘結構,在asic的時(shí)鐘樹(shù)設計中,并不會(huì )引發(fā)很大的問(wèn)題。但是在fpga的設計中,如果不加處理,會(huì )引起電路綜合、布局布線(xiàn)的巨大壓力。其主要的問(wèn)題源于fpga綜合軟件對bufgmux的自動(dòng)指定,造成門(mén)控時(shí)鐘和分頻時(shí)鐘與源時(shí)鐘之間出現較大的時(shí)鐘偏差。

一般,綜合軟件可以通過(guò)verilog hdl的“posedge”和“negedge”關(guān)鍵字,或者vhdl當中的“event”關(guān)鍵字判斷出時(shí)鐘信號。然而,綜合工具并沒(méi)有判斷門(mén)控時(shí)鐘與分頻時(shí)鐘的能力,即就是綜合工具認定的時(shí)鐘只能是一根網(wǎng)線(xiàn),而不能穿越一般的邏輯門(mén)。為了讓同時(shí)鐘域的寄存器間沒(méi)有時(shí)鐘偏差。綜合工具會(huì )自動(dòng)在時(shí)鐘的源頭為時(shí)鐘信號指定bufgmux,使得時(shí)鐘信號使用銅布線(xiàn)資源。

經(jīng)過(guò)綜合工具的自動(dòng)指定,最終會(huì )將圖3當中時(shí)鐘結構轉換為圖4中的電路結構。

正如第2節所述,fpga通過(guò)其特定的時(shí)鐘網(wǎng)絡(luò ),使得時(shí)鐘信號從bufgmux到每個(gè)clb的時(shí)鐘端沒(méi)有時(shí)鐘偏差。但是,此結構的間接后果是為每個(gè)clb的時(shí)鐘端添加了一個(gè)相同的時(shí)鐘線(xiàn)延時(shí),即從bufgmux通過(guò)時(shí)鐘網(wǎng)絡(luò )到達grm的時(shí)間,在正常情況下,這個(gè)時(shí)間為6-7ns。

正是由于這一點(diǎn),在綜合工具自動(dòng)指定bufgmux之后,為了實(shí)現clk_2xg這個(gè)門(mén)控時(shí)鐘,必須將clk_2x時(shí)鐘信號通過(guò)與門(mén),再經(jīng)過(guò)bufgmux重新連接到時(shí)鐘資源。顯而易見(jiàn),clk_2xg時(shí)鐘域的時(shí)鐘信號相對時(shí)鐘源clk_in來(lái)說(shuō)經(jīng)過(guò)了兩次bufgmux和clk_2x的時(shí)鐘域產(chǎn)生了至少6ns的時(shí)鐘偏差。同理,clk_1xg和clk_1x相應與clk_2x之間存在12ns和6ns的時(shí)鐘偏差。相對clk_2x 80mhz的時(shí)鐘頻率,一周期為12.5ns,顯然最大12ns的跨時(shí)鐘域的時(shí)鐘偏差是不能忍受的。從圖5的后仿波形當中,可以很明顯地看到這個(gè)時(shí)鐘偏差達到了13.34ns。

3.2 解決方案

3.2.1 門(mén)控時(shí)鐘

實(shí)際上,bufgmux并不是簡(jiǎn)單的時(shí)鐘緩沖器,他是一個(gè)具有低時(shí)鐘偏差、高驅動(dòng)能力并帶有選擇端的雙路選擇器。使用不同的原語(yǔ)進(jìn)行實(shí)例化,bufgmux可以構成時(shí)鐘選擇器、時(shí)鐘門(mén)控器或者簡(jiǎn)單的時(shí)鐘緩沖器[1]。

盡管bufgmux就3種使用方式,但如果讓綜合軟件自動(dòng)在合適的位置指定bufgmux,由于綜合軟件只能認出網(wǎng)線(xiàn)形式的時(shí)鐘信號,因而只會(huì )使用bufg的方式使用bufgmux,造成了上述的問(wèn)題。

為了去除由于門(mén)控時(shí)鐘造成的時(shí)鐘偏差,只能通過(guò)手動(dòng)更改代碼,在合適的位置實(shí)例化bufgmux。在此例中可以為clk_2x信號實(shí)例化bufg原語(yǔ),而使用bufgce原語(yǔ)替代原來(lái)的與門(mén),并直接使用clk_in為bugce的輸入。這樣clk_2x和clk_2xg都只經(jīng)過(guò)了一個(gè)bufgmux,因此可以近似地認為不存在時(shí)鐘偏差。同理clk_1x和clk_1xg之間的時(shí)鐘偏差也可以解決。

3.2.2 分頻時(shí)鐘

然而,bufgmux的3種使用方式并不能解決分頻寄存器造成的clk_1x和clk_2x之間的時(shí)鐘偏差問(wèn)題。比較簡(jiǎn)單的一種方法是使用clk_in作為分頻寄存器的輸入,而不對clk_2x進(jìn)行分頻。

盡管如此,由于分頻寄存器的器件延時(shí)和相應的連接線(xiàn)路延時(shí),clk_2x和clk_1x之間仍然存在大約2-3ns的時(shí)鐘偏差,對于某些跨時(shí)鐘域的關(guān)鍵路徑和時(shí)鐘保持(hold time)約束來(lái)說(shuō),仍然過(guò)大。另外,由于clk_in被分頻寄存器當作時(shí)鐘使用,可能會(huì )造成綜合軟件自動(dòng)給clk_in指定bufg,導致所有時(shí)鐘信號都需要經(jīng)過(guò)兩個(gè)bufgmux,產(chǎn)生一個(gè)12ns左右的輸入延時(shí)。

針對這種問(wèn)題,可以使用fpga當中的另一個(gè)特殊資源——dcm(digital clock manager,數字時(shí)鐘管理單元)。dcm當中包含一個(gè)dll(delay-locked loop,延遲鎖定電路),可以提供對時(shí)鐘信號的二倍頻和分頻功能,并且能夠維持各輸出時(shí)鐘之間的相位關(guān)系,即零時(shí)鐘偏差(更詳細的說(shuō)明可查看參考文獻[1,2]。

因此,針對分頻時(shí)鐘,可以直接利用dcm的分頻功能,從而省去分頻寄存器,徹底地解決了clk_2x和clk_1x之間的時(shí)鐘偏差。不過(guò)更合適的選擇是使用dcm的倍頻功能,這樣只需要為fpga準備一個(gè)40mhz的低頻時(shí)鐘輸入,相對80mhz要更容易實(shí)現。

3.2.3 最終實(shí)現

通過(guò)bufgmux和dcm的使用,可以將圖4改造為圖6所示的電路結構。

改造后,每個(gè)時(shí)鐘域的時(shí)鐘信號和信號源clk_in之間都只通過(guò)一個(gè)dcm和一個(gè)bufgmux,他們之間的時(shí)鐘偏差僅為時(shí)鐘網(wǎng)絡(luò )本身的時(shí)鐘偏差和dcm的輸出到各bufgmux輸入端之間的線(xiàn)路延時(shí)偏差。如果進(jìn)一步優(yōu)化,通過(guò)在布局布線(xiàn)的步驟施加對bufgmux的位置約束,迫使圖5中的4個(gè)bufgmux都處于fpga的上方或者下方的8個(gè)bufgmux上,跨時(shí)鐘域的時(shí)鐘偏差在virtex ⅱ 6000fpga當中可以控制在0.5ns以?xún)?,基本滿(mǎn)足80mhz的要求。改造后的時(shí)鐘電路的后仿波形如圖7所示,其最大的時(shí)鐘偏差為0.722ns。

實(shí)際上,dcm和bufgmux從virtex ⅱ開(kāi)始,已經(jīng)成為fpga的標準元件,可以在spartan-3,virtex ⅱ,virtex ⅱ pro,virtex-4等器件上直接使用,因此該電路結構也可相應推廣到這些fpga的電路設計當中。

4 結語(yǔ)

本文通過(guò)比較asic時(shí)鐘樹(shù)結構和fpga時(shí)鐘網(wǎng)絡(luò )的結構,說(shuō)明了fpga時(shí)鐘網(wǎng)絡(luò )的自身特點(diǎn)。通過(guò)一個(gè)設計實(shí)例,分析了直接使用綜合工具實(shí)現多時(shí)鐘域的電路設計所存在的問(wèn)題,并針對這些問(wèn)題提出了利用bufgmux的三種使用方式代替門(mén)控時(shí)鐘與利用dcm代替分頻時(shí)鐘的方法,較好地解決了fpga時(shí)鐘電路的時(shí)鐘偏差問(wèn)題,并具有一定的適用性。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>