专利名称::时钟产生系统和时钟分频模块的制作方法
技术领域:
:本发明涉及一种时钟产生系统和时钟分频模块,明确地说涉及一种具有分散式架构的时钟产生系统。
背景技术:
:在CMOS超大型集成电路,例如专用集成电路(ApplicationSpecificIntegratedCircuits,ASICs)的设计中,时钟信号对于芯片性能的优劣具有决定性的影响。假若芯片设计者在设计时未仔细规划时钟信号到每个逻辑子方块的时钟分布(clockdistribution),那么时钟偏斜(clockskew),即从时钟端点到时钟汇点之间的最大延迟和最小延迟的差值,将降低芯片的性能并可能使系统失效。此外,时钟分布网络由于在时钟端点到时钟汇点之间的路径上需维持高速的操作和驱动力以增加信号处理的能力,其功率损耗通常会占整体功率损耗的20%到50%。据此,时钟偏斜和功率损耗是芯片设计者在设计时钟分布网络时的两大考虑因素。在数字电路设计上一个众所周知用以降低功率损耗的方法称为时钟选通技术(clockgatingtechnique)。所述技术是将一时钟信号分为数个独立的时钟信号以个别地控制或者停用芯片内不需作动的功能方块。图1显示习知的时钟产生系统10的方块示意图。所述时钟产生系统10包含用以提供选通时钟的时钟产生模块12和多个功能方块1-N。所述时钟产生模块12包括锁相回路(phase-lockedloop,PLL)14、时钟分频器(clockdivider)16和多个时钟选通单元1-J。所述锁相回路14经配置以用以产生时钟信号,而所述时钟分频器16经配置以用以接收所述时钟信号以产生多个不同频率的时钟信号。这些时钟选通单元I-J经配置以用以接收所述时钟分频器16输出的时钟信号,以产生多个选通时钟信号gated—clkfgatecLclkjo这些选通时钟信号gatecLclkfgatecLclkj施加到这些功能方块1-N内的逻辑电路,例如触发器、寄存器或者序向逻辑电路,以提供其需要的时钟信号。当这些功能方块I-N内的部分逻辑电路不需作动时,这些功能方块I-N会输出控制信号control以通知对应的时钟选通单元停用其时钟信号,借此降低系统的功率损耗。然而,随着工艺的发展和用户需求的多样化,芯片内功能方块的数目和面积急剧增加。上述时钟选通技术在实现时电路上需要额外的逻辑门,而这些逻辑门会增加布局面积和功率损耗。如果芯片设计者使用所述习知的时钟产生模块来实现所述时钟选通技术,那么电路上的设计会十分复杂。同时,这些功能方块分布在芯片不同的位置上,因此这些选通时钟信号的时钟偏斜问题也会随着布线长度的增加而恶化。因此,有必要提出一种分散式架构的时钟选通系统和时钟分频模块,借此提供低功率损耗以及简化电路设计和验证时的复杂度
发明内容本发明的分散式架构的时钟产生系统的实施例包含时钟分频器、第一功能方块及第二功能方块。所述时钟分频器用以输出不同频率的时钟信号。所述第一功能方块包含第一时钟选通单元及第一逻辑电路,而所述第二功能方块包含第二时钟选通单元及第二逻辑电路。所述第一时钟选通单元和所述第二时钟选通单元在逻辑上分别位于所述第一功能方块和所述第二功能方块内,而在物理布局上分别被设置于尽可能靠近所述时钟分频器的位置。本发明的时钟分频模块的实施例包含格雷码表产生单元、时钟分频有限状态机和时钟分频产生单元。所述格雷码表产生单元经配置以用以产生二维阵列。所述时钟分频有限状态机经配置以用以接收所述二维阵列,第一时钟信号和所述时钟分频有限状态机的先前状态以产生所述时钟分频有限状态机的下一状态。所述时钟分频产生单元经配置以用以接收所述二维阵列,所述第一时钟信号和所述时钟分频有限状态机的所述先前状态以产生第二时钟信号。图1显示习知的时钟产生系统的方块示意图;图2显示典型的使用硬件描述语言以实现芯片设计的流程图;图3显示根据本发明的实施例的时钟产生系统;以及图4显示根据本发明的实施例的时钟分频模块。具体实施例方式图2显示典型的使用硬件描述语言以实现芯片设计的流程图,所述流程图经配置以用以施行本发明。参照图2,在步骤S20,系统设计者制订芯片的规格。在步骤S22,芯片设计者产生寄存器传送级网表(register-transferlevelnetlist,RTLnetlist)并进行验证。在步骤S24,所述芯片设计者通过合成工具(synthesistool)产生逻辑门级网表(gate-levelnetlist)并进行验证。在步骤S25,所述芯片设计者通过布置和布线工具(placeandroutetool)产生物理设计。以下进一步说明所述流程的每一步骤。首先系统设计者在开发芯片前会根据所述芯片的应用场合来设定一些例如功能、操作速度、接口规格、环境温度及消耗功率等规格。当规格制定完成时,系统设计者会依据功能或其它相关考虑,将所述芯片划分为数个功能方块,并交由不同设计者以进行后续步骤。这些设计者使用硬件描述语言,例如VERIL0G和VHDL,来描绘这些功能方块的行为或特征,并通过所述硬件描述语言所对应的编译器(compiler)将所述语言转换成寄存器传送级网表。所述寄存器传送级网表包含一组连接到每一功能方块的节点,其通过数学叙述来定义功能方块将实现的布林逻辑。接着,设计者使用模拟器(simulator)来验证这些节点所描绘的电路行为。在验证后,设计者使用合成工具以将所述寄存器传送级网表转换为所述逻辑门级网表。在合成过程中,设计者会选择适当的逻辑单元库(logiccelllibrary),以作为合成逻辑门级电路的参考依据。所述逻辑门级网表通过所述逻辑单元库以更具体地描绘这些功能方块。所述逻辑门级网表会通过模拟和验证工具来验证电路的逻辑和电路的时间相关行为。在验证后,会使用布置和布线工具以通过所述逻辑门级网表产生物理设计,例如,布局(layout)ο图3显示根据本发明的实施例的时钟产生系统30。所述时钟产生系统30包含时钟分频器31、功能方块R和功能方块S。所述时钟分频器31经配置以用以输出不同频率的时钟信号。与习知技术最大的不同在于时钟选通单元32的位置由集中式的时钟产生模块搬移到个别的功能方块R的内部,而时钟选通单元34、36的位置也由集中式的时钟产生模块搬移到个别的功能方块S的内部。所述时钟分频器31将时钟信号elk”Clk2和Clk3输出到所述时钟选通单元32、34、36。所述时钟选通单元32、34、36在接收到所述时钟分频器31传来的时钟信号Clk1^lk2和来自逻辑电路37、38、39的控制信号control后,分别产生给所述逻辑电路37、38、39的选通时钟信号gatecLclk。由于在逻辑上所述时钟选通单元32和逻辑电路37均位于所述功能方块R内,且在逻辑上所述时钟选通单元34、36和逻辑电路38、39也均位于所述功能方块S内,因此可以简化设计和验证所花费的时间及精神。而在物理布局上,所述时钟选通单元32、34、36设置于功能方块R和功能方块S内尽可能靠近所述时钟分频器31的位置,通过缩短时钟信号Clk1^lk2和Clk3的长度而减少功率消耗。所述寄存器传送级网表和所述逻辑门级网表通常会以层次架构(hierarchicalarchitecture)表示。当设计者使用所述时钟产生系统30进行寄存器传送级模拟或门级模拟时,由于所述功能方块R和功能方块S可使用层次架构的描绘方式,因此可个别验证其与时钟选通单元32的逻辑功能及电路是否符合预期。此外,当设计者根据所述逻辑门级网表进行布局时,位于所述功能方块R的时钟选通单元32与位于所述功能方块S的时钟选通单元34和36可以使用系统化的名称来命名,例如Block_CGC_l和Block_CGC_2,以方便设计者在进行布局时将其设置于尽可能靠近所述时钟分频器31的位置,以减少布线路径。如此一来,设计者可通过搜寻的方式快速识别出这些具有系统化名称的示例及其组合,并决定其于芯片上的摆放位置。由于高速的时钟信号分布于这些布线路径上,因此当布线路径缩短时,芯片的动态功率损耗也可以大幅地下降。为了进一步简化设计与验证,本发明揭示一种系统化的时钟分频方法,其通过规律化的叙述可轻易地扩充不同频率的时钟信号。习知通过蛮力方式(bruteforce)产生的时钟分频码可使用硬件描述语言描述如下case(clk_state)6'b000_000:beginnext_state=6'b000_001;div3=1;end6'b000_001:beginnext_state=6'b000_011;div3=0;end6'b000_011:beginnext_state=6'b000_010;div3=0;end6'b000_010:beginnext_state=6'b000_110;div3=1;endendcasealwaysi(posedgeelk)beginclk_state<=next_state;div3_clk<=div3;end在上述范例中,所述clk_stage具有6位的宽度,因此可写入(000000)到(111111)的64种状态。在本范例中,当所述时钟分频码将产生输入时钟频率除以3的时钟信号时,变量div3的初始状态首先设定为1。在每次正缘时钟信号到达时,变量div3的状态会依序转换为0、0、1、0、0、1···,因此变量div3的输出即为输入时钟频率除以3的时钟信号。类似地,当所述时钟分频码将产生输入时钟频率除以4的时钟信号时,可以首先设定变量div4的初始状态为1。接着在每次正缘时钟信号到达时,将变量div4的状态依序改变为0、0、0、1、0、0···,那么所述变量div4的输出即为输入时钟频率除以4的时钟信号。如上所述,使用蛮力方式产生的时钟分频码会随着功能方块需要的分频时钟数目的增加而变得十分复杂且容易发生错误。然而,通过本发明揭示的规律化基础的时钟分频模块,可以轻易地产生不同频率的时钟信号,且大幅简化后续的模拟及验证步骤。图4显示根据本发明的实施例的时钟分频模块40,所述时钟分频模块40包含格雷码表(Graycodetable)产生单元42、时钟分频有限状态机(finitestatemachine)44和时钟分频产生单元46。所述格雷码表产生单元42经配置以用以产生二维阵列T。所述二维阵列T中的每一元素的值根据格雷码的编码方式而产生。所述二维阵列T可使用硬件描述语言描述如下wire[L-10]T[1<<L]_10]assignT=L,h0;generatefor(i=0;i<L;i=i+1)begin:fg_GCT_lfor(j=(1<<i);j<(1<<i+1));j=j+1)begin:fg_GCT_2assignT[j]=T[((i<<i)-l)-(j-(l<<i))]1(1<<i);endendendgenerate其中,L、i和j为整数。为了简单说明上述硬件描述语言产生的格雷码表,现将L代入6来加以说明。当L=6时,会产生二维阵列T,其中所述二维阵列T中的元素T=6’h0=0,元素T[l]=6’hi=1,元素T[2]=6’h3=3,元素T[3]=6’h2=2···。元素T到Τ[63]的值是根据格雷码的编码方式产生的。在格雷码的编码方式中,两个相邻的元素被选择的编码只有一个位是不同的,因此使用所述编码方式的电路其动态功率损耗较低。在使用格雷码编码方式建立所述二维阵列T后,所述时钟分频有限状态机44经配置以用以接收所述二维阵列T,时钟信号clk_src和所述时钟分频有限状态机44的先前状态以产生下一状态。所述时钟分频产生单元46经配置以用以接收所述二维阵列T,所述时钟信号clk_src和所述时钟分频有限状态机44的所述先前状态以产生不同频率和不同工作循环(dutycycle)的时钟信号。所述时钟分频有限状态机44和所述时钟分频产生单元46的电路行为可使用硬件描述语言描述如下generatefor(i=0;i<N;i=i+1)begin:fg_clk_divassignns[i]=(S==T[i])?T[(i+1)%N](i==0T:ns[i-1]);assigndivM[i]=(S==T[i])i%M<K)(i==00:divM[i-l]);endendgeneratealwaysi(posedgeelk)beginS<=ns[N-l];divM_clk<=divM[N-l];end其中,L、i、K、M和N为整数,且M为等于或大于2的整数。在本发明的实施例中,所述时钟分频有限状态机44包含重复叙述手段,其用以接收累增信号i以执行回圈运算。所述重复叙述手段包含第一条件运算手段。所述第一条件运算手段用以接收所述累增信号i,以根据所述累增信号i加1后的值对于整数N的余数而产生所述下一状态ns[i]。在本发明的实施例中,所述第一条件运算手段是通过assignns[i]=(S==T[i])?T[(i+1)%N](i==0?T:ns[i_l]);的叙述式以产生下一状态ns[i]。当目前状态S的值等于T[i]时,下一状态ns[i]的值会设定为τ[i+1]。举例来说,当i=1而N=64时,如果目前状态S的值=T[l]=1,那么下一状态ns[l]会等于Τ[2]=3。当i=2时,如果目前状态S的值=Τ[2]=3,那么下一状态ns[2]会等于T[3]=6…当i=63时,如果目前状态S的值=T[63],那么下一状态ns[64]会回到T=0,并继续打1]、打2]、11[3]的循环。在本发明的实施例中,所述时钟分频产生单元46包含第二条件运算手段。所述第二条件运算手段用以产生时钟信号clk_src除以M后的时钟信号divM_clk。当目前状态S的值等于T[i],且所述累增信号i对于整数M的余数值小于整数K时,那么变量divM[i]的值会等于1。举例来说,当K=2而M=4时,所述第二条件运算手段通过assigndiv4[i]=(S==T[i])?i%4<2)(i==00:div4[i_l])的叙述式以产生所述时钟信号clk_src除以4,且工作循环为0.5的时钟信号div4_clk。根据所述叙述式,当i=0时,此时i对于4的余数为0,因此4<2为真,div4=1。当i=1时,此时i对于4的余数为1,因此4<2为真,div4[l]=1。当i=2时,此时1对于4的余数为2,因此1%4<2为假,(1&4[2]=O。当i=3时,此时i对于4的余数为3,因此i%4<2为假,div4[3]=0···。据此,所述时钟信号div4_elk的频率会是时钟信号clk_src的频率除以4,且工作循环为0.5。当逻辑电路需要所述时钟信号clk_src的频率除以6,且工作循环为0.5的时钟信号div6_clk时,仅需将所述第二条件运算手段内的整数M代入6,整数K代入3即可得到所述时钟信号div6_clk。当逻辑电路需要时钟信号clk_src的频率除以4,且工作循环为0.25的时钟信号diV4x_clk时,仅需将所述第二条件运算手段内的变量M代入4,变量K代入1即可得到所述时钟信号div4X_clk。通过本发明揭示的公式化基础的时钟产生系统30,可以轻易地产生不同频率和不同工作循环的时钟信号,且大幅简化后续的验证及维持作业。本发明的技术内容及技术特点已揭示如上,然而所属领域的技术人员仍可能基于本发明的教示及揭示内容而作种种不背离本发明精神的替换及修改。因此,本发明的保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修改,并为上述权利要求书所涵盖。权利要求一种时钟产生系统,其特征在于其包含时钟分频器,其用以输出不同频率的时钟信号;第一功能方块,其包含第一时钟选通单元及第一逻辑电路;以及第二功能方块,其包含第二时钟选通单元及第二逻辑电路;其中所述第一时钟选通单元和所述第二时钟选通单元在逻辑上分别位于所述第一功能方块和所述第二功能方块内,而在物理布局上分别被设置于靠近所述时钟分频器的位置。2.根据权利要求1所述的时钟产生系统,其特征在于其中所述第一时钟选通单元和所述第二时钟选通单元分别接收来自所述第一逻辑电路和第二逻辑电路的控制信号及来自所述时钟分频器的不同频率的时钟信号,以个别地产生给所述第一逻辑电路和第二逻辑电路的选通时钟信号。3.根据权利要求1所述的时钟产生系统,其特征在于其中所述第一功能方块和所述第二功能方块具有系统化名称。4.根据权利要求3所述的时钟产生系统,其特征在于其中所述第一功能方块和所述第二功能方块在进行布局时可通过搜寻所述系统化名称而被设置于靠近所述时钟分频器的位置。5.一种时钟分频模块,其特征在于其包含格雷码表产生单元,其经配置以用以产生二维阵列;时钟分频有限状态机,其经配置以用以接收所述二维阵列,第一时钟信号和记录所述时钟分频有限状态机的先前状态,借此产生所述时钟分频有限状态机的下一状态;以及时钟分频产生单元,其经配置以用以接收所述二维阵列,所述第一时钟信号和所述时钟分频有限状态机的所述先前状态以产生第二时钟信号。6.根据权利要求5所述的时钟分频模块,其特征在于其中所述二维阵列中的每一元素的值是根据格雷码的编码方式产生的。7.根据权利要求5所述的时钟分频模块,其特征在于其中所述时钟分频有限状态机进一步包含重复叙述手段,所述重复叙述手段用以接收累增信号以执行回圈运算。8.根据权利要求7所述的时钟分频模块,其特征在于其中所述时钟分频有限状态机进一步包含第一条件运算手段,所述第一条件运算手段用以接收所述累增信号,并根据所述累增信号加1后对于第一整数的余数而产生所述时钟分频有限状态机的下一状态。9.根据权利要求5所述的时钟分频模块,其特征在于其中所述时钟分频产生单元进一步包含第二条件运算手段,所述第二条件运算手段用以接收所述累增信号,并根据所述累增信号加1后对于第二常量的余数与第三常量进行比较,以产生所述第二时钟信号。10.根据权利要求9所述的时钟分频模块,其特征在于其中所述第二常量用以决定所述第二时钟信号的频率。11.根据权利要求9所述的时钟分频模块,其特征在于其中所述第三常量用以决定所述第二时钟信号的工作循环。全文摘要本发明涉及一种时钟产生系统和时钟分频模块。所述时钟产生系统包含时钟分频器、第一功能方块及第二功能方块。所述时钟分频器用以输出不同频率的时钟信号。所述第一功能方块包含第一时钟选通单元及第一逻辑电路,而所述第二功能方块包含第二时钟选通单元及第二逻辑电路。所述第一时钟选通单元和所述第二时钟选通单元在逻辑上分别位于所述第一功能方块和所述第二功能方块内,而在物理布局上分别被设置于尽可能靠近所述时钟分频器的位置。文档编号H03K23/66GK101860359SQ20091013443公开日2010年10月13日申请日期2009年4月13日优先权日2009年4月13日发明者叶时益申请人:雷凌科技股份有限公司