您现在的位置是:主页 > 电路技术 > 数字电路 >


可重用全数字频率检测电路的设计

2020-06-16 22:46数字电路 人已围观

简介频率检测模块(FD)作为重要的传感器以及信号处理功能电路,被广泛应用在片上系统(SoC)及数字信号处理(DSP)电路中。在安全芯片产品中,FD 作为安全传感器之一,对于芯片安全...

  频率检测模块(FD)作为重要的传感器以及信号处理功能电路,被广泛应用在片上系统(SoC)及数字信号处理(DSP)电路中。在安全芯片产品中,FD 作为安全传感器之一,对于芯片安全防护体系有着重要意义。传统的 FD 检测模块部分或全部由模拟电路实现,这会带来面积、功耗、以及工艺移植性问题。为此,我们尝试使用全数字 FD 电路对内部主时钟以及外部通信时钟进行频率超限检测。本文将简略叙述 FD 的原理,并在此基础上阐述数字 FD 电路设计,解释数字 FD 在实现过程遇到的难点与性能权衡, 给出相应的解决方案及依据。本文所述的 FD 电路设计与实现方法具有一定的借鉴和参考意义。
  

  1 技术背景

  
  同步数字电路的正常可靠工作离不开时钟的稳定均匀翻转,时钟信号的抖动、偏斜、占空比失衡、上升下降时间不稳定、毛刺、频率超限等信号质量问题会直接导致时序违例,严重的还会引发功能错误乃至芯片失效。时钟的翻转通常也作为电路的工作触发信号,因此通过观察时钟翻转过程并结合芯片电磁、功耗特性就可能侦测到芯片内部的工作状态和工作特性。智能卡芯片由于会被使用在潜在的非安全环境之中,特别在金融类应用中,芯片设计应具有高安全级别。因此从系统安全防护的角度上看,确保时钟信号正常是确保芯片安全的一个重要环节。
  
  芯片的主时钟以及对外的通讯时钟如 7816、RF等,可能遭受到潜在的人为攻击。攻击者可能通过过高的时钟频率注入错误,或通过过低的时钟观察芯片侧信道特征。对此有必要增加时钟频率传感器对系统时钟和通信时钟进行检测,当频率异常时发出报警信号,迫使芯片复位或进入异常中断。
  
  传统的频率检测模块由模拟电路实现,检测电路的主要结构如图 1 所示,主要包括:时钟处理电路、电流冲放电电路、施密特触发器组成。
  图 1 模拟FD 电路原理
  图 1 模拟FD 电路原理
  
  CLK 经过时钟处理电路产生固定宽度的脉冲CLK_IN,来控制 MOS 管 PM1 和 NM1 对电容 C 充放电。当 CLK_IN 为高时,NM1 导通、PM1 断开,电容上电压(图中 VA 点)被放为 0。当 CLK_IN 为低时,PM1 导通、NM1 断开,电流开始向电容充电,VA点电压慢慢增加,当增加到施密特触发器的阈值电压 VTH 后,施密特触发器翻转,输出报警信号。此时,输入频率低于检测点频率。
  
  模拟 FD 的问题首先是版图面积大,这会降低低成本产品的竞争力;其次由于使用模拟电路,电路设计与生产工艺密切相关, 可移植性差, 更换foundry 厂家或演进到新工艺节点后需要重新绘制版图,甚至需要重新设计部分电路。此前我们已尝试使用数字电路设计实现部分 FD 功能,并取得了良好的效果。数字 FD 大致原理如图 2,首先把待测信号进行分频,然后利用参考信号对分频后的信号进行单周期采样,报警单元中进行逻辑处理,若计数值超出设定的阈值则触发对外报警信号。
  图 2 数字FD 设计原理
  图 2 数字FD 设计原理
  

  2数字 FD 原理

  
  数字 FD 的基本思想是用一个已知频率的高频时钟作为标尺时钟,在一个低频时钟的周期内计数高频时钟的个数,如图 3 中,以被测时钟的 16 分频作为测量周期。当标尺时钟频率足够高且稳定可靠的情况下,待测时钟的频率就可以表示成标尺时钟频率的函数。在我们的数字 FD 设计中,若想有效检测时钟频率,标尺时钟频率应与被测时钟频率接近,然后经过 FD 模块内部对被测时钟的进一步分频,完成频率差异化。如果标尺时钟频率远高于被测时钟频率,则标尺时钟计数器的数值将很大,面积开销较大,同时也不便于计算报警阈值范围;如果标尺时钟频率远低于被测时钟频率,则测量精度无法保证,需要 FD 模块内部对被测时钟进行大力度分频。
  图 3 FD 检测模块工作时序图例
  图 3 FD 检测模块工作时序图例
  
  由于标尺时钟信号使用基于内部 VCO 的时钟源,这会存在一定的偏差且在同步的过程中会增大这一偏差。受到标尺时钟这一不确定性的影响,FD报警频率阈值存在一个不确定区间,如图 4。当被测时钟信号的实际频率落在深色区间 F2~F3 时,一定不报警;落在浅色区间 F1~F2 或 F3~F4 时,可能报警(是否报警取决于制造工艺、电压及温度波动导致的标尺时钟偏差);落在灰色区间,即 F1~F4 以外时一定报警。
  图 4 FD 的报警分区情况
  图 4 FD 的报警分区情况
  
  设 Ft 为被测时钟,结合被测时钟信号的分频比 D,标尺时钟频率 Fr,标尺时钟误差 p%,计算计数器报警阈值 N 的方法如下:
  
  1)首先不考虑异步问题,有公式:
  
  公式公式
  
  2)考虑 Fr 存在工艺偏差±p%,于是:
  
  公式
  
  3)考虑时钟域同步时损失±1 个 Fr 周期的精度,于是有:
  
  公式1
  
  例如,当 D=16,Fr=36MHz,p=10;N=36 计算可得,14.01MHz < Ft < 18.10MHz,即浅色区间(F3~F4)为上述频率范围。若其为高频报警,则当计数值小于36 时输出报警信号。
  
  4) 根据上述计算公式,只要确定 D,Fr 和 p 的值,用表格遍历 N 值即可获得 Ft 的阈值范围表。选择合适的 N 值,即可确定 FD 的参数设定。
  
  可以推导,上述报警不确定区域的最小极限范围为 2p%Ft. 通常的,N 值较大,有助于在一定程度上减小量化误差,但会降低报警响应速度,同时提高计数器的位数,增加计数器的逻辑面积。例如,在上例当中,当 D 等于 32 时,N=73,报警阈值范围为 14.01M~17.60M。
  

  3 FD 详细设计

  
  3.1设计目标与规格
  
  根据上述原理与特性,我们需求如下规格的 FD模块:
  
  ●面积:小于模拟 FD 的 1/3(<1000 门规模)。
  
  ●FDI:待测时钟典型值 80MHz,待测时钟偏差>10%时可能报警,偏差 >51%时一定报警;<13%时可能报警,偏差<37%时一定报警。
  
  ●FDE(7816_clk):正常工作频率 0.5~10MHz,超出此范围即报警。
  
  ●FDE(rf_clk): 正常工作频率 13.5~13.6MHz,超出此范围即报警。
  
  ●尽量压缩不确定区间(可能报警区间)。模块化可重用设计,方便增减检测路数。
  
  3.2设计参数设定
  
  根据需求规格,检测源边界报警值如表 1,报警边界指进入可能报警区间。注意,FDE 只有一路硬件,需选择 SCI_CLK 或 RF_CLK 其中一路行检测。根据片上时钟源,我们选择如表 2 的设计参数。
  
  表 1 检测源边界报警值
  表 1 检测源边界报警值
  表 2 FD 设计参数选择
  表 2 FD 设计参数选择
  3.3根据设计参数计算计数器报警阈值
  
  根据表 2 的设计参数以及公式(1),使用 excel 可计算相应的计数器表格,其中左侧第一列 N 代表标尺时钟计数器值,Ft_1 代表不确定区间(可能报警区间) 的低频边界值,Ft_2 代表不确定区间的高频边界值。我们选择合适的报警频率值就可以对应得到计数器阈值的设定值,如表中加粗值。
  
  表 3 FDI 报警参数计算
  表 3 FDI 报警参数计算
  表 4 FDE 串口报警参数计算
  表 4 FDE 串口报警参数计算
  表 5 FDE 射频报警参数计算
  表 5 FDE 射频报警参数计算
  3.4电路设计
  
  为了提高 FD 模块的可重用性,便于 IP 化,将FD 设计成两级结构,如图 5。单个检测模块内的电路设计如图 6。电路由分频器、同步器、边沿检测器、计数器、比较器、报警寄存器组成,结构简单、功能可靠。FD 检测单元可以根据项目需要进行增减,触发的报警值、分频器的位宽等做了参数化宏定义,充分考虑了复用设计。
  图 5 FD 检测设计层次
  图 5 FD 检测设计层次
  图 6 FD 检测报警子模块电路设计
  图 6 FD 检测报警子模块电路设计

Tags:

标签云