设计应用

基于高层次综合工具的BIST控制器设计

作者:蔡红艳1,杜 涛1,孟祥刚2,李国峰3,梁 科3,陈新伟4,5
发布日期:2018-08-16
来源:2018年电子技术应用第8期

0 引言

    随着集成电路复杂度的不断提升,嵌入式存储器测试面临着很大的挑战。目前常用的测试方法是在存储器周围设计存储器内建自测试[1](Memory Built-In Self-Test,MBIST)电路。在实际工程中,MBIST的设计主要依赖于专用EDA工具或者通过手工编写RTL级代码描述测试算法来实现。高层次综合工具采用C/C++等高级语言编程,通过编译、优化、映射等一系列过程得到所输入算法的RTL级代码,从而降低算法在硬件上的实现难度。因此,基于传统EDA工具的局限性和手工RTL设计MBIST的不足,本文提出利用高层次综合工具完成BIST控制器设计,降低算法实现的复杂度。

1 背景介绍

1.1 MARCH算法与BIST结构

    MARCH系列算法[2-4]是存储器测试常用算法之一,其内容为根据一系列对存储器的读写操作,把存储器中读出的实际值与期望值相比较,判断存储器是否存在故障,从而将物理故障模型转换为逻辑故障模型。

    BIST电路是算法的硬件体现形式,固化在芯片中存储器周围,主要包含BIST控制器和数据比较器两部分。数据比较器一般采用通用结构,用于比较判断,产生故障标志信号;BIST控制器产生地址信号等用于存储器测试的多种激励信号,是存储器测试算法实现的硬件载体,本文主要讨论BIST结构中的BIST控制器设计。

1.2 高层次综合技术

    基于高层次综合技术的开发流程如图1所示。

wdz7-t1.gif

    首先将设计完成的C/C++算法代码进行高层次综合编译,检查算法是否可综合并验证代码的功能是否正确;之后在增加相应优化指示指令插入的基础上进行综合;综合完成后进行RTL协同仿真,验证硬件功能正确性及时序需求;如果不能满足设计需求,则可重新更改优化条件进行综合。得到正确的RTL代码后可将其封装成IP核或直接导出RTL代码,通过Modelsim或VCS等RTL编译仿真工具继续完成传统RTL级设计流程。

    BIST电路设计[5-6]需通过专业验证平台完成足够的验证与评估后,再将其通过芯片设计流程进行实现,验证平台通常采用FPGA评估平台。本文提出的基于高层次综合工具设计BIST控制器的方法,结果的评估也采用FPGA验证平台进行。文中高层次综合工具采用Xilinx Vivado_HLS 2014.4版本,高层次综合评估平台采用Virtex-7系列的FPGA处理器,通过FPGA平台验证和评估RTL级设计在电路功能和电路规模上的可靠性。

2 BIST控制器设计与优化

2.1 算法实现

    本节以SRAM为对象,介绍采用高层次综合工具设计BIST控制器的方法。本文所述算法均采用C语言实现。结合上文对MARCH算法的介绍,对单个线性存储器而言,采用多组循环节结构实现算法的读写操作。在针对单个线性存储器C代码设计的基础上,在每个步骤外添加一重循环处理行列地址的进位关系。对于多个存储器测试共享一个BIST控制器的情况,利用C代码顺序执行的特点,在单个SRAM设计的外层嵌套一层在存储器间的循环实现,分别实现对应不同存储器的地址,读写使能信号。对于不同SRAM而言,由于地址范围不同,采用数组赋初始值的形式对其进行设定。

2.2 优化方案

2.2.1 端口优化

    为了避免高层次综合工具可以本身默认的端口设计方案使得综合出的模块存在多个冗余的端口信息,本文采用高层次综合工具提供的INTERFACE优化方案进行优化,对输入和输出端口分别采取ap_ctrl_none和ap_none的优化方案进行优化。

2.2.2 流水线优化

    为了降低嵌套在地址循环中的读写循环部分的时钟周期延迟,本设计中对读写循环采取了流水线[7-8](PIPELINE)优化的方案。流水线的应用将循环结构强行打开,将每步循环实现需要的两个时钟周期缩短为一个时钟周期,从而降低了总的时钟延迟周期数,流水线优化的原理图如图2所示。

wdz7-t2.gif

2.2.3 数组完全分割优化

    为了避免多个存储器共享BIST控制器设计中的数组单元被综合成存储结构,本设计对于输入输出端口的数组单元和内部赋初值的数组单元采用了数组完全分割(ARRAY PARTATION-complete)的优化方案[7-8]优化数组单元。对于输入输出端口的数组单元数组完全分割能够将带有寻址和读写使能的数组元素拆分成多个单独的输入输出端口;对于内部赋初值的数组单元数组完全分割能够将数组元素打散成单个的寄存器用于存储数据。

3 结果分析

    下面以FPGA平台综合得到的时钟周期延迟(latency)和资源消耗的结果评估完成的RTL级设计在功能和电路规模上的可靠性。存储器选取单口线性SRAM,算法选取多个经典的MARCH系列算法。数据如表1和表2所示,表1为单个存储器对应一个BIST控制器的数据结果,存储器数据位宽均为64 bit,存储器深度分别为128、256、512和1 024。表2为多个存储器所共享的BIST控制器评估结果,存储器数据位宽均为64 bit,数据深度均为1 024,共享BIST控制器的存储器个数分别为2、3、4和5。

wdz7-b1.gifwdz7-b2.gif

    对于表1和表2中的数据,从资源消耗可以看出,设计中仅消耗FF(触发器)和LUT(查找表)资源,而没有消耗BRAM(块存储器)及DSP(乘加器)资源,符合BIST控制器设计的要求。另一方面,对于相同的存储器或者相同的共享个数,随着MARCH算法总读写次数的增加,FF和LUT的数量大致呈现线性增加的趋势,因为随着算法总读写次数的变化,控制读写步骤和读写次序的内部状态机状态数和状态机控制单元位宽变化导致的。算法相同时,资源消耗随着存储器地址范围的增加而有所增加,这是由于随着地址范围的增加,地址输出寄存器和产生地址信号的中间触发器位宽随着增加的结果。此外,资源消耗随着BIST控制器存储器个数的增加也适当地增加,但是增加的数量远小于其累加值,说明综合出共享BIST控制器结构节约了资源消耗。因此,资源消耗的变化均很小。因此说明了本文采用的C代码设计能够综合出固定的电路结构。此外表中数据的资源消耗数量都很小,对比C代码中数据量和数据宽度值,可以分析出资源消耗主要与C代码中对应的端口和内部变量相关,这一点说明了C代码被综合出的电路规模合理。

    从时钟周期延迟角度分析,对于单个存储器设计,本文所设计BIST控制器运行的总时钟周期数略大于各步骤总读写次数与地址范围的乘积;对于多个存储器共享BIST控制器设计而言,总的时钟周期延迟数略大于各个存储器测试所需的时钟周期延迟数的总和。因此说明高层次综合工具综合出的电路结构能够在运行完整的算法步骤且在每个时钟周期完成一次对存储器的读或写操作,证明功能上满足设计需求。

4 结论

    本文针对传统的BIST控制器设计方法中存在的不足,提出了采用高层次综合工具设计BIST控制器的设计思路。采用高层次综合工具对BIST控制器算法进行设计,并通过对端口分配、流水线插入和数组分割的优化方案对设计进行完善,最后通过FPGA平台从资源消耗和时钟周期延迟两个方面验证和评估了基于高层次综合工具完成的RTL级设计在功能和电路规模上的可靠性。采用高层次综合工具的设计能有效缩短设计时间,在用户自定义算法上具有很高的灵活性。本文提出的方案在存储器内建自测试逻辑设计上具有很强的实用性,在未来的工作中,将会完善不同类型的存储器BIST设计,开发更完善的流程。

参考文献

[1] 陆思安,何乐年,沈海斌,等.嵌入式存储器内建自测试的原理及实现[J].固体电子学研究与进展,2004(2):205-208.

[2] 石磊,王小力.一种基于存储器故障原语的March测试算法研究[J].微电子学,2009(2):251-255+279.

[3] 须自明,王国章,刘战,等.一种测试SRAM失效的新型March算法[J].微电子学,2007(6):330-333.

[4] 郭进杰,王瑜,李婷,等.基于FLASH-March算法的SLASH缺陷检测系统[J].微电子学与计算机,2014(10)::81-85.

[5] 马琪,裘燕锋.片上SRAM内建自测试的实现方法[J].计算机研究与发展,2010(S1):185-189.

[6] 夏季军.基于时钟的数字电路可重构BIST设计研究[J].仪表技术与传感器,2017(1):134-138.

[7] ZHONG G,VENKATARAMANI V,LIANG Y,et al.Design space exploration of multiple loops on FPGAs using high level synthesis[C].32nd IEEE ICCD. Seoul,South Korea.2104:456-463.

[8] 孟祥刚,陈瑶,高腾,等.FFT算法硬件模块的高层次综合实现与优化[J].微电子学,2017(2):217-221.



作者信息:

蔡红艳1,杜  涛1,孟祥刚2,李国峰3,梁  科3,陈新伟4,5

(1.天津市光电传感器与传感网络技术重点实验室,天津300350;

2.天津市光电子薄膜器件与技术重点实验室,天津300350;3.南开大学 IC设计与系统集成实验室,天津300350;

4.工业机器人应用福建省高校工程研究中心,福建 福州350108;5.福州市机器人技术应用联合实验室,福建 福州350108)

此内容为AET网站原创,未经授权禁止转载。
BIST控制器 高层次综合 MARCH算法