基于整数规划模型的部分扫描触发器选择优化方法技术领域
本发明涉及集成电路可测性设计优化,尤其涉及一种用于FPGA硬件模拟平台的部
分扫描优化。
背景技术
可测性设计对于提升电路的可观测性和可控制性至关重要。可测性设计一般使用
扫描触发器来替换普通触发器。而扫描触发器与普通触发器相比,其数据输入端多出一个
多路选择器,该选择器的选择信号决定了触发器工作在正常模式还是扫描模式。在正常模
式下,电路按照既定的功能工作,触发器的输入连接到正常的数据。在扫描模式下,电路中
的触发器前后相连,扫描触发器的输入连接到上一级扫描触发器的输出。所有的触发器组
成一个移位寄存器,可以通过SCAN_IN端口向电路中扫入特定的比特序列,也可以通过
SCAN_OUT端口读出电路的整个状态信息,如文献[1]。从普通触发器到扫描触发器多出来的
多路选择器,会带来额外的电路面积消耗。在ASIC上插入扫描链需要增加大约5%左右的电
路面积,在FPGA上插入扫描链约需增加90%到140%的电路面积,见文献[2]及[3]。
为了减小扫描链的面积消耗,并且保持电路的完全可观测性和可控制性,Gupta等
人提出了基于平衡结构的部分扫描技术BALLAST,见文献[4]。该技术能够在减小扫描链面
积消耗的同时,使得其他非扫描部分的电路能够使用组合逻辑生成测试向量,易于观察和
控制。但是,BALLAST技术采用了两阶段启发式的方法来确定部分扫描触发器的选择,并不
能保证获得最优的部分扫描方案。
发明内容
本发明的目的在于提出一种基于整数规划模型的部分扫描触发器选择优化方法,
以克服目前在FPGA硬件模拟平台上插入扫描链带来的面积资源消耗过大的缺点,旨在保持
电路的完全可观测性和可控制性前提下,减少部分扫描触发器数目,进而减小扫描链所带
来的面积资源消耗,减小FPGA硬件模拟的成本。
本发明的技术方案是:基于整数规划模型的部分扫描触发器选择优化方法,具体
包括如下步骤:
1)、使用FPGA综合工具得到扁平化的网表文件;
2)、使用所设计的网表解析器,构建内部对象,形成以图模型为形式的内部数据结
构;
3)、根据图模型和平衡结构的定义,生成平衡结构的整数规划模型,构建基于平衡
结构的部分扫描优化模型;
所述构建基于平衡结构的部分扫描优化模型具体如下:
(3.1)、根据BALLAST方法构建电路的图模型G(V,E,w),其中V为节点集,E为边集,w
为边的权重;每一个节点是一组相连的组合逻辑,每一条边代表一个或多个触发器,每一个
边的权重为该条边所代表的触发器的数目,在构建图模型时记录下每一条边对应的所有触
发器;为图中的每一条边分配一个序号和一个决策变量;
(3.2)、从图中找出所有的环:平衡结构要求图是一个无环结构,那么每一个环中
最少需要有一条边被从图中去掉,即每一个环对应的边的布尔变量之和小于环的长度,形
成一个无环线性约束;
(3.3)、依次考察图中的每一对节点,如果这对节点之间有多条路径,并且这些路
径中至少有两条路径长度不相同,那么标记这对节点为不平衡节点对并为每一对不平衡节
点对写出一组线性约束;
(3.4)、根据环的约束和不平衡节点对的线性约束和最小化扫描触发器的目标,构
建平衡结构的整数规划模型;
4)、求解整数规划模型,记录解中每一个为0的决策变量对应的边,存入集合Es;找
出集合Es中的每一条边对应的所有触发器,加入集合R;
5)、将上述集合R中的每一个触发器替换为扫描触发器,利用所设计的扫描链插入
方法对该网表进行修改,插入扫描链,重新输出网表;
6)、利用FPGA布局布线工具,将输出的网表重新综合,生成带有扫描链的比特流文
件。
所述步骤1)网表文件为纯文本编码格式,其中包含顶层模块及端口定义,FPGA实
现相关的原语的实例化和原语之间的互联信号。
所述步骤3)采用的平衡结构的整数规划模型包含如下三个部分:无环线性约束、
不平衡节点对线性约束和目标函数。
本发明相对于现有技术有以下有益效果:
本发明采用的部分扫描方式向综合后的FPGA网表中加入扫描链,相比现有的部分
扫描方案,有效地减小了在FPGA上插入扫描链带来的电路面积增加。
附图说明
图1本发明方法流程图。
具体实施方式
下面通过具体实施例和附图对本发明作进一步的说明。本发明的实施例是为了更
好地使本领域的技术人员更好地理解本发明,并不对本发明作任何的限制。
如图1所示,基于整数规划模型的部分扫描触发器选择优化方法,具体包括如下步
骤:
1)、使用FPGA综合工具得到扁平化的网表文件,该网表文件为纯文本编码格式,其
中包含顶层模块及端口定义,FPGA实现相关的原语的实例化和原语之间的互联信号;
2)、使用所设计的网表解析器,构建内部对象,形成以图模型为形式的内部数据结
构;
3)、根据图模型和平衡结构的定义,生成平衡结构的整数规划模型,本发明所采用
平衡结构的整数规划模型包含如下三个部分:无环线性约束、不平衡节点对线性约束和目
标函数,构建基于平衡结构的部分扫描优化模型;
构建基于平衡结构的部分扫描优化模型具体如下:
(3.1)、根据BALLAST方法构建电路的图模型G(V,E,w),其中V为节点集,E为边集,w
为边的权重;每一个节点是一组相连的组合逻辑,每一条边代表一个或多个触发器,每一个
边的权重为该条边所代表的触发器的数目,在构建图模型时记录下每一条边对应的所有触
发器;为图中的每一条边分配一个序号和一个决策变量;
(3.2)、从图中找出所有的环:平衡结构要求图是一个无环结构,那么每一个环中
最少需要有一条边被从图中去掉,即每一个环对应的边的布尔变量之和小于环的长度,形
成一个无环线性约束;
(3.3)、依次考察图中的每一对节点,如果这对节点之间有多条路径,并且这些路
径中至少有两条路径长度不相同,那么标记这对节点为不平衡节点对并为每一对不平衡节
点对写出一组线性约束;
(3.4)、根据环的约束和不平衡节点对的线性约束和最小化扫描触发器的目标,构
建平衡结构的整数规划模型;
4)、求解整数规划模型,记录解中每一个为0的决策变量对应的边,存入集合Es;找
出集合Es中的每一条边对应的所有触发器,加入集合R
5)、将上述集合R中的每一个触发器替换为扫描触发器,利用所设计的扫描链插入
方法对该网表进行修改,插入扫描链,重新输出网表;
6)、利用FPGA布局布线工具,将输出的网表重新综合,生成带有扫描链的比特流文
件。
在IWLS2005电路集上的实验表明,本发明与全扫描方案相比,在FPGA上插入扫描
链消耗的LUT资源增加比率减少75.9%。与Gupta等人提出的BALLAST[4]方法相比,LUT资源
增加比率减少13.9%,实验数据如下表1所示。
表1不同扫描链插入方法的资源消耗
![]()
表中:#DFF为D触发器的数量;#SFF为扫描触发器的数量;
#LUT为LUT的数量;Ratio为扫描所带来的LUT与无扫描相比的
LUT数量增加比率.
具体实施例:
本发明生成平衡结构的整数规划模型具体如下:
(1)根据图的结构建立无环线性约束:使用xe来表示图中的边e,定义xe为0时表示
该边被从图中去除,xe为1时表示该边被留在图中。对于图中的第i个环Ci,设其长度为Li,设
定ei,j为环上的第j条边的序号,其中1<=j<=Li,那么对于环Ci,定义函数Ci(x)=∑xei,j,1
<=j<=Li。基于以上定义则对于一个拥有n个环的图,该图无环的约束可以定义为:
Ci(x)≤Li-1,i=1,2,...,n
(2)建立不平衡节点对的线性约束:假定一组不平衡节点对之间的所有路径根据
其长度不同可以分为K组,使用Li来表示第i组的长度,使用Ni来表示该组的路径数目。对于
第i组路径上的第j条路径。其上面的第k条边,使用三元组(i,j,k)来唯一的标识它,并设定
βi,j,k为该边对应的序号。对于该路径,定义函数:
![]()
对于第i组路径,定义函数:
![]()
对于一对不平衡节点对(u,v),定义:
![]()
则一对不平衡节点对的平衡约束可以写成U(u,v)(x)=0。化简之后,是一个关于x
的多项式方程,由于x只能取值为0或1,所以多项式的每一项都大于等于0。根据非负数的性
质和不等式的性质,最终可将该不平衡节点对的约束化简为一组线性不等式约束。其形式
为:
![]()
其中
![]()
上式中的Kl指的是对于第l组不平衡节点之间路径的分组个数。B为一个第l组不
平衡节点对的第r组和第s组路径中,总共含有的边的个数,对于特定的节点对和特定的分
组,该数认为是一个常数。
(3)确定目标函数:上述的目标函数可以写成
![]()
(4)根据上述的约束条件和目标函数,可以确定平衡结构的整数规划模型如下:
![]()
subject to Ci(x)≤Li-1,i=1,2,...,n
![]()
应当理解的是,这里所讨论的实施方案及实例只是为了说明,对本领域技术人员
来说,可以加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护
范围。
相关文献:
[1]A.Palchaudhuri and A.S.Dhar.Efficient Implementation of Scan
Register Insertion on Integer Arithmetic Cores for FPGAs[C]//2016 29th
International Conference on VLSI Design and 2016 15th International
Conference on Embedded Systems(VLSID),Kolkata,2016:433-438.
[2]Wheeler T,Graham P,Nelson B,et al.Using design-level scan to
improve design observability and controllability for functional verification
of FPGAs[C]//Proceedings of the 11th International Conference on Field
Programmable Logic and Applications.Los Alamitos:IEEE Computer Society Press,
2001:483-492.
[3]Mavroidis I,Mavroidis I,Papaefstathiou I.Accelerating emulation
and providing full chip observability and controllability[J].IEEE Design&Test
of Computers,2009,26(6):84-94.
[4]R.Gupta,R.Gupta and M.A.Breuer.The Ballast methodology for
structured partial scan design[J].IEEE Transactions on Computers,1990,39(4):
538-544.