APP下载

ALTECC_DECODER IP 核的IEEE 1500 Wrapper 设计

2015-03-06王建喜

电子科技 2015年10期
关键词:码字译码寄存器

王建喜

(1.桂林电子科技大学 电子工程与自动化学院,广西 桂林 541004;2.广西自动检测技术与仪器重点实验室,广西 桂林 541004)

随着集成电路规模的增大,为提高设计效率,IP核在电路集成设计中得到了广泛应用[1]。尽管IP 核复用能简化设计流程,避免诸多底层电路的设计,但IP 核集成在电路中后,已无法直接通过输入、输出端口对其进行测试[2],且不同类型的IP 核给测试方法设计带来了困难。因此,如何建立测试机制成为IP 核复用技术必须解决的问题。

IEEE Std 1500 提供了标准化、可扩展的可测性设计方法[3]。在将IP 核集成到电路中时,为其设计基于IEEE 1500 标准的Wrapper,可为集成后的IP 核提供标准的测试接口,同时,IEEE 1500 Wrapper 实现了IP 核与互连电路的隔离[4],这使得IP 核的测试更加方便、安全[5]、高效。

Hamming 码[6]在通信领域应用广泛,原始数据码字在编码时被插入若干校验码,组合后的码字被发送给接收方,接收方通过译码即可达到错误检测的目的[7]。在集成电路中应用Hamming 码通信可提高可靠性,Altera 公司提供了相应的编码和译码IP 核:ALTECC_ENCODER、ALTECC_DECODER。本文即以译码IP 核ALTECC_DECODER 为实验测试对象,研究如何针对IP 核设计IEEE 1500 Wrapper,以及如何运用Wrapper 对IP 核进行测试。

1 IEEE 1500 Wrapper 硬件结构

IEEE Std 1500 规定的Wrapper 硬件结构如图1 所示,其中必须包括的组成结构有:Wrapper 边界寄存器(Wrapper Boundary Register,WBR)、Wrapper 指令寄存器(Wrapper Instruction Register,WIR)、Wrapper 旁路寄存器(Wrapper Bypass Register,WBY)、Wrapper 串行接口(Wrapper Serial Port,WSP);可选设计的结构有Wrapper 并行测试接口(Wrapper Parallel Port,WPP)。

1.1 Wrapper 接口功能定义

Wrapper 接口主要有WSP 接口和WPP 接口两类。其中,WSP 接口包括Wrapper 串行输入端口WSI、Wrapper串行输出端口WSO、Wrapper 串行控制端口WSC;WPP 接口包括Wrapper 并行输入端口WPI[m∶1]、Wrapper 并行输出端口WPO[n∶1]、Wrapper 并行控制端口WPC,有关Wrapper 接口的功能定义如表1 所示。

图1 IEEE 1500 Wrapper 硬件结构

表1 Wrapper 接口功能定义

由于WPC 端口对并行测试操作的控制和WSC 端口相近,在需要为Wrapper 设计并行测试接口WPP时,可省略WPC 端口的设计,相关并行测试操作由WSC 接口控制。

1.2 WBY 设计

在测试过程中,为达到节省测试时间的目的,对于无需测试的IP 核,可使旁路寄存器WBY 在Wrapper中处于有效状态。如图2 所示,旁路寄存器WBY 串接于WSI-WSO 之间,其可为Wrapper 提供一条最短的移位路径,实现对WBR 链的旁路。因此,WBY 通常按1 bit 移位长度设计,但在必要时可增加移位长度。

图2 中,WBY_Ins 是指选择WBY 连接于WSIWSO 之间的Wrapper 指令,D 触发器FF 工作于WRCK上升沿,此外,数据的移位还需满足SelectWIR=0,ShiftWR=1 的条件。

图2 WBY 设计

1.3 WBR 设计

WBR 是Wrapper 执行测试操作的最主要执行部分[8],由一个个围绕在IP 核输入、输出端口的WBR 单元组成。WBR 单元在响应各项测试操作时,扮演了测试施加和响应捕获的角色。

文献[9]给出了典型的WBR 单元设计,但由于设计简单,在实际测试应用中存在着安全性、测试操作不便等问题。鉴于WBR 单元的设计决定着测试执行的效率,诸多文献均对其进行了设计研究[10-12]。

设计的WBR 单元结构如图3 所示。Work_Mode信号决定WBR 处于正常工作模式还是测试模式,其由WRSTN 信号和Wrapper 指令控制。存储单元D1连接于CTI-CTO 之间,负责响应移位和捕获测试操作,D1存储的值即WBR 单元的当前值。在移位测试操作时,上一WBR 单元的数据经CTI 端移入存储单元D1,D1中原先的数据移入下一WBR 单元;在捕获测试操作时,CFI 端的数据被捕获存储到D1中。存储单元D2负责更新测试操作,其将D1存储的WBR 当前数据更新输出。本文设计的WBR 单元在测试过程中支持Safe 模式和Clamp 模式,在Safe 模式有效时,WBR 单元的CFO 输出预先设定的安全值;在Clamp 模式有效时,CFO 输出WBR 单元的当前内部数据。

图3 WBR 设计

1.4 WIR 设计

指令寄存器WIR 用于配置Wrapper 的测试状态,如图4 所示。WIR 包括指令码移位寄存器、指令码译码逻辑和指令更新寄存器,其中指令码移位寄存器是WSI-WSO 之间的一条移位通道。在测试操作开始前,首先令SelectWIR=1,设置ShiftWR=1,经WSI 向指令移位寄存器中移入测试指令码,或置CaptureWR=1,经WIR_PI 并行捕获测试指令码。指令码译码逻辑采用组合逻辑设计,对当前移位寄存器中的数据进行译码。在指令码移位完成后,令UpdateWR=1 执行指令更新操作,指令更新寄存器根据译码结果触发新的Wrapper 指令有效。

图4 WIR 设计

设计Wrapper 指令的功能定义如表2 所示,其中“串行”是指Wrapper 中所有WBR 单元构成一整条WBR 链并作为WSI 和WSO 之间的一条移位通道,“并行”是指WBR 单元被配置为分段链,分别连接于WPI 和WPO 之间;“内测试”是指Wrapper 测试对象是内部IP 核,“外测试”是指Wrapper 测试对象是外部互连电路。

表2 Wrapper 指令功能定义

2 IP 核的Wrapper 设计

本文测试对象是基于Hamming 码规则的信号纠错译码IP 核:ALTECC_DECODER,其作用是实现Hamming 码的译码,并生成伴随式矢量以检测接收码字中是否存在错误。ALTECC_DECODER IP 核的端口信号说明,如表3 所示。

表3 ALTECC_DECODER IP 核端口信号

本文为ALTECC_DECODER IP 核设计的IEEE 1 500 Wrapper,如图5 所示,IP 核输入、输出端的小方框即为WBR 单元。

图5 IP 核Wrapper 设计

3 实验

本文对ALTECC_DECODER IP 核的实验测试以接收码字0000111000100 为测试数据,验证Wrapper 对IP核的测试控制能否正常进行,并根据Wrapper 的测试结果判断ALTECC_DECODER IP 核的译码是否正确。在WS_INTEST 指令下的Modelsim 仿真测试流程图如图6所示。

图6 IP 核测试流程图

图6 测试过程中,测试数据由din[12]→din[11]→***→din[0]→clock→aclr 的顺序构成,向输入端WBR 单元先后串行移位输入的测试数据:000011100010000、000011100010010,其区别在于移入clock 端WBR 单元中的数据分别为0 和1。测试数据串行移位输入后经过更新操作,IP 核clock 端的WBR单元向clock 端施加了0 到1 的激励变化,IP 核输出实验结果,即译码得到的原始码字,输出端WBR 单元捕获IP 核输出的结果后串行移位输出,串行输出的数据顺序为:err_fatal→err_corrected→err_detected→q[0]→q[1]→***q[7],实验测试结果,如图7 所示,图中最后部分即为实验完成后串行移位输出结果。

图7 WS_INTEST 指令下的ALTECC_DECODER IP 核测试

实验结果和根据Hamming 码编码规则得到的理论结果对比如表4 所示。实验得到的结果为11000100,和0000111000100 的理论译码结果相同,且标记信号err_detected、err_corrected、err_fatal 的输出均为0,说明本次实验中ALTECC_DECODER IP 核对接收码字0000111000100 的检测结果无误。

表4 理论结果和实验结果对比

综合实验分析,为ALTECC_DECODER IP 核设计的IEEE 1500 Wrapper 能正常完成测试操作,并将测试结果移位输出以供数据分析。

4 结束语

IEEE 1500 Wrapper 为集成电路IP 核提供了规范有效的测试机制,本文在以Hamming 码译码IP 核ALTECC_DECODER 为测试对象,研究如何实现IP 核的Wrapper 设计。文中针对目前文献中WBR 存在的不足,设计了功能更加完善的WBR 单元,能够更好地满足测试需要。

[1] 邓立宝,乔立岩,俞洋,等.基于带宽匹配思想的SoC 测试结构设计[J].仪器仪表学报,2012(8):1819-1825.

[2] 陈泳宇,陈圣俭,朱晓兵,等.基于IEEE1500 的嵌入式芯核外壳测试封装设计[J].微电子学,2014(5):683-686.

[3] IEEE 1500 Group.IEEE Standard Testability Method for Embedded Core-based Integrated Circuits[S].USA:IEEE,2005.

[4] 杨鹏,邱静,刘冠军.嵌入式芯核测试标准IEEE Std 1500综述[J].测控技术,2006(8):40-43.

[5] 俞洋,向刚,乔立岩.基于安全控制边界单元的IP 核测试封装方法[J].电子学报,2011(S1):99-103.

[6] 杨晓炜,甘露.汉明码参数的快速盲估计算法[J].西安电子科技大学学报:自然科学版,2013(5):60-65.

[7] 甘家宝.汉明码校验原理解析[J].微型电脑应用,2007(1):58-60,64.

[8] 邓立宝,乔立岩,俞洋,等.一种改进的层次化SOCs 并行测试封装扫描单元[J].电子学报,2012(5):949-954.

[9] ILVA Francisco da,Mclaurin Teresa,Waayers Tom.The core test wrapper handbook:rationale and application of IEEE Std.1500[M].New York:Springer-Verlag New York Inc,2005.

[10]谈恩民,金锋.基于IEEE 1500 标准的嵌入式ROM 及SRAM 内建自测试设计[J].微电子学与计算机,2013(7):115-119.

[11]李广进,陈圣俭,牛金涛,等.数字IP 核的IEEE Std1500外壳架构设计研究[J].微电子学与计算机,2012(10):42-46.

[12]孙元,颜学龙,李鹏.基于IEEE Std1500 标准的互连检测构架设计[J].电子器件,2013(5):618-622.

猜你喜欢

码字译码寄存器
STM32和51单片机寄存器映射原理异同分析
分段CRC 辅助极化码SCL 比特翻转译码算法
基于校正搜索宽度的极化码译码算法研究
Lite寄存器模型的设计与实现
放 下
数据链系统中软扩频码的优选及应用
放下
从霍尔的编码译码理论看弹幕的译码
LDPC 码改进高速译码算法
长为{4,5,6}的完备删位纠错码的存在性*