- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于门控时钟的低功耗时序电路设计
在传统设计中,所有计算机运算(算法、逻辑和存储进程)都参考时钟同步执行,时钟增加了设计中的时序电路数量。在这个电池供电设备大行其道的移动时代,为了节省每一毫瓦(mW)的功耗,厂商间展开了残酷的竞争,因此将电路分成多个电源域并根据要求关闭它们,并且在设计每个时序电路的同时节省功耗,这两点至关重要。时序电路(如计数器和寄存器)在现代设计中无处不在。本文以约翰逊计数器为例介绍了如何采用有效门控时钟来设计高能效的时序电路。
约翰逊计数器系统,可同步提供多种特殊类型的数据序列,这对于大多数重要应用(如D/A转换器、FSM和时钟分频器)来说至关重要。为支持不同频率(从MHz到GHz)的模块,越来越多的IP集成到片上系统,因此,设计中在不同层级实施了许多可支持多个分频因子的时钟分频器。本文中,我们介绍了一款节能设计,即用带有门控时钟的多级可编程约翰逊计数器系统来取代多个时钟分频器,该计数器可提供8至任何偶数值(在本文中为38)的时钟分频因子。下面,我们将探讨实施细节和该技术的优劣。
典型时序电路
图1给出的是一款传统4位上升沿约翰逊计数器。约翰逊计数器只不过是修改过的移位寄存器,其最后一个D触发器的反相输出作为第一个D触发器的输入。所有其他触发器将接收上一个触发器所提供的输出。
图1 传统约翰逊计数器
如表1所示,在所有的纵列中,4个连续的"0"后面都跟随着4个连续的"1",但所有纵列都位于不同的阶段。约翰逊计数器可同步创建一个特定的数据模式。该数据模式在建模时非常有用,因为它可以使用任何抽头就可以产生一个有不同阶段的时钟样式的模式。此外,从表中可以推导出,约翰逊计数器只使用了N个触发器提供2N个状态,因此,与标准环形计数器相比,约翰逊计数器仅需要一半数量的触发器便可实现同样的MOD.
表1 约翰逊计数器的状态图
典型时序电路的缺陷
如图1所示,这种电路最大的缺点是不可配置,因此,不能改变时钟分频因子。一个N触发器设计只能产生2N个周期的时钟。需要预先将固定数量的触发器加入到设计中,才能产生固定周期的时钟。这大大阻碍了特定时钟的设计,而且多个这样的设计,需要多种分频因子来进行分频。
另外,该设计非常耗能,并且也没有机制可通过高效门控时钟来节省动态功耗。如表1所示,Q3只能在时钟脉冲2和时钟脉冲6中改变其输出,对于所有其他时钟而言,触发器一次又一次地存储了相同的数据。这导致在时钟周期内产生了不必要的功耗,而采用适合的门控时钟可解决该问题。
通过调整结构和门控时钟来增强电路
任何时序电路都可通过调整结构和有效的门控时钟加以增强。图1中所示的约翰逊计数器在图2种得到了增强,可以灵活地支持多种分频因子,产生可变化的输出频率。
为了使其可编程,触发器的多个延迟阶段都加入了所需的组合逻辑,以根据所需分频因子进行选择。
图2显示的就是一款低功耗可编程约翰逊计数器。该电路包括级联延迟阶段B1、B2、B3、B4、逆变器I、参考时钟输入CLK、门控时钟逻辑CGL,以及控制逻辑(分频器和减法器),可根据要求选择触发器组合。
图2 低功耗可编程的约翰逊计数器
在图2所示的修改后的约翰逊计数器电路中,我们采用了19个D触发器,这些触发器提供8至38以内的偶数值的分频因子。可通过添加额外的触发器和多路复用器,使所需分频因子进一步增加至任何偶数值。多个路径可将触发器"a、j、o和r"的输出连接至相应的多路复用器输入,例如,分流路径将触发器"a"的输出连接至第一个多路复用器的第一个输入,延迟路径则将触发器"a"的输出[经过一组触发器(b、c、d、e、f、g、h、i)]连接至第一个多路复用器的第二个输入。这种实施方案允许选择多路复用器输出,使电路具备所需的可配置性,可以支持多个分频因子。
如图3所示,为了节省功耗,控制电路输出馈入CGL中,以根据所需分频因子启用或禁用"延迟路径触发器"的时钟。当分频因子为2N时,需要N个触发器提供所需的时钟频率。为了促进多路复用器输入的选择,并为时钟门控逻辑启用所选的输入,我们添加了一个主要由减法器构成的控制逻辑。该减法器可根据用户所提供的分频因子,将N-4作为输出提供,并且减法器(sel[3:0])的二进制输出位数每个都可作为4个多路复用器(1st、2nd、3rd、4th)的相应选择线路,并使CGL以高效的方式对触发器的时钟进行门控。
这有效地实现了设计的可编程化,并降低了计数器的动态功耗。
图3 电路运算说明图
电路运算
以分频因子为10(即2N=10)的电路为例。由于传统约翰逊计数器在分频因子为2N时需要N个触发器,要使分频因子为10,电路中需要2N/2 = 10/2 = 5个触发器。分频器电路的输出是2N/2 = 5,这时减法器的输出则为(5-4)= 1,再馈入多路复用器的选择线路,其二进制表示为0001.这个4位sel[3:0]=0001信号极为重要,因为它不仅控制着门控时钟逻辑,还在分流和延迟路径中做出选择。
图4 分频因子为10的电路运算
在这种情况下,只有Sel[0]会变为1并启用s触发器的时钟,并且同样地,sel[3]、sel[2]、sel[1]将相应禁用(b、c、d、e、f、g、h、i)、(k, l, m, n)、(p、q)触发器的时钟,见图4中突显部分。另外需要注意的是,"a, j, o和r"触发器将始终启用。这样一来,不仅启用了所需的触发器,并且该电路可在第4个多路复用器的输出上获得所需的输出时钟。因此,在这个示例中,共有5个触发器接收到时钟,其他触发器的时钟将自动被禁用。
我们对上述计数器进行了模拟,其结果以RTL波形的形式呈现在图5中。根据图5可以推出:修改后的计数器采用sel[3:0]作为4'h0001,将一个100 MHz的时钟进行分频,提供10 MHz的输出。
图5 分频因子为10的波形
推荐的电路可实现各种组合,表2列出了多路复用器所选择的输入。
表2 不同分频因子的多路复用器
推荐方法的优势
本文所介绍的约翰逊计数器可根据分频因子(范围为8至38)进行编程,按提供给计数器组合逻辑的输入所配置的提供一系列输出频率。
即使此计数器中配备了额外的硬件来实现可编程性,但是该电路的功耗通过一个逻辑提供的有效门控时钟进行控制,该逻辑与在选择阶段挑选多路复用器时所采用的逻辑相同,并启用门控时钟单元。
因此,将门控时钟添加到设计内以后,任何从移位寄存器传送至计数器的时序逻辑都可以变得更加高效,并且片上系统的一系列此类电路综合起来可以节省功耗并延长设备电池寿命。
总结
在设计阶段,由于架构师对电路的功耗要求越来越严格,并且倍增系数越来越大,因此对多路复用级联时钟分频器的需求也随之加大,但这种分频器会使电路消耗更多的功耗,并且占用更大的芯片面积。结构调整后的设计却提供了一个更加轻松的解决方案,与传统电路相比,重组后的电路可支持不同的输出频率,同时消耗更低的功耗。该解决方案还可轻松应用至各种其他设计中,使其他设计变得更加节能。
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...
闂傚倸鍊搁崐宄懊归崶顒夋晪鐟滃繘骞戦姀銈呯疀妞ゆ棁妫勬惔濠囨⒑瑜版帒浜伴柛鐘冲浮瀹曟垿骞橀幇浣瑰兊濡炪倖鍔戦崹鍦矈椤曗偓濮婃椽妫冨☉娆樻闂佺ǹ锕ら…鐑界嵁閹达箑绀嬫い鎺戝€婚幊婵嗩渻閵堝棛澧痪鏉跨Т閳诲秵绻濋崶銊㈡嫽婵炴挻鍩冮崑鎾寸箾娴e啿娲﹂弲顒勭叓閸ャ劎鈽夐柣鎺戠仛閵囧嫰骞掗幋婵愪患闂佽棄鍟伴崰鏍蓟閺囥垹閱囨繝鍨姈鏁堥梻浣呵归鍐礉瀹ュ桅闁告洦鍨伴崘鈧梺闈涒康婵″洤鈻撻妶鍡欑瘈闁冲皝鍋撻柛鏇ㄥ墰椤︿即姊洪崫鍕効缂傚秳绶氶悰顔嘉熼崗鐓庢瀭闂佸憡娲﹂崢褰掑焵椤掆偓閿曨亜顫忓ú顏呭仭闁哄瀵т簺婵$偑鍊栭崹鐢杆囬悽绋课ュù锝呭濞笺劑鏌嶈閸撶喖鐛崘顔碱潊闁靛牆鎳庣粣娑欑節閻㈤潧孝閻庢凹鍘奸埢鎾活敊閸撗咃紳闂佺ǹ鏈懝楣冨焵椤掑嫷妫戠紒顔肩墛缁楃喖鍩€椤掑嫨鈧線寮介鐐殿吅闂佹寧娲嶉崑鎾剁磼閻欌偓閸ㄥ爼寮婚妸鈺傚亞闁稿本绋戦锟� | More...
闂傚倸鍊搁崐宄懊归崶顒夋晪鐟滃繘骞戦姀銈呯疀妞ゆ棁妫勬惔濠囨⒑瑜版帒浜伴柛鐘冲浮瀹曟垿骞橀幇浣瑰兊濡炪倖鍔戦崹鍦矈椤曗偓濮婃椽妫冨☉娆樻闂佺ǹ锕ら…鐑界嵁閹达箑绀嬫い鎺戝€婚幊婵嗩渻閵堝棛澧痪鏉跨Т閳诲秵绻濋崶銊㈡嫽婵炴挻鍩冮崑鎾寸箾娴e啿娲﹂弲顒勭叓閸ャ劎鈽夐柣鎺戠仛閵囧嫰骞掗幋婵愪患闂佽棄鍟伴崰鏍蓟閺囥垹閱囨繝鍨姈鏁堥梻浣呵归鍐礉瀹ュ桅闁告洦鍨伴崘鈧梺闈涱槶閸庮噣宕戦幘璇插唨妞ゆ劗鍠庢禍鐐叏濡厧浜鹃悗姘炬嫹濠电姷鏁告慨鐑藉极閹间礁纾婚柣鎰惈閸ㄥ倿鏌涢锝嗙缂佺姴缍婇弻宥夊传閸曨剙娅i梺绋胯閸旀垿寮婚敐澶婄疀闂傚牊绋戦埛鎺戔攽閻愯尙澧旂紒顔界懇瀵濡搁埡鍌氫簽闂佺ǹ鏈粙鎴︻敂閿燂拷闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柛鎾茬劍閸忔粓鏌涢锝嗙闁汇倗鍋撶换婵嬫濞戝崬鍓梺閫炲苯鍘搁柣鎺炲閹广垹鈹戠€n亞鍊為梺鑲┣归悘姘枍閹剧粯鈷掑ù锝呮啞閸熺偞绻涚拠褏鐣电€规洘绮岄埥澶愬閳锯偓閹稿啴姊洪崨濠冨闁稿繑绋撻幑銏ゅ幢濞戞瑧鍘梺鍓插亝缁诲啴宕崇憴鍕╀簻闊洦鎸鹃幗鐘睬庨崶褝韬い銏℃礋椤㈡鎷呴崜韫处
闂傚倸鍊搁崐宄懊归崶顒夋晪鐟滃繘骞戦姀銈呯疀妞ゆ棁妫勬惔濠囨⒑瑜版帒浜伴柛鐘冲浮瀹曟垿骞橀幇浣瑰兊濡炪倖鍔戦崹鍦矈椤曗偓濮婃椽妫冨☉娆樻闂佺ǹ锕ら悘婵嬫偩闁垮闄勭紒瀣仢瀹撳棝姊虹紒妯哄妞ゆ梹鐗曞嵄婵炲樊浜濋悡鐔兼煟閺傛寧鎲搁柣顓炶嫰椤儻顦虫い銊ョ墦瀵偊顢氶埀顒勭嵁閹烘绫嶉柍褜鍓熷鍐测堪閸喓鍘甸梺璇″灡濠㈡ǹ顣块梻浣虹帛閹搁箖宕伴幇鏉课﹂柛鏇ㄥ灱閺佸啯銇勯幇鈺佺仼缂佺姾宕电槐鎾存媴閻ゎ垰鍘¢梺绋跨箲閿曘垹顕f繝姘櫜濠㈣埖蓱閺咃綁姊虹紒妯哄缂佷焦鎸抽獮鎰板礃椤旇В鎷洪梺鑽ゅ枑濠㈡ê危缂佹ǜ浜滈柟瀛樼箥濡偓闂佺粯渚楅崳锝夌嵁鐎n喗鏅濋柍褜鍓涚划璇测槈閵忊檧鎷婚梺鍓插亞閸犳捇鍩婇弴銏$厱濠电姴鍊块崣鍕叏婵犲嫮甯涢柟宄版嚇閹煎綊鐛惔鎾充壕濠电姴娲﹂悡娑㈡煕濞戝崬鏋ょ紒鐘靛仱閺屾洟宕遍弴鐘插缂備胶绮换鍫濈暦閸洘鍤嬮柛顭戝亝閻濓箓姊婚崒娆戭槮闁规祴鈧秮娲晝閸屾艾鍋嶉梺浼欑到婢跺洭宕戦幘鎰佹僵妞ゆ挾鍋涢幗鐢告⒑閸濆嫭婀伴柣鈺婂灦閻涱喖螣娓氼垱瀵岄柣鐘叉穿瀵挻绔熼弴銏♀拻濞达絽鎲¢幆鍫ユ煟椤撶儐妯€妤犵偛绻橀弫鎾绘晸閿燂拷
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗ù锝堟缁€濠傗攽閻樻彃鈧绱撳杈ㄥ枑闁哄啫鐗勯埀顑跨窔瀵粙顢橀悙鑼垛偓鍨攽閿涘嫬浠х紒顕呭灦瀵偊鎮╃紒妯锋嫼闂備緡鍋嗛崑娑㈡嚐椤栨稒娅犳い鏂款潟娴滄粍銇勯幘璺轰沪闁稿鍎抽埀顒冾潐濞叉粓骞婇幘璇茬叀濠㈣泛艌閺嬪酣鏌熼柇锕€鏋涚紒鎻掓健濮婂宕掑▎鎴濆闂佽鍠栭悥鐓庣暦閹版澘鍗抽柣蹇氼嚙缂嶅﹪骞冨⿰鍫熷癄濠㈣泛鐭堥崬鐢告⒑鐠囨彃鍤辩紓宥呮瀹曚即寮介銈勭瑝闂佸搫琚崕鏌ユ偂濞嗗緷褰掓偂鎼达絾鎲煎┑鐐村毆閸ャ劎鍘靛銈嗘瀹曠數绮i弮鈧幈銊︾節閸涱噮浠╅梺鍛婄墬閻楃姴顕i幘顔藉亜闁告縿鍎辩徊鍨攽閿涘嫬浜奸柛濠冨灴瀹曠銇愰幒鎾存珖濡炪倕绻愰悧鍕焵椤戣法顦﹂柍璇查叄楠炴ê鐣烽崶鑸敌у┑锛勫亼閸婃牠骞愭ィ鍐ㄧ獥閹兼番鍔嶉崑鐔访归悡搴f憼闁抽攱鍨块弻娑樷槈濮楀牊鏁鹃柣搴$仛閻熲晠寮诲鍫闂佸憡鎸鹃崰搴敋閿濆棛绡€婵﹩鍘藉▍銏ゆ⒑鐠恒劌娅愰柟鍑ゆ嫹
濠电姷鏁告慨鐑藉极閸涘﹥鍙忓ù鍏兼綑閸ㄥ倻鎲搁悧鍫濈瑲闁稿﹤鐖奸弻娑㈩敃閻樻彃濮庨梺姹囧€楅崑鎾舵崲濠靛顥堟繛鎴濆船閸撲即姊洪崨濠呭缂傚秴锕悰顕€寮介妸锔剧Ф闂佸憡鎸嗛崥閿嬪灦缁绘繂鈻撻崹顔句哗闂侀潧鐗婇幃鍌氼嚕婵犳碍鍋勯柣鎴灻弸鍌炴⒑閸涘﹥澶勯柛瀣椤ゅ倿姊婚崒娆戭槮闁硅绻濆畷娲礃椤旇偐锛涢梺鐟板⒔缁垶鎮¢悢鐓庣婵烇綆鍓欓埀顑惧€曞玻鍧楀箛閻楀牏鍘靛銈嗘閸嬫劙宕洪敐鍥e亾鐟欏嫭绀冩繛鑼枛閻涱喗鎯旈妸锕€鐧勬繝銏f硾閼活垶鐛幒妤佲拻濞达絿枪閹垹绱掓担瑙勫唉鐎殿喗褰冮オ浼村醇濠靛洩绶㈡繝鐢靛Т閿曘倝鎮ф繝鍥ㄥ亗闁哄洨鍠嗘禍婊堟煙閺夊灝顣抽柟顔垮亹缁辨帡鎮╃粵纭呪偓鍧楁煛鐏炲墽鈽夋い顐g箞椤㈡﹢鎮╅崘鍙夌彴闂傚倷娴囬鏍窗濞戭澁缍栧璺虹灱缁犳棃鏌i弮鍌氬付闁绘劕锕﹂幉绋款吋閸モ晙绗夐梺鑽ゅ枛閸嬪﹤銆掓繝姘厪闁割偅绻傞弳娆忊攽閿涘嫭娅曠紒杈ㄥ浮椤㈡瑦绺界粙鍨強婵°倗濮烽崑娑⑺囬婵堜簷闂備礁鎲℃笟妤呭窗濡も偓閳诲秹濮€閵堝棌鎷洪柣鐘充航閸斿苯鈻嶉幇鐗堢厵闁告垯鍊栫€氾拷