射频识别芯片设计中时钟树功耗的优化与实现

射频/微波/无线测试

17人已加入

描述

  1 概述

  UHF RFID是一款超高频射频识别标签芯片。该芯片采用无源供电方式:在收到载波能量后,RF前端单元产生Vdd电源信号,供给整芯片工作。由于供电系统的限制,该芯片无法产生较大的电流驱动,因此低功耗设计成为芯片研发过程中的主要突破点。为了使数字电路部分产生尽量少的功耗,在数字逻辑电路设计过程中,除了简化系统结构外(功能简单,只包含编码模块、解码模块、随机数生成模块、时钟、复位模块,Memory控制单元以及整体控制模块),在部分电路设计中采用了异步电路设计方式。在这个过程中,我们看到由于时钟树消耗掉了数字逻辑的很大一部分功耗(大约30%以上),所以降低时钟树带来的功耗也成为降低数字逻辑功耗以及整个标签芯片功耗的重要步骤。

  2 芯片功耗组成及降低功耗的方法

  2.1功耗的组成

芯片设计

  图1 芯片功耗的组成

  动态功耗主要包括短路功耗和翻转功耗,是本设计功耗的主要组成部分。短路功耗即内部功耗,指由器件内部由于P管和N管在某一瞬间同时导通引起的瞬时短路引起。翻转功耗由CMOS器件的输出端负载电容充放电引起。漏电功耗主要包括亚阈区漏电和栅极泄漏引起的功耗。

  当今,功耗两个最主要的来源是:电容转换和亚阈值泄漏。

  2.2降低功耗的主要方法

芯片设计
 

  图2 降低芯片功耗的主要方法

  2.2.1降低电源电压Vdd

  Voltage Island:不同的模块使用不同的供电电压。

  Multi-level Voltage Scaling:同一模块中存在多种电压源,根据应用不同在这些电压源之间切换。

  Dynamic Voltage Frequency Scaling:“多级电压调整”的升级版,根据各模块的工作频率动态进行电压调整。

  Adaptive Voltage Scaling:DVFS的升级版,使用能够监视电路行为的反馈电路,自适应地调整电压。

  亚阈值电路(设计困难较多,还停留在学术界研究范围)

  2.2.2降低频率f及翻转率A

  代码优化(提取公因子,资源重用,operand isolation,串行工作降低峰值功耗等)

  门控时钟

  多时钟策略

  2.2.3降低负载电容(CL)及晶体管尺寸(Wmos)

  减少时序单元

  芯片面积和规模减小

  工艺升级换代

  2.2.4降低漏电电流Ileak

  控制阈值电压(Threshold Voltage)(阈值电压↑漏电流↓如使用MTCMOS 、VTCMOS 、DTCMOS)

  控制栅极电压(Gate Voltage)(通过控制栅源电压以控制漏电流)

  Transistor Stack(串接冗余晶体管,增加电阻以降低漏电流)

  门控电源(Power gating或PSO)(在模块不工作时,关断电源,即可有效减小漏电流)

  3 RFID芯片中时钟树功耗的优化

  芯片工作时,很大一部分功耗是由于时钟网络的翻转消耗的,如果时钟网络较大,这部分引起的功耗损失会很大。在众多低功耗技术中,门控时钟对翻转功耗和内部功耗的抑制作用最强。本设计多级门控时钟技术相结合,以及特殊的时钟树优化策略,节省了很大一部分功耗。本项目在逻辑设计时使用了功耗的多种优化策略,在后端的综合和物理设计也尝试了一些方法,通过前后端几次功耗优化和迭代,找出最小功耗的逻辑代码设计和综合的方法。

  4.1 RTL阶段手工加时钟门控

 

芯片设计

  图3 门控时钟原理图

  module data_reg (En, Data, clk, out)

  input En,clk;

  input [7:0] Data;

  output [7:0] out;

  always @(posedge clk)

  if (En) out <= Data;

  endmodule

  这个阶段的目的主要有两个:第一是根据各模块时钟翻转概率更加合理的加入门控时钟单元以控制翻转率,减小动态功耗,第二是产生一个结构尽量平衡的时钟网络,这样可以保证在后端时钟树综合阶段可以少加入一些时钟buffer以减小功耗。在实际的代码设计中可以直接采用foundry单元库中的ICG(集成门控)单元。

  4.2 综合阶段工具插于集成门控单元

芯片设计
 

  图4 逻辑综合过程中门控时钟插入

  #Set clock gating options, max_fanout default is unlimited

  set_clock_gating_style -sequential_cell latch \

  -positive_edge_logic {integrated} \

  -control_point before \

  -control_signal scan_enable

  #Create a more balanced clock tree by inserting “always enabled” ICGs

  set power_cg_all_registers true

  set power_remove_redundant_clock_gates true

  read_db design.gtech.db

  current_design top

  link

  source design.cstr.tcl

  #Insert clock gating

  insert_clock_gating

  compile

  #Generate a report on clock gating inserted

  report_clock_gating

  这个阶段的目的是通过综合工具(DC)进行门控单元的自动插入,以便进一步减小功耗。

  需要注意的是对插入ICG的参数的设定,比如maximum fanout(扇出越大越节省功耗,扇出越平衡skew越小,视设计而定,如图所示),以及minimum_bitwidth参数的设定,另外对于较复杂的门控结构需要插入常开ICG以使时钟网络结构更加平衡。

  4.3 时钟树综合阶段优化功耗

芯片设计
 

  图5 两种时钟树结构对比(a):多级纵深型;(b):少级扁平型

  先介绍一下时钟树综合参数对时钟树结构的影响:

  Skew :时钟偏移,总的时钟树综合目标。

  Insertion delay(Latency):时钟路径总延时,用于限定时钟树级数的增加。

  Max taranstion:由最大转换时间限定一级buffer能驱动的buffer 的数量。

  Max Capacitance Max Fanout:由最大负载电容、最大扇出限定一级buffer 能驱动的buffer 数量。

  一般设计中的时钟树综合以降低时钟skew为最终目的,加大level级数,减小每级fanout,将投入较多buffer,更精确的平衡每条时钟路径的 latency,从而得到较小skew。但是对于低功耗设计,尤其是当时钟频率较低的时候,时序要求并不是很高,所以希望能减小时钟树的规模以减小时钟树带来的动态翻转功耗。如图所示,通过减小时钟树level级数,加大fanout可以有效减小时钟树的规模,但由于buffer 数量的减少,较之多级结构的时钟树,级数较少结构的时钟树只是大概平衡每条时钟路径的latency,得到的skew较大。可见,以降低时钟树规模为目标,进行低功耗时钟树综合是以增大一定的skew为代价的。

  具体到本RFID芯片,我们采用了TSMC 0.18um CMOS LOGIC/MS/RF工艺,时钟频率只有1.92M,是非常低的,此时时钟进行时钟树综合时,采用以降低时钟树规模为目标的低功耗时钟树综合,主要对 skew,latency和transiton这几个约束进行了设定,由于约束fanout会带来时钟树级数的增加,带来功耗的增加,所以没有设定这个值,采用库里的默认值。在实际中,我们使用了9种不同的时钟树约束条件,约束条件及综合结果如表1 所示。

芯片设计

  5 结论

  如表1所示,总的趋势就是target skew设的越大,最终的时钟树规模越小,时钟树buffer数量越小,对应的动态静态功耗也越小,这样就达到了节省时钟树功耗的目的。可以看到当target skew大于10ns后,功耗基本不再变化,但是基于大的skew值会带来hold时序的变差导致修复时序的时候插入buffer增多,所以应该进行折中,从图表来看策略5和策略6为优选方案。另外当skew设置选出最优后,还可以看到Max transition值设的越大最终得到的功耗也越小,这可以理解为时钟信号跃迁的时间越长所需要的能量越小。另外latency约束的设置可以尽量放大,其值的大小对最终的功耗结果影响不大。

作者   常晓夏,潘亮,李勇

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分