一种利用扫描链获取芯片逻辑结构的方法
【技术领域】
[0001] 本发明涉及芯片功能解析技术领域,涉及一种利用扫描链获取芯片逻辑结构的方 法。
【背景技术】
[0002] 现代集成电路产业为降低芯片成本,缩短产品上市周期,不可避免地使用其他公 司的IP核、EDA工具、库单元或将设计好的版图送到代工厂加工。这期间,不完全可信的"第 三方"使芯片的安全失去了控制。
[0003] 近年来,一些负面的新闻也加重了人们对芯片安全的担忧。在海湾战争中,美军通 过电路芯片中预留的安全性攻击"后门",摧毁了伊拉克防空指挥控制系统。欧洲某芯片生 产商在微处理器中植入了 kill switch功能,能够远程控制系统,用于窃取情报或使设备不 能正常工作。
[0004] 为筛选出完全可信的芯片,使电子系统免受硬件木马的危害,需要对已制造好的 芯片进行解析,检测其中是否含有硬件木马。目前国内外主要的芯片解析技术有物理解剖 技术和逻辑综合分析技术。物理解剖技术通过去除芯片表面封装,逐层扫描芯片版图,然后 得到芯片的逻辑结构。这种方法不仅耗时长、成本高,而且随着集成电路特增尺寸的不断缩 小,逐渐变得无能为力。李清宝等人提出一种通过脱机式芯片逆向分析来采集功能全集的 方法。该方法要求通过输出端口能够观测到内部所有寄存器的状态,这对于可编程逻辑器 件来说很容易满足,但是专用集成电路很难满足这一要求。
【发明内容】
[0005] 本发明提供了一种利用扫描链获取芯片逻辑结构方法,只需在芯片输入输出端口 施加和采集数据,便可以获取芯片的逻辑结构,进而检查芯片中是否含有木马,确保系统安 全。
[0006] 一种利用扫描链获取芯片逻辑结构的方法,包括以下步骤:
[0007] (1)米集真值表
[0008] PCI数据采集卡作为上位机和待测芯片的接口,根据上位机的指令向待测芯片发 送激励,并将待测芯片的响应返回给上位机模块;利用待测芯片的固有扫描链结构,将时序 逻辑电路分割成以寄存器为边界的组合逻辑块,采集真值;
[0009] 1)测试模式下,统计D触发器个数;初始化D触发器的输入'屯,…,dH和输出 9(|,9 1,*",915_1,初始化芯片的输入叉。,叉1,*",叉 111_1和输出7(|,71,*",711_ 1。
[0010] 2)功能模式下,采集芯片的输出yQ,yi,…,y n_i。
[0011] 3)测试模式下,串行移出内部D触发器的逻辑值dQ,屯,…,dk_1;重复直到x。, xi,…,Xm和,…,qk_j/f有可能的值都被取到,得到,…,yn_i和D触发器的输 入d。,^,…,(Ih关于XyXi,…,Xm和,…,qH的真值表。
[0012] (2)化简真值表
[0013] 芯片输出和D触发器输入关于芯片输入和D触发器输出的逻辑表达式,采用Q-M 化简法或是其他真值表化简。所述的Q-M化简法包括以下步骤:
[0014] 1)用二进制码表示每一个最小项,按最小项包含1的个数分组。
[0015] 2)相邻组元素如果只有一位不同时,可进行合并。合并之后重新分组再合并,循环 下去直到不能合并为止。所得到的全部不能再合并的"与"项(包括不能合并的最小项), 即为所要求的全部质蕴涵项。
[0016] 3)画出质蕴涵项表,然后在表上找出仅属于一个质蕴涵项的最小项,则包含该最 小项的质蕴涵项就是必要质蕴涵项。
[0017] 4)通过行、列消去法,找出最小覆盖的其他必要质蕴涵项;根据所有的必要质蕴 含项,得到每个芯片输出和D触发器输入关于芯片输入和D触发器输出的逻辑表达式。
[0018] (3)按照芯片输出和D触发器输入的逻辑表达式,构建整个芯片的逻辑结构。
[0019] 1)化简与扫描设计相关的引脚SI,SO和SE,扫描触发器变为非扫描触发器;SI表 不扫描链的输入,SO表不扫描链的输出,SE表不测试模式使能信号,RST_N表不复位信号;
[0020] 2)化简为满足时序和驱动能力而插入的缓冲器和反相器;
[0021] 3)化简芯片输出和D触发器输入引脚的逻辑表达式。
[0022] 本发明提供的一种利用扫描链获取芯片逻辑结构方法,充分利用了芯片的固有扫 描链结构,将时序逻辑电路分割成以寄存器为边界的组合逻辑块,从而在不需要破坏芯片 的前提下反向分析出芯片的逻辑结构,使被植入硬件木马的芯片在应用前被检出,避免电 子系统受到硬件木马的威胁,保证系统安全。
【附图说明】
[0023]图1插入扫描链的芯片系统框图(省略时钟信号)。
[0024]图2获取芯片逻辑结构硬件平台的系统框图。
[0025] 图3采集真值表流程。
[0026] 图4获取到的S27的逻辑结构。
【具体实施方式】
[0027] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。
[0028] 本发明利用芯片中的固有扫描链获取芯片的逻辑结构。扫描链是工业界广泛采用 的一种可测性设计技术,通过将芯片中的触发器转换成扫描触发器并级联成扫描链,提高 芯片内部节点的可控性和可观测性,为降低芯片测试的开销,扫描链的插入已经成为集成 电路标准设计流程的一部分。插入扫描链后的芯片系统框图如图1所示,本发明利用原本 用于测试的芯片固有扫描链结构,将时序逻辑电路分割成以寄存器为边界的组合逻辑块, 这样只需要化简芯片输出和D触发器输入关于芯片输入和D触发器输出的真值表,便可以 得到芯片的逻辑结构。
[0029] 获取芯片逻辑结构的硬件平台如图2所示。硬件平台主要包括上位机模块、PCI数 据采集卡和待测芯片。PCI数据采集卡作为上位机和待测芯片的接口,根据上位机的指令向 待测芯片发送激励,并将待测芯片的响应返回给上位机。上位机模块是硬件系统的核心部 分,通过在PC机上编程实现。
[0030] 设,…,表示芯片的输入,丫。々,…,表示芯片的输出,(^,屯,…,dk_i 表不D触发器的输入,q Q,qi,…,qk_i表不D触发器的输出,SI表不扫描链的输入,SO表不 扫描链的输出,SE表示测试模式使能信号,RST_N表示复位信号。
[0031] 本实施方式所述的一种利用扫描链获取芯片逻辑结构方法包括以下步骤,这里以 插入扫描链的ISCAS89标准电路集中的S27为例进行说明:
[0032] 1采集真
值表
[0033] 真值表的采集是通过切换芯片的功能模式和测试模式实现,采集流程如图3所 示,包括以下步骤:
[0034] (1)复位芯片
[0035] RST_M^ 口输入低电平,保持4个时钟周期,复位芯片。
[0036] (2)测试模式下,统计D触发器个数
[0037]因为实际检测中并不知道芯片中D触发器的个数,所以在采集真值表之前需要统 计其数量。在RST_N*SE端口输入高电平,使能测试模式。在SI端口输入高电平,等待SO 端口输出高电平,D触发器个数等于经过的时钟周期数。
[0038] ⑶测试模式下,初始化D触发器的输出和芯片的输入
[0039] SE端口保持高电平,从SI端口串行移入数据,初始化qQ,qi,…,。当所有D触 发器都被初始化之后,初始化X。,Xi,…,X m_lt)
[0040] (4)功能模式下,采集输出
[0041] SE端口输入低电平,开始功能模式。半个时钟周期之后,采集y(l,yi,…, yiri。
[0042] (5)测试模式下,串行移出内部D触发器的逻辑值。
[0043] SE引脚输入高电平,使能测试模式,从SO端口串行移出dQ,屯,…,dw
[0044] (6)穷举所有可能存在状态,得到真值表
[0045] 重复(3)_(5)过程,直到xQ,Xl,…,Xm_^qQ, qi,…,qH所有可能的值都被取到, 这时便可以得到yodi,…,yn-^d。,^,…,dH关于XyXi,…,Xw和,…,qH的 真值表,如下表所示。
[0046] 采集到的S27的真值表。
[0048] 2化简真值表
[0049] 对真值表化简,得到芯片输出和D触发器输入关于芯片输入和D触发器输出的逻 辑表达式。真值表化简时可以采用由Quine和McCluskey提出的Q-M化简法或是其他真值 表化简方法。Q-M化简法包括以下步骤:
[0050] (1)用二进制码表示每一个最小项,按最小项包含1的个数分组。
[0051] (2)相邻组元素如果只有一位不同时,可进行合并。合并之后重新分组再合并,循 环下去直到不能合并为止。所得到的全部不能再合并的"与"项(包括不能合并的最小项), 即为所要求的全部质蕴涵项。
[0052] (3)画出质蕴涵项表,然后在表上找出仅属于一个质蕴涵项的最小项,贝包含该最 小项的质蕴涵项就是必要质蕴涵项。
[0053] (4)通过行、列消去法,找出最小覆盖的其他必要质蕴涵项。
[0054] 根据所有的必要质蕴含项,便可以得到每个芯片输出和D触发器输入关于芯片输 入和D触发器输出的逻辑表达式,如下表所示。
[0055] S27所有输出和D触发器输入的逻辑表达式。
[0057] 3按照芯片输出和D触发器输入的逻辑表达式,构建整个芯片的逻辑结构
[0058] 获取到的芯片逻辑结构如图4所示,与原始设计相比,存在如下差异,但是使用形 式化验证工具,可以证明两者逻辑功能等价:
[0059] (1)与扫描设计相关的引脚如SI,SO和SE被化简掉,扫描触发器变为非扫描触发 器。
[0060] (2)为满足一定的时序和驱动能力而插入的缓冲器和反相器被化简掉。
[0061] (3)芯片输出和D触发器输入引脚的逻辑表达式被化简。
【主权项】
1. 一种利用扫描链获取芯片逻辑结构的方法,其特征在于, (1) 采集真值表 PCI数据采集卡作为上位机和待测芯片的接口,根据上位机的指令向待测芯片发送激 励,并将待测芯片的响应返回给上位机模块;利用待测芯片的固有扫描链结构,将时序逻辑 电路分割成以寄存器为边界的组合逻辑块,采集真值; 1) 测试模式下,统计D触发器个数;初始化D触发器的输入dQ,Cl1,…,Cllrt和输出q。, q:,…,qH,初始化芯片的输入XyX1,…,Xnrl和输出 2) 功能模式下,采集芯片的输出Yc^y1,…,yn_1; 3) 测试模式下,串行移出内部D触发器的逻辑值屯,Cl1,…,dk_1;重复直到X(),Xl,…, Xnrl和qd,Q1,…,qk_J/f有可能的值都被取到,得到yd,Y1,…,yn_i和D触发器的输入d。, 屯,…,(Ih关于X。,X1,…,Xnri和q。,q!,…,的真值表; (2) 化简真值表 芯片输出和D触发器输入关于芯片输入和D触发器输出的逻辑表达式,采用Q-M化简 法或是其他真值表化简; (3) 按照芯片输出和D触发器输入的逻辑表达式,构建整个芯片的逻辑结构; 1) 化简与扫描设计相关的引脚SI,SO和SE,扫描触发器变为非扫描触发器;SI表示扫 描链的输入,SO表示扫描链的输出,SE表示测试模式使能信号,RST_N表示复位信号; 2) 化简为满足时序和驱动能力而插入的缓冲器和反相器; 3) 化简芯片输出和D触发器输入引脚的逻辑表达式。2. 根据权利要求1所述的方法,其特征在于,所述的Q-M化简法包括以下步骤: 1) 用二进制码表示每一个最小项,按最小项包含1的个数分组; 2) 相邻组元素如果只有一位不同时,进行合并;合并之后重新分组再合并,循环下去 直到不能合并为止;所得到的全部不能再合并的"与"项,即为所要求的全部质蕴涵项; 3) 画出质蕴涵项表,然后在表上找出仅属于一个质蕴涵项的最小项,则包含该最小项 的质蕴涵项就是必要质蕴涵项; 4) 通过行、列消去法,找出最小覆盖的其他必要质蕴涵项;根据所有的必要质蕴含项, 得到每个芯片输出和D触发器输入关于芯片输入和D触发器输出的逻辑表达式。
【专利摘要】本发明提供的一种利用扫描链获取芯片逻辑结构方法,充分利用了芯片的固有扫描链结构,将时序逻辑电路分割成以寄存器为边界的组合逻辑块,采集真值;用Q-M化简法或其他的化简方法化简后,按照芯片输出和D触发器输入的逻辑表达式,构建整个芯片的逻辑结构。该方法在不需要破坏芯片的前提下反向分析出芯片的逻辑结构,使被植入硬件木马的芯片在应用前被检出,避免电子系统受到硬件木马的威胁,保证系统安全。
【IPC分类】G06F21/56, G01R31/28
【公开号】CN104898038
【申请号】CN201510274627
【发明人】陈晓明, 刘洋, 李松松, 张建伟, 朱慧超
【申请人】大连理工大学
【公开日】2015年9月9日
【申请日】2015年5月26日