一种面向以太网控制器收发通路的内建自测试方法及系统与流程

文档序号:20946974发布日期:2020-06-02 19:55阅读:254来源:国知局
一种面向以太网控制器收发通路的内建自测试方法及系统与流程

本发明属于集成电路技术领域,具体涉及一种面向以太网控制器收发通路的内建自测试方法及系统,尤其适用于对控制器管脚数目和硬件资源有限制、接口协议复杂、电气特性要求较高的芯片,如低功耗嵌入式千兆以太网控制器、万兆以太网控制器等。



背景技术:

目前,在主流的以太网控制器中,其接口带宽通常都能达到或超过1000mbps。换句话说,千兆及更高带宽的以太网控制器占据了绝大部分的市场。事实上,当前以太网的最大带宽可达100gbps,而下一代400gbps的标准也正在制定当中。

然而,不断增大的网络接口带宽对以太网控制器芯片的测试工作带来了新的难点和更大的测试成本。一方面,高速接口的物理电气信号、协议规范越来越复杂,导致测试向量的生成难度不断增大,测试周期和风险均随之增大;另一方面,对高速接口发出的数据进行采样和分析的难度增大,从而对ate测试设备的性能要求不断提高,导致测试成本增大。

内建自测试(builtinselftest,bist)技术不依赖于昂贵的测试设备,只需要依靠芯片的自身结构便能完成自测试,从而能够在保证测试速度的情况下极大的降低测试复杂度和测试成本。但是目前的bist技术大多应用于对芯片内部存储资源的测试和扫描,针对芯片具体功能层面的逻辑内建自测试并不能够做到统一化和标准化。具体来说,对于以太网控制器芯片,针对其核心数据收发功能的自测试方法并未得到普遍的应用且相关研究工作较少。

现有的一种是通过verilog硬件描述语言对物理层数字控制系统进行编码,并在其中嵌入了完善的内建自测试系统以便于芯片测试,实现了对rapidio物理芯片的自测试。但该方法只针对rapidio的物理层应用,并未实现对整个控制器的自测试,因此在实际应用中具有很大的局限性。此外,该方法在测试过程中需要通过外围接口配置多个寄存器,且测试结束后需要读取寄存器才能获取结果,操作流程复杂,步骤繁琐,对用户的友好性不足。还有一种分析和讨论了芯片中主要包含的故障类型,并针对控制器类芯片提出了一套完整的可测试设计方案。虽然其方案中也采用了内建自测试的方法,但其只实现了对存储器的内建自测试,并未涉及到对控制器核心功能层面的测试。还有采用改进多播路由算法并行传输测试数据包,将测试激励电路和响应分析电路加在被测电路中,并通过采取测试与数据传输并行执行策略,减少了测试时间。但其只适用于交换、路由等电路或设备,并不适用于以太网控制器这类网络终端设备。另外,测试模式单一,并不能提够不同负载压力、不同数据转发类型的测试,因此其功能性、实用性仍存在较大优化的空间。



技术实现要素:

本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种面向以太网控制器收发通路的内建自测试方法及系统,有效解决高带宽以太网控制器芯片在测试、老化过程中存在的测试激励生成复杂度高、数据协议分析难度大等问题,基于内建自测试技术的思想,有效加快芯片在成测和老化阶段的进程,提高了测试效率,降低了测试成本,且不占用额外的芯片管脚,保持对芯片管脚定义的兼容。

本发明采用以下技术方案:

一种面向以太网控制器收发通路的内建自测试方法,包括以下步骤:

s1、根据测试模式选择方法对测试模式进行解析,并判断测试模式的配置是否符合测试模式选择方法的规定;若配置正确,则进行步骤s2;否则退出测试,整个测试结束;

s2、将面向处理器接口端的数据收发路径进行切换,使数据的收发路径分别与芯片内部的自测试单元连接;

s3、根据步骤s1中获得的测试模式对测试环境进行配置,包括回环深度、mac和phy的工作速率、mac和phy的双工模式;

s4、根据步骤s1中获得的测试模式生成测试数据帧,并通过发送路径发送,发送完成后启动定时器;

s5、判断在定时器超时前,自测试单元是否接收到数据帧;若接收到数据帧,则按步骤s6;否则,对测试中存在的故障进行分析定位;

s6、对接收到的数据帧进行缓存,并对数据帧的长度、源地址、目的地址、vlanid、帧类型进行提取;

s7、将接收到的数据帧与步骤s4发送出的数据帧进行比对,若二者一致,则进入步骤s8;否则,对测试中存在的故障进行分析定位;

s8、对测试结果和测试次数进行记录和统计,然后根据测试结果反馈方法的规定,将测试结果输出;

s9、根据步骤s1中获得的测试模式,判断该次测试是否达到了设定的测试次数;若达到次数,则测试结束;否则,返回步骤s4,继续开始测试。

具体的,步骤s1中,测试模式选择方法采用io管脚复用,首先判断复位,如果复位无效,则结束,如果复位有效,将指定的输出管脚切换为输入管脚,对输入的信号进行采样,解析对应的测试模式并记录。

进一步的,测试参数包括回环深度、测试速率、双工模式、测试次数、数据帧长度和数据帧类型,复位期间对管脚的输入值进行采样并保存,实现对各项参数的记录,完成测试模式的选择。

具体的,步骤s3中,回环深度是控制器中,数据在何处由发送路径到达接收路径;包括phy中的mdi层回环、tbi层回环、pcs层回环以及mac中的gmii层回环、缓存区回环;mac和phy的工作速率是测试中链路需要达到的速率;mac和phy的双工模式是测试是在全双工或是半双工模式下进行。

具体的,步骤s8中,测试结果反馈方法采用io管脚复用,在测试过程中将指定的输出管脚的驱动源进行切换,将测试结果通过输出管脚输出,测试结果输出的信息包括:总测试次数、测试成功的次数、测试失败的次数、故障定位分析的结果,测试失败的次数包括测试超时的次数和收发数据帧不一致的次数。

具体的,在测试中,定时器超时或接收到的数据帧与发送数据帧不一致时,根据故障分析定位方法的描述,自动对引起测试失败的原因进行分析和定位,并最终返回相应的分析结果,同时测试结束。

进一步的,故障分析定位方法具体为:首先确定回环深度是否最小,如果最小,生成故障分析定位结果并输出,结束;回环深度不是最小,采用降档方式,减小至上一级回环深度,并对测试环境重新进行配置;按照片内回环测试方法,重新进行数据收发测试,如果测试不成功,返回重新判断回环深度,如果测试成功,生成故障分析定位结果并输出,结束。

本发明的另一个技术方案是,一种面向以太网控制器收发通路的内建自测试系统,根据所述面向以太网控制器收发通路的内建自测试方法,包括测试主控模块,测试主控模块能够对整个测试流程和测试环节进行控制,测试主控模块经管脚控制模块连接芯片io管脚,管脚控制模块用于实现对测试模式的捕获、测试结果的输出以及数据收发路径的切换;测试主控模块经激励生成模块连接数据发送路径,激励生成模块完成测试数据帧的生成,并按接口时序传输至数据发送路径,实现数据帧的发送;测试主控模块经控制器配置模块连接控制状态寄存器模块,控制器配置模块用于对芯片内部寄存器进行配置;测试主控模块经响应分析模块连接故障定位模块,响应分析模块连接数据接收路径,对接收到的数据帧进行缓存并进行分析比对,判断其是否与激励生成模块产生的数据帧一致,然后向测试主控模块反馈,故障定位模块采用自动降档的方式对回环路径进行逐级的测试,根据测试结果分析和定位出存在故障的回环路径并发送回测试主控模块。

具体的,测试主控模块根据管脚配置模块所获取的测试模式,通过控制器配置模块对芯片内部的相应寄存器进行配置,构建测试环境;在测试环境建立后,控制激励生成模块产生相应的测试数据帧;持续监控控制响应分析模块的状态,对其反馈的测试结果进行存储和分析;在测试存在故障的情况下,测试主控模块启动故障定位模块对测试中存在的故障进行分析定位。

具体的,控制器配置模块的配置信息包括mac回环层次、phy回环层次、mac的工作速率、mac双工模式、mac接收过滤模式、phy工作速率和phy双工模式,在配置过程中,先对寄存器的原始值进行记录,然后再进行配置;在复位期间,管脚控制模块驱使io双向管脚为输入,并对其输入值进行采用并解析;在进入测试模式后,管脚控制模块驱使io双向管脚为输出,且将其输出的驱动源切换至测试主控模块;在进入测试模式后,管脚控制模块切断处理器接口与数据收发路径的连接,将数据收发路径分别与响应分析模块和激励生成模块连接。

与现有技术相比,本发明至少具有以下有益效果:

本发明一种面向以太网控制器收发通路的内建自测试方法,有效解决了以太网控制器芯片在数据收发测试中复杂的高速接口激励和繁琐的数据、协议分析问题,实现了控制器芯片在数据收发功能层面的自测试、自诊断,从而加快了芯片在成测和老化阶段的进程,不仅提高了芯片的测试效率,而且降低了芯片测试老化的复杂度和成本。

进一步的,测试模式选择方法和测试结果反馈方法通过分别在复位期间和测试期间对io管脚进行复用,能够使芯片快速、准确地进入自测试式,并直观主动地输出测试结果,减小了外围测试环境的设计复杂度,同时也保持了对芯片原有io管脚的兼容。

进一步的,根据测试模式选择方法所确定的测试模式,提供灵活的测试方式,在测试深度、速率、双工以及帧长方面均可自由配置,从而满足各种测试应用的需要。

一种面向以太网控制器收发通路的内建自测试系统,通过在测试不成功时采用自动降档的方式,逐步减小测试的回环深度,同时自动地对存在故障的数据路径进行分析,最终判断出故障所处的大致位置,帮助用户更快的定位问题。

综上所述,本发明提高了测试效率,降低了测试成本,且不占用额外的芯片管脚,保持对芯片管脚定义的兼容。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

图1为本发明片内回环测试方法流程图;

图2为本发明测试模式选择方法流程图;

图3为本发明故障分析定位方法流程图;

图4为本发明硬件电路的总体结构框图。

具体实施方式

本发明提供了一种面向以太网控制器收发通路的内建自测试方法,采用片内回环的理念,构建数据从发送路径回绕到接收路径的通路;通过控制器内部产生测试激励并对结果进行比对分析,判定控制器核心功能及收发通路是否运转正常,并在发生故障时进行自动定位;同时采用管脚复用的方式,实现对测试模式、测试结果的灵活配置和输出。

请参阅图1,本发明一种面向以太网控制器收发通路的内建自测试方法,包括以下步骤:

s1、首先根据测试模式选择方法对测试模式进行解析,并判断测试模式的配置是否符合测试模式选择方法的规定,即配置是否正确;若配置正确,则进行步骤s2操作;否则退出测试,整个测试结束;

请参阅图2,测试模式选择方法采用了io管脚复用思想,在芯片上电复位期间通过对管脚输入信号进行采样,从而实现对测试的模式进行选择。

具体来说,对于以太网控制器,其led管脚在正常工作时只是作为输出管脚使用,且其功能相对独立,因此该方法规定在复位期间将这些输出管脚作为输入管脚使用,来进行测试模式的配置。需要注意的是,这里只是以led管脚为例,但不局限于led管脚。

在上电复位期间,通过对这些管脚进行上拉或下拉,实现对测试中所需要的必要信息的输入,其包括的测试参数有:

回环深度、测试速率、双工模式、测试次数、数据帧长度、数据帧类型。复位期间对这些管脚的输入值进行采样并保存,从而实现对各项参数的记录,完成测试模式的选择。

本发明所提出的测试模式选择方法不仅能够提供灵活、简便、快速的模式配置,而且也可以保持对芯片原有io管脚的兼容。

s2、将面向处理器接口端的数据收发路径进行切换,使数据的收发不再指向处理器端,而是与芯片内部的自测试单元进行连接;

该操作主要实现控制器内部数据收发路径与处理接口的隔离,保障测试过程中激励的注入、结果分析等操作均由自测试单元完成。

s3、根据步骤s1中获得的测试模式,对测试环境进行相应的配置,具体包括回环深度、mac和phy的工作速率、mac和phy的双工模式;

其中,回环深度是指在控制器中,数据在何处由发送路径到达接收路径。回环深度包括phy中的mdi层回环、tbi层回环、pcs层回环以及mac中的gmii层回环、缓存区回环。mac和phy的工作速率是指测试中链路需要达到的速率,而mac和phy的双工模式是指测试是在全双工或是半双工模式下进行。

s4、根据步骤s1中获得的测试模式,生成相应的测试数据帧,并将该数据帧由发送路径进行发送,在发送完成后,立即启动定时器;

该定时器的主要目的是保证在长时间未接收到数据帧的情况下,测试能够进入故障分析定位阶段,避免陷入死等待局面。同时,该定时器的定时时间需要大于最大的数据收发回环时间。

s5、判断在定时器超时前,自测试单元是否接收到数据帧;若接收到数据帧,则按步骤s6进行下一步的操作;否则,进入步骤s10,对测试中存在的故障进行分析定位;

s6、对接收到的数据帧进行缓存,并对数据帧的长度、源地址、目的地址、vlanid、帧类型进行提取;

s7、将接收到的数据帧与步骤s4发送出的数据帧进行比对,判断二者是否一致;若一致,则进入步骤s8;否则,进入步骤s10,对测试中存在的故障进行分析定位;

s8、对测试结果和测试次数进行记录和统计,然后根据测试结果反馈方法的规定,将测试结果输出;

测试结果反馈方法采用io管脚复用思想,在测试过程中将指定的输出管脚的驱动源进行切换,从而将测试结果通过这些输出管脚进行输出。

以led管脚为例,在正常工作时,led管脚为输出管脚且只输出控制器的状态信息。当进入测试模式后,led管脚不再输出控制器的状态信息,而是作为测试结果的输出管脚,将测试结果进行输出。需要注意的是,这里只是以led管脚为例,但不局限于led管脚。

测试结果输出的信息包括:总测试次数、测试成功的次数、测试失败的次数、故障定位分析的结果。其中测试失败的次数又包括测试超时的次数和收发数据帧不一致的次数。

因此,结合测试模式选择方法和测试结果反馈方法,这些被复用的io管脚共有三种状态,分别为正常模式下的输出状态、复位期间的测试模式选择输入状态以及测试模式下的测试结果输出状态。

s9、根据步骤s1中获得的测试模式,判断该次测试是否达到了设定的测试次数;若达到次数,则测试结束;否则,返回步骤s4,继续开始测试;

s10、在测试中,定时器超时或接收到的数据帧与发送数据帧不一致时,根据故障分析定位方法的描述,自动对引起测试失败的原因进行分析和定位,并最终返回相应的分析结果,同时测试结束。

本发明方法的测试模式中提供了多种不同的回环深度。根据osi参考模型自底向上可以分为mdi层回环、tbi层回环、pcs层回环、gmii层回环以及缓存区回环。其中,mdi层回环最接近真实的数据收发,因为该回环路径已经基本上覆盖了整个收发通路,因此回环深度较大。而缓存区回环则最靠近自测试单元,数据并未经过mac和phy的处理,因此收发路径最短,回环深度较小。因此,这里规定越靠近物理接口的回环路径,其回环深度越深。

故障分析定位方法基于不同的回环深度,通过自动降档的方式对存在故障的数据路径进行判断和定位,整个操作流程如图3所示。

所谓自动降档,是指在测试过程中,若在当前配置模式下一直处于测试失败的情况,则自测试单元会自动对测试模式进行降档,也就是将回环深度降低,路径缩短,再进行测试,依此类推,直至测试深度减小至最低。

通过这种方式,自测试单元能够自动地判断出故障所处的大致位置,从而帮助用户更快的定位问题。例如,在mdi层回环不成功的情况下,故障分析定位方法启动,并进行自动降档处理再进行测试,直到gmii层回环才测试成功,那么这可以说明数据在mac中收发正常,而在phy层收发不正常,因此故障存在于phy中。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图4,本发明一种面向以太网控制器收发通路的内建自测试方法所对应的硬件电路,包括测试主控模块1、激励生成模块2、响应分析模块3、故障定位模块4、控制器配置模块5和管脚控制模块6。

测试主控模块1对整个测试流程和测试环节进行控制,其数量为1。

测试主控模块1根据管脚配置模块所获取的测试模式,通过控制器配置模块对芯片内部的相应寄存器进行配置,从而构建测试环境;在测试环境建立后,控制激励生成模块产生相应的测试数据帧;持续监控控制响应分析模块的状态,对其反馈的测试结果进行存储和分析;在测试存在故障的情况下,测试主控模块启动故障定位模块对测试中存在的故障进行分析定位。

激励生成模块2根据测试主控模块的控制,完成测试数据帧的生成,并按相应的接口时序传输至数据发送路径,从而实现数据帧的发送,其数量为1。

在测试主控模块的不同配置下,该模块会生成不同长度、不同类型的数据帧。但无论生成何种数据帧,该模块均需要保证数据帧正确无误,符合以太网协议的要求。

响应分析模块3主要功能是对接收到的数据帧进行缓存并进行分析比对,判断其是否与激励生成模块产生的数据帧一致,然后向测试主控模块反馈,其数量为1。

在接收定时器超时或收发数据帧不一致的情况下,该模块会向故障定位模块告知其当前的状态,并触发故障定位模块对测试中存在的故障进行分析。

故障定位模块4主要功能是采用自动降档的方式对回环路径进行逐级的测试,并根据测试结果分析和定位出存在故障的回环路径,其数量为1。

工作过程是:首先对当前的故障状态进行记录,然后分析当前的测试环境,是否可以进行降档处理:若可以,则通知测试主控模块重新配置新的测试环境,并开始测试;若不可以,则生成故障定位结果。在重新开始测试后,若测试成功,则记录状态并生成故障定位结果;若测试失败,则返回重新进行迭代。

控制器配置模块5主要功能是根据测试主控模块的控制,对芯片内部寄存器进行相应的配置,其数量为1。

配置的信息包括mac回环层次、phy回环层次、mac的工作速率、mac双工模式、mac接收过滤模式、phy工作速率、phy双工模式等。在配置过程中,该模块会首先对寄存器的原始值进行记录,然后再进行配置。这样做的目的是在退出自测试模式后,该模块能将寄存器恢复至其原始值,从而保证退出自测试模式后芯片能够正常工作。

管脚控制模块6主要功能是根据芯片的复位状态以及测试主控模块的控制,对指定的io双向管脚、处理器接口进行切换,实现对测试模式的捕获、测试结果的输出以及数据收发路径的切换,其数量为1。

在复位期间,管脚控制模块6驱使io双向管脚为输入,并对其输入值进行采用并解析;在进入测试模式后,管脚控制模块6驱使io双向管脚为输出,且将其输出的驱动源切换至测试主控模块;此外,在进入测试模式后,管脚控制模块6切断处理器接口与数据收发路径的连接,而将数据收发路径分别与响应分析模块和激励生成模块连接。

请参阅图4,虚线内部结构为本发明所提出的自测试方法电路结构,虚线外部为与其连接的以太网控制器中的其它接口或模块,其中,控制状态寄存器模块主要存储整个控制器的配置和状态信息;数据接收路径为控制器中数据接收通路在处理器端的接口,数据发送路径为控制器中数据发送通路在处理器端的接口;芯片io管脚为控制器芯片中io管脚pad的接口。

本发明可用于高带宽网络、总线类控制器芯片中,特别适用于对控制器管脚数目和硬件资源有限制、接口协议复杂、电气特性要求较高的芯片。

在具体的实施例中,选择自主研发的千兆以太网控制器lc9000为对象,将该发明的硬件电路与其进行集成,进行系统级、芯片级的验证。lc9000是一款自主研发的高带宽、高集成度以太网控制器,其支持1000m、100m、10m三种速率,且提供gphy、serdes两种物理层接口。此外,lc9000还支持eeprom接口和异步处理器接口,实现了灵活的程序自加载、自配置流程,从而简化了处理器对数据收发的控制。

验证结果表明,本发明实现了设计功能,可以正确完成对控制器收发通路的测试,测试性能满足预期,从而有效降低了芯片测试、老化的复杂度和成本。

通过对本发明进行功能仿真,保证其功能的正确性,并在fpga环境下进行实验。在实验环境中,首先对硬件开销进行分析。采用ise13.2对该发明进行综合,得到在硬件逻辑使用率方面,其使用了2803个sliceluts;在存储资源方面,由于并没有对数据进行缓存,因此并没有占用存储资源;在其他硬件方面,如io管脚等,并不占用芯片额外的管脚。本发明的实现并未占用过多的硬件资源,且在io管脚、存储资源等方面与控制器芯片保持了良好的兼容性。

对本发明在测试过程中的时间消耗进行分析。实验中选择分别在1000m、100m和10m速率下进行测试,且分别设置不同的回环深度和不同帧长。每组测试共进行10000次数据回环收发,并通过chipscope对每组测试时间进行统计。

实验结果表明,不同回环深度的测试时间差异可以忽略,且该发明方法完成一组测试的最大耗时为1.49秒,达到了设定的预期,满足了测试的需求。

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1