BIST在SoC片上嵌入式微处理器核上的应用.docx
- 文档编号:9154968
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:9
- 大小:202.87KB
BIST在SoC片上嵌入式微处理器核上的应用.docx
《BIST在SoC片上嵌入式微处理器核上的应用.docx》由会员分享,可在线阅读,更多相关《BIST在SoC片上嵌入式微处理器核上的应用.docx(9页珍藏版)》请在冰豆网上搜索。
BIST在SoC片上嵌入式微处理器核上的应用
BIST在SoC片上嵌入式微处理器核上的应用
引言
随着科技的不断发展,集成电路的制造工艺和设计水平得到了飞速提高,设计者能够将非常复杂的功能集成到硅片上。
将PCB板上多块芯片的系统集成到一块芯片内部,这个芯片就是系统级芯片,即SoC(SystemonChip)。
SoC芯片的特点主要有两方面:
第一是其高度的复杂性,第二是大量运用可重用的IP(IntellectualProperty)模块。
以往的芯片设计往往只专注于某个特定功能的模块设计,例如压缩/解压、无线模块、网络模块等。
而一块SoC芯片的功能可能是多个独立模块的总和。
另外,芯片的制造需要经历化学、冶金、光学等工艺过程,在这些过程中可能引入物理缺陷导致其不能正常工作。
因此对芯片的测试成为必不可少的环节。
可测性设计(DesignForTest,DFT)是在芯片的设计阶段就考虑以后测试的需要,使芯片测试更加容易和充分,并降低测试成本。
一个SoC包含各种可复用的功能IP核,其中嵌入式微处理器核是其中的关键部分,大部分都嵌有一个或多个微处理器核以获得最好的性能。
所以,对微处理器核可测性问题的研究越来越迫在眉睫。
1传统测试方法
20世纪七八十年代之前,集成电路还都是小规模电路时,测试大都通过加入激励,探测相应的方式来完成。
这种方式在电路规模不大并且频率不快的情况下还是可行的,但是随着集成电路规模的增长,功能验证内容增多,或者需要使用异步激励信号时,这样的测试方式就存在局限性。
为了提高故障点的测试覆盖率,出现了自动向量生成(ATPG)工具。
运用ATPG算法以及强大的计算机,可以检测到尽可能多的故障点。
随着芯片规模的增长,芯片门数相对于引脚数目的比例变得太悬殊,只通过输入/输出引脚进行测试的方法几乎不能再应用了,于是出现了另外一种基于扫描的测试技术——DFT。
但当扫描链很长而且数量很多时,单芯片测试时间还是很长。
同时高级测试仪器的价格急速攀升,使得BIST(Built-InSelf-Test)即片内测试方法的产生成为必然。
2几种常用的BIST方法及其优缺点
片内测试是节省芯片测试时间和成本的有效手段,外部测试的测试速度以每年12%的幅度增长,而片内芯片的速度以每年30%的幅度增长,这一矛盾进一步推动了BIST的应用。
由于SoC芯片内部的IP种类繁多,对不同的IP核采用不同的BIST测试方法。
采用BIST技术的优点在于:
降低测试成本、提高错误覆盖率、缩短测试时间、方便客户服务和独立测试。
目前BIST测试方法主要有MemBIST和LogicBIST。
2.1MemBIST
MemBIST是面向嵌入式芯片存储器的测试方式,用于测试存储器工作是否正常。
芯片内部有一个BISTController,用于产生存储器测试的各种模式和预期的结果,并比较存储器的读出结果和预期结果。
MemBIST可分为RAMBIST和ROMBIST。
目前较常用的存储器BIST算法有March算法及其变种。
业界常用的工具有MentorGraphics的MBISTArchitecture。
2.1.1RAMBIST测试结构
用RAM实现的数据Cache和指令Cache均使用普通的BIST方法。
因为这两个RAM的结构完全相同,因此为了减少面积消耗,只使用一组测试电路。
在测试时有外部信号TE0、TE1分别控制RAM1、RAM2是否处于测试状态,TE0、TE1不能同时有效。
测试电路结构如图1所示。
控制器在外部输入信号BIST的控制下,产生读写控制信号、访问地址和测试码,对RAM的相应数据进行压缩分析,并将得到的特征值与存放在芯片中的标准特征值比较。
通过两个I/O口报告测试结果,还实现了初步的故障诊断功能。
当发现有故障时,通过TAP控制器,可以将出错的地址移出芯片,为进一步的故障诊断和修复提供信息。
2.1.2ROMBIST测试结构
通常使用循环冗余校验(CRC)电路实现ROM的测试,这种方法虽然测试结果很可靠,但是需要逐位读取信息,而对ROM的访问是每次32位,如果使用该方法则需要一个缓冲机制,并且速度会很慢。
在此仍使用RAM测试中并行的数据压缩,故障覆盖率能够达到要求,测试电路也比CRC电路简单。
测试电路如图2所示。
BIST测试信号由TAP控制器的TDT口输入,是整个测试电路的使能信号,测试过程经过触发后,完全在电路内部完成,结束后通过一个I/O口报告测试结果。
多输入寄存器(MISR)作为TAP控制器的数据寄存器,测试初始化时设置为初始状态。
2.2LogicBIST
LogicBIST方法是利用内部的向量产生器逐个地产生测试向量,将它们施加到被测电路上,然后经过数字压缩和鉴别产生一个鉴别码,将这个鉴别码同预期值进行比较。
LogicBIST通常用于测试随机逻辑电路,一般采用伪随机测试图形生成器来产生输入测试图形,应用于器件内部机制;采用MISR作为获得输出信号产生器。
由于MI-SR的结构和多输入序列的鉴别码的固有特点,这是一个多对一的映射关系。
不同的输入序列通过MISR之后可能产生相同的鉴别码,这被称之为alias。
LogicBIST测试只能得到芯片能否通过测试的结果。
一旦芯片不能通过测试,该如何确定芯片内部的故障点在何处呢?
这就是诊断工作,不过LogicBIST对故障诊断的支持太弱,如果一块芯片未能通过,单单凭错误的鉴别码是很难确定故障点在何处的。
有时会出现芯片内部多个故障点的共同作用使得鉴别码反而是正确的现象,这被称之为漏测试。
它产生的概率非常小,也有算法来尽量减小漏测试发生的概率。
其中一种方法是将正确的序列输入,和正确的鉴别码作单一映射,其他的错误输人一定得到错误的鉴别码。
这种方法对MISR、PRRG以及CUT都需要具体分析,以改变其结构或者PRPG的生成顺序。
结语
本文介绍了SoC片上嵌入式微处理器核可测性技术的研究现状;介绍了设计时在电路中植入相关功能电路,用于提供自我测试功能的技术,以降低器件测试对自动测试设备(ATE)的依赖程度。
BIST技术可以实现自我测试,也可以解决很多电路无法直接测试的问题(因为它们没有外部引脚)。
可以预见,在不久的将来即使最先进的ATE也无法完全测试最快的电路,这也是采用BIST的原因之一。
但是BIST也存在一些缺点,如额外的电路会占用宝贵的面积,会产生额外的引脚和可能出现测试盲点等。
BIST技术正成为高价ATE的替代方案,但是目前还无法完全取代ATE,他们将在未来很长一段时间内共存。
相关阅读:
[电子动态]首款USB3.0影音传输SoC芯片ET12U32X正式量产2011-01-26
[无线通信]SoC设计中的片上通信体系结构研究2009-11-10
[无线通信]具备定位功能的ZigBee®SoC2010-03-02
[无线通信]德州仪器隆重推出业界功能最强大的基站SoC-TMS320TC2010-11-10
[测量仪表]豪威科技开始对汽车产业客户大量出货OV7710数字SoC图像2008-10-29
[嵌入式类]赛普拉斯推出可提高PSoC设计速度和效率的在线知识产权库2008-05-19
[嵌入式类]SoC芯片-S698-MIL™-专门用于恶劣环境2008-05-19
[嵌入式类]高性能的32位RISC嵌入式并行微处理器-S698P-SOC2008-05-19
USBIP核的设计和应用
摘要:
由于USB接口广泛应用,现在众多SoC中都嵌入了USBIP核。
但当前市场上的USBIP核一般仅仅针对某一种总线结构的SoC,可重用性不强。
介绍了一款可配置的USBIP核设计,重点描述USBIP核的结构划分,详细阐述了各模块的设计思想。
为了提高USBlP的可重用性,本USBIP核设计了总线适配器,经过简单配置可以用于AMBAASB总线或WishBone总线结构的SoC中。
此IP核进行了FPGA验证,验证结果表明他可作为一个独立的模块嵌入到SoC系统中。
关键词:
通用串行总线;IP核;SoC;总线适配器
1引言
USB(UniversalSerialBus)具有以下特点:
即插即用、广泛的软硬件支持、低功耗、可选择的多种速度模式、完备的总线拓扑结构。
随着半导体工艺技术的发展,集成电路设计者能够将愈来愈复杂的功能集成到单硅片上。
SoC是将系统集成在一块芯片上,包括微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)等。
SoC的一项关键技术即为IP(IntellectualProperty)复用技术。
IP核是指在电子设计中预先开发的用于系统芯片设计的可复用构件,系统设计者在进行一个复杂设计时将众多IP核在一个芯片上有效集成,从而构成一个功能强大的系统。
IP技术在SoC的开发中可以充分利用已有的开发成果,从而缩短系统芯片的设计周期,提高效率。
在设计IP核时应注意其可重用性,为了增强IP核的可能重用性,使IP核能更好地适应不同总线结构的SoC平台,可以为IP核设计一个总线接口模块。
该模块主要完成片上总线的协议转换和实现,称之为总线适配器(BusAdapter)。
其特点为:
IP核与外部的片上总线标准无关,其逻辑相对固定,只需对相应的总线适配器进行配置就能够有效地集成于不同片上总线的SoC平台。
当前SoC中常用的总线协议有三种分别是:
ARM公司的AMBA、Silicore公司的WISHBONESoCInterconnectionArchi—tecture和Ahera的Avalon总线。
本文实现的USBIP核中,设计了总线适配器,在综合前针对WishBone总线或AMBAASB总线通过宏定义进行设置,从而使USBIP核能够直接集成于WishBone或AMBAASB总线的SoC系统中。
2USB系统组成部分
系统主要分为三个部分:
主机、设备和互连。
在任何的系统中,只有一个主机,与主机系统的接口称作主机控制器。
他可由硬件、固件和软件综合实现。
设备可以分为功能性设备即外设和集线器,前者作为系统的功能扩展设备而后者作为设备的扩展连接点。
互连定义了主机和外设的连接和通信方式。
包括总线拓扑结构、内部分层关系、数据传输模型和总线访问控制等几个部分。
一个简单的系统可以由一台主机和一个外设构成。
3USB的模块设计
3.1模块划分
USBIP核主要是实现了USBl.1协议,在对整个协议分析的基础上,整个IP核共分成五大模块:
串行接口引擎模块、协议层模块、端点控制模块、端点存储模块和总线适配器模块。
串行接口引擎主要是支持最底层的USB协议,由于USB协议中为了增加抗干扰对比特流进行了“不归零码(NonReturntoZeroInvert)”的编解码,同时为了可以从比特流中提取同步信号用了“位填充”和“位剔去”。
串行接口主要完成比特流方面的处理。
协议层模块则主要是完成解包和打包。
在USB协议中,数据缓冲区用了端点(Endpoint)这个概念,不同的缓冲区用了不同的端点号来区分,端点存储模块就是相应的数据缓冲区。
端点控制模块主要是端点控制寄存器和端点状态寄存器,对端点进行相应的控制。
总线适配器模块主要是在不同总线结构的SoC中,对USBIP核总线接口进行相应的配置,从而可以进行无缝连接到相应的SoC中。
USBIP核模块划分如图1所示。
3.2串口接口引擎
串口接口引擎主要是完成USB协议中比特流的处理。
根据数据的传输方向可分为发送部分和接收部分。
发送部分即为USB设备给USB主机发送数据,接收部分则为USB设备从USB主机那里接收数据。
如图2所示。
接收部分:
从同步域中恢复出12MHz的时钟信号,接收主机过来的比特流对其进行不归零码(NRZI)解码,剔除位填充然后进行串并转换,最后将转换后的数据以字节的形式传给协议层。
接收部分还要能判断出一个包的开始,在USB传输过程中,是以包为单的,因此接收部分首先要测包的开始SOP(StartofPacket),所有包都是从同步字段(SYNC)开始的,同步字段是产生最大的边缘转换密度(EndgeTransitionDensity)的编码序例。
以NR—ZI编码的二进制串“KJKJKJKK”同步字段最后2位是同步字段结束的标记,同时标志了包标识符(PacektIden一tiler,PID)的开始。
只有当检测到包SOP才开始后面的NRZI解码、去位填充和串并操作,否则就继续处于等待阶段。
在接收部分还需要有检错部分,在检查到传输过来的数据有错误时,要进行相应的错误处理。
如在NRZI解码后,在对数据进行去位填充时发现了有连续7个“1”则可以认为数据在传输过程中出现了错误,数据包已经损坏,必须通知协议层。
在接收部分需要特别注意的是:
在接收USB主机过来数据时,是不同的时钟域,因此必须考虑到亚稳态问题。
在本设计中,由于只处理单个比特信号,因此用了两级寄存器来消除亚稳态。
发送部分:
将协议层打包好的加上同步字段,然后进行并串转换,将字节形式转换成比特流形式,接着根据协议将数据进行位填充和NRZI编码,通过D+和D一信号传送给USB主机。
这个同步字段也是告诉USB主机有一个新数据包发送过来了,在发送部分还要产生包结束EOP(EndofPacket)的信号。
3.3USB协议层
协议层主要分成三个子模块:
解包模块、打包模块和协议引擎模块。
这一层主要是将经过串口接口引擎模块过来的数据进行解包,剔除USB协议中的信息。
同时将端点中要发送的数据,在协议引擎控制下进行相应的打包,然后通过SIE模块传送给USB主机。
3.3.1解包模块
本模块主要将接收到的信息包数据进行解析,解析出包标识(PID),端点地址和USB设备地址以及包含在包中的有效数据。
在解包时,对令牌包进行CRC5校验,对数据包进CRCl6检验,若出错则进行相应的出错处理。
从上面所述可知,任何包都有同步字段而同步字段在串口接口引擎模块中已经除去了,因此本模块不用关心同步字段。
整个解包数据流如图3所示。
整个解包过程如下:
首先判断接收的包是什么包,若为TOKEN包(0UT或IN或SOF或SETUP或ACK或NAK或STALL或PRE)则转入到TOKEN包的处理进程,若为数据包(DATA0或DATAl)则转入到DATA包的处理进程。
在TOKEN包或DATA包中若发现数据有
错则丢弃此包并报错。
3.3.2打包模块
根据PE送来的PID组织相应的信息包,把要发送的数据安排在相应的数据包,或者组织令牌包。
发送令牌包时,不必产生CRC5校验位。
在发送数据包时,需要把有效数据的CRCl6校验位放在末尾一起发送。
这个模块主要就是如何把协议层引擎模块送过来的数据进行打包,打包的概念其实质就是把要发送的数据根据其相应的信息安排相应的发送顺序。
同样打包的过程中也不用考虑同步字段,同步字段在串口接口引擎层加入。
整个打包数据流如图4所示。
3.3.3协议层引擎模块
在USB设备中,某一个时刻和主机通信的只能是一个端点,当前操作都基于这个端点地址。
主机不能同时和几个端点进行通信,端点的属性在设备和主机刚开始连接时进行的枚举过程中已经确定,保存在各端点对应的寄存器中,比如是IN还是OUT端点,是支持控制传输、批量传输还是中断传输的端点等。
协议引擎模块是整个协议层的核心控制单元,控制了其他所有模块的工作方式,根据当前端点的配置或当前状态处理传输事务,并在传输事务中实时更新控制与状态寄存器。
他的功能包括:
有效处理IN,OUT和SETUP事务,确定当前传输事务要操作的端点地址,正确应答各种包和管理数据的发送和接收,同时实现USB协议中的错误恢复机制。
3.4端点控制模块和端点模块
端点模块:
端点其实就是USB进行通信时,用于存数据的缓冲区,为了提高数据存取的速度,本IP核的端点设计成FIFO。
端点控制模块:
主要是端点控制寄存器和端点状态寄存器,此模块中包含了USBIP核的顶层控制和状态寄存器。
如USB设备的状态控制寄存器、设备地址寄存器、中断屏蔽寄存器和中断源寄存器等。
为了增加灵活性,在设计时针对每一个端点分别设计了设置和功能相同但地址不同的寄存器,包括端点的控制状态寄存器、中断源寄存器、中断屏蔽寄存器、缓冲区的指针寄存器。
端点根据协议可以配置1到16个,在实际设计中根据本身系统需要可以对USBIP核配置端点数,增加了USBIP核端点可扩展性。
3.5总线适配器模块
此模块是为了提高本IP核的可重用性而设计的。
他主要包括WishBone总线接口、AMBAASB总线接口和相应的配置寄存器。
若使用于WishBone总线结构的SoC中,则在综合前通过宏定义进行设置启用WishBone总线接口,这样整个USBIP核可以无缝接入WishBone总线结构的SoC中。
若使用于AMBAASB总线结构的SoC中,则在综合前通过宏定义进行设置启用AMBA总线接口无缝接入其SoC中。
由于是在综合前通过宏定义的,因此在实际综合的时候,只会将宏定义的总线模块综合成实际电路,而不会两个总线接口模块都给综合,节省资源。
同时当此IP核要应用于其他的总线结构SoC中,如Altera的Avalon总线,则只要根据此总线协议再设计一个总线接口模块,在综合时启用此总线接口模块就可以将此IP核直接应用于此SoC中。
因此本USBIP核对于不同总线的SoC利用总线适配器使具体较强灵活性,可重用性强。
4FPGA验证
本USBIP核已经应用于一款数据采集单芯片系统中。
因此在进行FPGA验证时,是将此IP核嵌入于此单芯片系统中进行的。
此单芯片系统中嵌入UART模块可与PC机的串口进行通信,此系统中的增强型8051MCU核对整个USBIP核进行相应的控制。
FPGA验证采用了Xilinx公司的ISE集成开发环境,在调试的过程中用了ChipSeopePro软逻辑分析仪。
硬件平台用Xilinx公司的Virtex4系列中XC4VLX60器件。
整个过程如下:
(1)USB从设备与PC机的USB接口连接,此时USB从设备要完成设备枚举的过程。
(2)设备枚举完成PC机会提示驱动程序还没有装,要求加载驱动程序在PC机上加驱动程序,USB的驱动程序直接与PC机的操作系统联系,项目中的USB接口是在WindowsXP操作系统中调试的。
(3)在驱动程序加载完成后,PC机会提示“现在可以正常通讯”,表明现在可以利用USB的应用层软件进行通信了。
(4)将数据从PC机的应用层输入,通过USB接口发给嵌入USBIP核的数据采集SoC芯片,然后通过其中的SoC中UART将数据返回给PC机,经过比较两者数据完全相同,验证表明了此IP核的正确。
图5是在进行IP核FPGA验证时,设备枚举阶段PC的USB主机发送给USBIP核的帧开始(SOF)包。
fs_clk为从PC机发过来的比特流恢复过来的12MHz的时钟信号。
rx_data表示收到的数据,如图5所示在rx_valid高电平时,表明收到的rx_data是有效的,从图中可以看出收到了十六进制数“A5—43—85”,此包正是PC机发给USBIP核的SOF包。
rxdp和rx_dn是串口接口引擎模块中的信号,他经过一个三态门与图1所示的D+和D一相连接。
由图中可以看出,在“85”收到时,rxdp和rx_dn的波形表明收到了PC机发过来的两个fS_clk时钟周期的"SE0”表示包结束的信号。
5结语
本USBIP核在设计时,充分考虑到可重用性,其USB端点可进行相应的配置和扩展。
同时针对目前SoC中常用的WishBone总线和AMBAASB总线结构设计了总线适配器,在综合前进行相关的宏定义就可以无缝接入SoC中。
本USBIP核在实际项目中,与MCU核以及其他的IP核集成于一款数据采集SoC芯片中,该数据采集SoC已经处于版图后仿真阶段,即将流片。
发布者:
博子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BIST SoC 嵌入式 微处理器 应用