ALTECC_DECODER IP核的IEEE 1500 Wrapper设计
扫描二维码
随时随地手机看文章
摘要 IP核的广泛应用提高了电路集成的效率。由于众多功能各异的IP核集成在电路中,完善的测试机制是确保其正常工作的前提。因此,如何对IP核进行测试成为复用IP核技术必须解决的问题。IEEE Std 1500提供了IP核的测试实现机制,文中基于IEEE 1500研究如何实现IP核的Wrapper设计,实验以Hamming码译码IP核ALTECC_DECODER为测试对象,验证了IEEE 1500 Wrapper可有效地对IP核进行测试。
随着集成电路规模的增大,为提高设计效率,IP核在电路集成设计中得到了广泛应用。尽管IP核复用能简化设计流程,避免诸多底层电路的设计,但IP核集成在电路中后,已无法直接通过输入、输出端口对其进行测试,且不同类型的IP核给测试方法设计带来了困难。因此,如何建立测试机制成为IP核复用技术必须解决的问题。
IEEE Std 1500提供了标准化、可扩展的可测性设计方法。在将IP核集成到电路中时,为其设计基于IEEE 1500标准的Wrapper,可为集成后的IP核提供标准的测试接口,同时,IEEE 1500 Wrapper实现了IP核与互连电路的隔离,这使得IP核的测试更加方便、安全、高效。
Hamming码在通信领域应用广泛,原始数据码字在编码时被插入若干校验码,组合后的码字被发送给接收方,接收方通过译码即可达到错误检测的目的。在集成电路中应用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所示。
由于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连接于WSI—WSO之间的Wrapper指令,D触发器FF工作WRCK上升沿,此外,数据的移位还需满足SelectWIR=0,ShiftWR=1的条件。
1.3 WBR设计
WBR是Wrapper执行测试操作的最主要执行部分,由一个个围绕在IP核输入、输出端口的WBR单元组成。WBR单元在响应各项测试操作时,扮演了测试施加和响应捕获的角色。
文献给出了典型的WBR单元设计,但由于设计简单,在实际测试应用中存在着安全性、测试操作不便等问题。鉴于WBR单元的设计决定着测试执行的效率,诸多文献均对其进行了设计研究。
设计的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单元的当前内部数据。
1.4 WIR设计
指令寄存器WIR用于配置Wripper的测试状态,如图4所示。WIR包括指令码移位寄存器、指令码译码逻辑和指令更新寄存器,其中指令码移位寄存器是WSI—WSO之间的一条移位通道。在测试操作开始前,首先令SelectWIR=1,设置ShiftWR=1,经WSI向指令移位寄存器中移入测试指令码,或置CaptureWR=1,经WIR_PI并行捕获测试指令码。指令码译码逻辑采用组合逻辑设计,对当前移位寄存器中的数据进行译码。在指令码移位完成后,令UpdateWR=1执行指令更新操作,指令更新寄存器根据译码结果触发新的Wrapper指令有效。
设计Wrapper指令的功能定义如表2所示,其中“串行”是指Wrapper中所有WBR单元构成一整条WBR链并作为WSI和WSO之间的一条移位通道,“并行”是指WBR单元被配置为分段链,分别连接于WPI和WPO之间;“内测试”是指Wrapper测试对象是内部IP核,“外测试”是指Wrapper测试对象是外部互连电路。
2 IP核的Wrapper设计
本文测试对象是基于Hamming码规则的信号纠错译码IP核:ALTECC_DECODER,其作用是实现Hamming码的译码,并生成伴随式矢量以检测接收码字中是否存在错误。ALTECC_ DECODER IP核的端口信号说明,如表3所示。
本文为ALTECC_DECODER IP核设计的IEEE1 500 Wrapper,如图5所示,IP核输入、输出端的小方框即为WBR单元。
3 实验
本文对ALTECC_DECODER IP核的实验测试以接收码字0000111000100为测试数据,验证Wrapper对IP核的测试控制能否正常进行,并根据Wrapper的测试结果判断ALTCC_DECOD ER IP核的译码是否正确。在WS_INTEST指令下的Modelsim仿真测试流程图如图6所示。
图6测试过程中,测试数据由din[12]→din[11]→* * *→din[0]→clock→aclr的顺序构成,向输入端WBR单元先后串行移位输入的测试数据:000011100010000、0000111000 10010,其区别在于移入clock端WBR单元中的数据分别为0和1。测试数据串行移位输入后经过更新操作,IP核clock端的WBR单元向clock端施加了0到1的激励变化,IP核输出实验结果,即译码得到的原始码字,输出端WBR单元捕获IP核输出的结果后串行移位输出,串行输出的数据顺序为:err_fatal→err_cotrected→err_detected→q[0]→q[1]→* * *q[7],实验测试结果,如图7所示,图中最后部分即为实验完成后串行移位输出结果。
实验结果和根据Hamming码编码规则得到的理论结果对比如表4所示。实验得到的结果为11000100,和0000111000100的理论译码结果相同,且标记信号err_detected、err_co rrected、err_fatal的输出均为0,说明本次实验中ALTECC_DECODER IP核对接收码字0000111000100的检测结果无误。
综合实验分析,为ALTECC_DECODER IP核设计的IEEE 1500 Wrapper能正常完成测试操作,并将测试结果移位输出以供数据分析。
4 结束语
IEEE 1500 Wrapper为集成电路IP核提供了规范有效的测试机制,本文在以Hamming码译码IP核ALTECC_DECODER为测试对象,研究如何实现IP核的Wrapper设计。文中针对目前文献中WBR存在的不足,设计了功能更加完善的WBR单元,能够更好地满足测试需要。