【導(dǎo)讀】在設(shè)計(jì)階段,由于架構(gòu)師對(duì)電路的功耗要求越來(lái)越嚴(yán)格,并且倍增系數(shù)越來(lái)越大,因此對(duì)多路復(fù)用級(jí)聯(lián)時(shí)鐘分頻器的需求也隨之加大。本文分享給大家的是一種采用門(mén)控時(shí)鐘來(lái)設(shè)計(jì)低功耗時(shí)序電路,與傳統(tǒng)電路相比,可支持不同的輸出頻率,同時(shí)消耗更低的功耗。
在傳統(tǒng)設(shè)計(jì)中,所有計(jì)算機(jī)運(yùn)算(算法、邏輯和存儲(chǔ)進(jìn)程)都參考時(shí)鐘同步執(zhí)行,時(shí)鐘增加了設(shè)計(jì)中的時(shí)序電路數(shù)量。在這個(gè)電池供電設(shè)備大行其道的移動(dòng)時(shí)代,為了節(jié)省每一毫瓦(mW)的功耗,廠商間展開(kāi)了殘酷的競(jìng)爭(zhēng),因此將電路分成多個(gè)電源域并根據(jù)要求關(guān)閉它們,并且在設(shè)計(jì)每個(gè)時(shí)序電路的同時(shí)節(jié)省功耗,這兩點(diǎn)至關(guān)重要。時(shí)序電路(如計(jì)數(shù)器和寄存器)在現(xiàn)代設(shè)計(jì)中無(wú)處不在。本文以約翰遜計(jì)數(shù)器為例介紹了如何采用有效門(mén)控時(shí)鐘來(lái)設(shè)計(jì)高能效的時(shí)序電路。
約翰遜計(jì)數(shù)器系統(tǒng),可同步提供多種特殊類(lèi)型的數(shù)據(jù)序列,這對(duì)于大多數(shù)重要應(yīng)用(如D/A轉(zhuǎn)換器、FSM和時(shí)鐘分頻器)來(lái)說(shuō)至關(guān)重要。為支持不同頻率(從MHz 到 GHz)的模塊,越來(lái)越多的IP集成到片上系統(tǒng),因此,設(shè)計(jì)中在不同層級(jí)實(shí)施了許多可支持多個(gè)分頻因子的時(shí)鐘分頻器。本文中,我們介紹了一款節(jié)能設(shè)計(jì),即用帶有門(mén)控時(shí)鐘的多級(jí)可編程約翰遜計(jì)數(shù)器系統(tǒng)來(lái)取代多個(gè)時(shí)鐘分頻器,該計(jì)數(shù)器可提供8至任何偶數(shù)值(在本文中為38)的時(shí)鐘分頻因子。下面,我們將探討實(shí)施細(xì)節(jié)和該技術(shù)的優(yōu)劣。
典型時(shí)序電路
圖1給出的是一款傳統(tǒng)4位上升沿約翰遜計(jì)數(shù)器。約翰遜計(jì)數(shù)器只不過(guò)是修改過(guò)的移位寄存器,其最后一個(gè)D
觸發(fā)器的反相輸出作為第一個(gè)D觸發(fā)器的輸入。所有其他觸發(fā)器將接收上一個(gè)觸發(fā)器所提供的輸出。
圖1:傳統(tǒng)約翰遜計(jì)數(shù)器。
如表1所示,在所有的縱列中,4個(gè)連續(xù)的“0”后面都跟隨著4個(gè)連續(xù)的“1”,但所有縱列都位于不同的階段。約翰遜計(jì)數(shù)器可同步創(chuàng)建一個(gè)特定的數(shù)據(jù)模式。該數(shù)據(jù)模式在建模時(shí)非常有用,因?yàn)樗梢允褂萌魏纬轭^就可以產(chǎn)生一個(gè)有不同階段的時(shí)鐘樣式的模式。此外,從表中可以推導(dǎo)出,約翰遜計(jì)數(shù)器只使用了N個(gè)觸發(fā)器提供2N個(gè)狀態(tài),因此,與標(biāo)準(zhǔn)環(huán)形計(jì)數(shù)器相比,約翰遜計(jì)數(shù)器僅需要一半數(shù)量的觸發(fā)器便可實(shí)現(xiàn)同樣的MOD。
表1:約翰遜計(jì)數(shù)器的狀態(tài)表。
[page]
典型時(shí)序電路的缺陷
如圖1所示,這種電路最大的缺點(diǎn)是不可配置,因此,不能改變時(shí)鐘分頻因子。一個(gè)N觸發(fā)器設(shè)計(jì)只能產(chǎn)生2N個(gè)周期的時(shí)鐘。需要預(yù)先將固定數(shù)量的觸發(fā)器加入到設(shè)計(jì)中,才能產(chǎn)生固定周期的時(shí)鐘。這大大阻礙了特定時(shí)鐘的設(shè)計(jì),而且多個(gè)這樣的設(shè)計(jì),需要多種分頻因子來(lái)進(jìn)行分頻。
另外,該設(shè)計(jì)非常耗能,并且也沒(méi)有機(jī)制可通過(guò)高效門(mén)控時(shí)鐘來(lái)節(jié)省動(dòng)態(tài)功耗。如表1所示,Q3只能在時(shí)鐘脈沖2和時(shí)鐘脈沖6中改變其輸出,對(duì)于所有其他時(shí)鐘而言,觸發(fā)器一次又一次地存儲(chǔ)了相同的數(shù)據(jù)。這導(dǎo)致在時(shí)鐘周期內(nèi)產(chǎn)生了不必要的功耗,而采用適合的門(mén)控時(shí)鐘可解決該問(wèn)題。
通過(guò)調(diào)整結(jié)構(gòu)和門(mén)控時(shí)鐘來(lái)增強(qiáng)電路
任何時(shí)序電路都可通過(guò)調(diào)整結(jié)構(gòu)和有效的門(mén)控時(shí)鐘加以增強(qiáng)。圖1中所示的約翰遜計(jì)數(shù)器在圖2種得到了增強(qiáng),可以靈活地支持多種分頻因子,產(chǎn)生可變化的輸出頻率。
為了使其可編程,觸發(fā)器的多個(gè)延遲階段都加入了所需的組合邏輯,以根據(jù)所需分頻因子進(jìn)行選擇。
圖2顯示的就是一款低功耗可編程約翰遜計(jì)數(shù)器。該電路包括級(jí)聯(lián)延遲階段B1、B2、B3、B4、逆變器I、參考時(shí)鐘輸入CLK、門(mén)控時(shí)鐘邏輯CGL,以及控制邏輯(分頻器和減法器),可根據(jù)要求選擇觸發(fā)器組合。
圖2:低功耗多級(jí)可編程約翰遜計(jì)數(shù)器。
在圖2所示的修改后的約翰遜計(jì)數(shù)器電路中,我們采用了19個(gè)D觸發(fā)器,這些觸發(fā)器提供8至38以?xún)?nèi)的偶數(shù)值的分頻因子??赏ㄟ^(guò)添加額外的觸發(fā)器和多路復(fù)用器,使所需分頻因子進(jìn)一步增加至任何偶數(shù)值。多個(gè)路徑可將觸發(fā)器 “a、j、o和r” 的輸出連接至相應(yīng)的多路復(fù)用器輸入,例如,分流路徑將觸發(fā)器 “a”的輸出連接至第一個(gè)多路復(fù)用器的第一個(gè)輸入,延遲路徑則將觸發(fā)器“a”的輸出[經(jīng)過(guò)一組觸發(fā)器(b、c、d、e、f、g、h、i)]連接至第一個(gè)多路復(fù)用器的第二個(gè)輸入。這種實(shí)施方案允許選擇多路復(fù)用器輸出,使電路具備所需的可配置性,可以支持多個(gè)分頻因子。
[page]
如圖3所示,為了節(jié)省功耗,控制電路輸出饋入CGL中,以根據(jù)所需分頻因子啟用或禁用“延遲路徑觸發(fā)器”的時(shí)鐘。當(dāng)分頻因子為2N時(shí),需要N個(gè)觸發(fā)器提供所需的時(shí)鐘頻率。為了促進(jìn)多路復(fù)用器輸入的選擇,并為時(shí)鐘門(mén)控邏輯啟用所選的輸入,我們添加了一個(gè)主要由減法器構(gòu)成的控制邏輯。該減法器可根據(jù)用戶(hù)所提供的分頻因子,將N-4作為輸出提供,并且減法器(sel[3:0])的二進(jìn)制輸出位數(shù)每個(gè)都可作為4個(gè)多路復(fù)用器(1st、2nd、3rd、4th)的相應(yīng)選擇線路,并使CGL以高效的方式對(duì)觸發(fā)器的時(shí)鐘進(jìn)行門(mén)控。
這有效地實(shí)現(xiàn)了設(shè)計(jì)的可編程化,并降低了計(jì)數(shù)器的動(dòng)態(tài)功耗。
圖3:電路運(yùn)算說(shuō)明圖。
[page]
電路運(yùn)算
以分頻因子為10(即2N=10)的電路為例。由于傳統(tǒng)約翰遜計(jì)數(shù)器在分頻因子為2N時(shí)需要N個(gè)觸發(fā)器,要使分頻因子為10,電路中需要2N/2 = 10/2 = 5個(gè)觸發(fā)器。分頻器電路的輸出是2N/2 = 5,這時(shí)減法器的輸出則為(5-4) = 1,再饋入多路復(fù)用器的選擇線路,其二進(jìn)制表示為0001。這個(gè)4位sel[3:0]=0001信號(hào)極為重要,因?yàn)樗粌H控制著門(mén)控時(shí)鐘邏輯,還在分流和延遲路徑中做出選擇。
圖4:分頻因子為10的電路運(yùn)算。
在這種情況下,只有Sel[0]會(huì)變?yōu)?并啟用s觸發(fā)器的時(shí)鐘,并且同樣地,sel[3]、sel[2]、sel[1]將相應(yīng)禁用 (b、c、d、e、f、g、h、i)、(k, l, m, n)、(p、q)觸發(fā)器的時(shí)鐘,見(jiàn)圖4中突顯部分。另外需要注意的是,“a, j, o 和r”觸發(fā)器將始終啟用。這樣一來(lái),不僅啟用了所需的觸發(fā)器,并且該電路可在第4個(gè)多路復(fù)用器的輸出上獲得所需的輸出時(shí)鐘。因此,在這個(gè)示例中,共有5個(gè)觸發(fā)器接收到時(shí)鐘,其他觸發(fā)器的時(shí)鐘將自動(dòng)被禁用。
我們對(duì)上述計(jì)數(shù)器進(jìn)行了模擬,其結(jié)果以RTL波形的形式呈現(xiàn)在圖5中。根據(jù)圖5可以推出:修改后的計(jì)數(shù)器采用sel[3:0]作為4’h0001,將一個(gè)100 MHz的時(shí)鐘進(jìn)行分頻,提供10 MHz的輸出。
圖5:分頻因子為10的波形。
[page]
推薦的電路可實(shí)現(xiàn)各種組合,表2列出了多路復(fù)用器所選擇的輸入。
表2:不同分頻因子的多路復(fù)用器和CGIC的選擇邏輯。
推薦方法的優(yōu)勢(shì)
本文所介紹的約翰遜計(jì)數(shù)器可根據(jù)分頻因子(范圍為8至38)進(jìn)行編程,按提供給計(jì)數(shù)器組合邏輯的輸入所配置的提供一系列輸出頻率。
即使此計(jì)數(shù)器中配備了額外的硬件來(lái)實(shí)現(xiàn)可編程性,但是該電路的功耗通過(guò)一個(gè)邏輯提供的有效門(mén)控時(shí)鐘進(jìn)行控制,該邏輯與在選擇階段挑選多路復(fù)用器時(shí)所采用的邏輯相同,并啟用門(mén)控時(shí)鐘單元。
因此,將門(mén)控時(shí)鐘添加到設(shè)計(jì)內(nèi)以后,任何從移位寄存器傳送至計(jì)數(shù)器的時(shí)序邏輯都可以變得更加高效,并且片上系統(tǒng)的一系列此類(lèi)電路綜合起來(lái)可以節(jié)省功耗并延長(zhǎng)設(shè)備電池壽命。
總結(jié)
在設(shè)計(jì)階段,由于架構(gòu)師對(duì)電路的功耗要求越來(lái)越嚴(yán)格,并且倍增系數(shù)越來(lái)越大,因此對(duì)多路復(fù)用級(jí)聯(lián)時(shí)鐘分頻器的需求也隨之加大,但這種分頻器會(huì)使電路消耗更多的功耗,并且占用更大的芯片面積。結(jié)構(gòu)調(diào)整后的設(shè)計(jì)卻提供了一個(gè)更加輕松的解決方案,與傳統(tǒng)電路相比,重組后的電路可支持不同的輸出頻率,同時(shí)消耗更低的功耗。該解決方案還可輕松應(yīng)用至各種其他設(shè)計(jì)中,使其他設(shè)計(jì)變得更加節(jié)能。