基于FPGA的数字信号测试装置及方法

文档序号:30085335发布日期:2022-05-18 05:31阅读:240来源:国知局
基于fpga的数字信号测试装置及方法
技术领域
1.本发明属于信号检测技术领域,更进一步涉及逻辑信号检测技术领域中的一种基于现场可编程门阵列fpga(field-programmable gate array)的数字信号测试装置及方法。本发明可用于测试数字电路的逻辑程序工作是否满足预期,使用fpga模拟外设的通信,并采样被测设备的输出,将其与期望的时序进行匹配以检测被测设备的逻辑是否满足时序要求。


背景技术:

2.随着集成电路技术的发展,各类外设的通信协议日趋多样,加上大规模集成电路使得芯片逻辑规模不断增大,需要一种用于自动化测试数字电路通信协议是否满足要求,逻辑程序是否按预期工作的设备。一般而言,对数字电路进行通信测试需要模拟多通道的输入并采集多通道输出,此外,还需要根据所模拟外设产生满足协议要求的时序和波形,并将采样的结果与期望的输出进行匹配,检测失败的通信。目前用于测试硬件间通信的检测方法已经较为成熟,但是在工程应用上缺乏较好的解决方案。使用逻辑分析仪的方法需要工程师投入大量精力进行人工排查,难以实现全覆盖的自动测试;使用专用分析仪则缺乏通用性,只能针对少数几种协议或者需要根据板卡定制。而利用fpga具有并行处理能力,灵活的硬件io以及高速的采集能力,可以实现一种较为通用的数字信号测试装置,同时具有自动化测试的功能。
3.胜达克半导体科技(上海)有限公司在其提出的专利申请文献“一种基于fpga在数字测试通道上实现定制模块的方法”(申请日:2021.01.15,申请号202110053251.6,申请公布号cn 112858892 a)中公开了一种基于fpga在数字测试通道上实现定制模块的方法。专利申请的方法的应用场景与本发明相似,其可以通过在数字测试通道上使用定制模块作为测试单元,输出周期性信号并采样输入的信号,主要用于产生输入被测设备的数字信号时序。但是该专利申请的方法存在的不足之处是,首先,对用户设计的定制模块进行综合时会产生冗余模块作为逻辑单元les(logic elements)的填充,这些冗余单元的输出信号和输入信号自循环,不可避免地增加了fpga的功耗;其次,该方法缺少对输入信号的保存功能,即不能将输入的信号重现,不利于在测试失败后进出场景重现;再者,该方法仅仅考虑对被测设备进行测试,缺乏对测试结果的分析,无法给设计人员反馈,需要额外花费人力物力进行错误分析。
4.中国科学院微小卫星创新研究院在其提出的专利申请文献“一种硬件间通信仿真的配置连接装置和方法”(申请日:2020.01.10,申请号201910898349.4,申请公布号:cn 110674067 a)中公开了一种硬件间通信仿真的装置及方法。该专利申请的装置包括单机和外设接口两部分,单机用于初始化、解析配置文件、分配通道号和注册回调函数等功能;外设接口用于实现单机与单机之间的连接并负责将模拟通道的数据传输回单机。该装置需要使用特定的配置格式将单机仿真成预先存储在库中的设备。该专利申请的装置存在的不足之处是,第一,必须使用预先指定的通信协议,用户无法根据自己需要产生自定义的通信协
议;第二,该专利针对硬件间通信仿真设计,需要处理器上使用回调函数的方式模拟通信协议;第三,输入、输出通道在启用前就必须设置,不能实现双向通道。该专利申请的方法包括如下步骤:读取配置文件中硬件间连接部分的配置;解析配置文件,并用相应的数据结构保存硬件间连接的配置字符串;将发送分部与接收部分的配置字符串,解析出相应的硬件发送与接收通道号;按发送分部与接收部分的配置字符串,获取出相应的硬件类对像句柄;用算法将接收通道的回调函数,注册至发送通道。该专利申请的方法存在的不足之处在于,第一,由于需要使用回调函数进行测试,该方法的只能测试装置所能识别的协议类型,且需要通信协议支持校验功能;第二,接收和发送通道只能使用一对多或者一对一这两种模式,不能支持发送和接送通道的多对多模式;第三,同样缺少对测试结果的分析功能,不利于对被测设备的调试。


技术实现要素:

5.本发明的目的在于针对上述现有技术存在的不足,提供一种基于fpga的数字信号测试装置及方法。用于解决现在装置存在的只能测试特定类型的数据、现有方法不能对测试结果进行分析的问题。
6.实现本发明目的的思路是:本发明的装置使用fpga实现,利用fpga的io能够自由再分配的特性实现对被测设备数字信号的输入模拟和输出采样;本发明的方法通过逐比特比较边沿的方式实现,当比特比较的值不相等时,对边沿进行搜索,若属于时序错误,则能在时序匹配的边沿处使得采样ram的边沿数与预期ram的边沿数相等,此时时序的偏移的时间差就体现为在采样ram中错误边沿的地址与搜索到的匹配边沿的地址差,若属于脉冲错误,如毛刺等,则无法在第一个方向匹配的边沿处使得采样ram的边沿数与预期ram的边沿数相等。
7.本发明的数字信号测试装置包括电源模块、通信模块、输入模拟模块、输出采样模块和错误检测模块,其中:
8.所述电源模块,用于向fpga提供电源并调整fpga的区块电压;通过相应电源通道将选通的电源轨输入至fpga;
9.所述通信模块,用于从上位机处读入用户的配置文件,并将其写入fpga的配置寄存器和ram中;并从所述的错误检测模块中读取记录下的内容,并发送给上位机;
10.所述输入模拟模块,用于读取波形ram中保存的数据,使用自身的采样时钟向被测设备输出;使用自身的采样时钟或者寄存器标志位产生一个触发信号;
11.所述输出采样模块,用于使用寄存器标志位选择采样模式:若选择使用与输出信号同步的采样模式时,将选通触发信号作为时序电路时钟;若选择使用与输入同步的采样模式时,将选通用户定义的时钟io波形信号的输入作为时序电路时钟,该io波形信号并不会被记录到采样ram中;若选择使用异步采样模式时,使用本地锁相环的分频作为时钟信号,根据配置使用用户定义的敏感时钟io波形信号的边沿作为分频器的同步信号,该io波形信号将会作为一路通道被记录到采样ram中;将被测设备的io波形信号的输出采样并保存到采样ram中,并完成标志信号置位;
12.所述错误检测模块,用于将预期ram的值与采样ram的值逐比特进行比较;分别统计每个比较结果中不同比特值之前的预期ram与采样ram中的边沿数,并分别保存至预期边
沿计数器和采样边沿计数器中;固定产生边沿的ram指针,对另一个ram进行搜索,根据搜索结果判断错误类型,并处理错误。
13.本发明的数字信号测试方法的步骤包括如下:
14.步骤1,载入用户配置:
15.(1a)电源模块向fpga提供电源并调整fpga的区块电压;通过相应电源通道将选通的电源轨输入至fpga;
16.(1b)通信模块从上位机处读入用户的配置文件,并将其写入fpga的配置寄存器和ram中;
17.步骤2,向被测设备输入信号:
18.(2a)输入模拟模块读取波形ram中保存的数据,使用自身的采样时钟向被测设备输出;
19.(2b)输入模拟模块使用自身的采样时钟或者寄存器标志位产生一个触发信号;
20.步骤3,采样被测设备的输出信号:
21.(3a)输出采样模块使用寄存器标志位选择采样模式:
22.若选择使用与输出信号同步的采样模式时,将选通触发信号作为时序电路时钟;
23.若选择使用与输入同步的采样模式时,将选通用户定义的时钟io波形信号的输入作为时序电路时钟,该io波形信号并不会被记录到采样ram中;
24.若选择使用异步采样模式时,使用本地锁相环的分频作为时钟信号,根据配置使用用户定义的敏感时钟io波形信号的边沿作为分频器的同步信号,该io波形信号将会作为一路通道被记录到采样ram中;
25.(3b)输出采样模块开始工作,将被测设备的io波形信号的输出采样并保存到采样ram中,并完成标志信号置位;
26.步骤4,对采样ram进行检测:
27.错误检测模块将预期ram的值与采样ram的值逐比特进行比较;分别统计每个比较结果中不同比特值之前的预期ram与采样ram中的边沿数,并分别保存至预期边沿计数器和采样边沿计数器中;
28.步骤5,错误检测模块固定产生边沿的ram指针,对另一个ram进行搜索,判断是否找到一个边沿方向与固定ram的边沿方向相同且使得搜索边沿计数器的值与固定边沿计数器的值相等的边沿,若是,则执行步骤6,否则,执行步骤7;
29.步骤6,处理时序错误:
30.(6a)若预期ram的指针的值大于采样ram的指针的值,则判定该比特的错误类型属于时序超前,将采样ram的指针与预期ram的指针之差作为偏移量;
31.(6b)若预期ram的指针的值小于采样ram的指针的值,则判定该比特的错误类型属于时序落后,将预期ram的指针与采样ram的指针之差作为偏移量;
32.步骤7,处理脉冲错误:
33.若分别向前、向后搜索都无法使得搜索边沿计数器的值与固定边沿计数器的值相等,将该采样ram的比特的错误类型为错误脉冲或者毛刺;将采样边沿计数器的值赋予预期边沿计数器;
34.步骤8,向用户报告结果:
35.错误检测模块处理完采样ram的所有比特后,通信模块从错误检测模块中读取记录下的内容,并发送给上位机。
36.本发明与现有技术相比具有以下优点:
37.第一,本发明的装置具有输入模拟模块,与现有技术相比,该模块能同时产生多路输出,并产生两种触发信号,包括周期性的触发信号和单次脉冲的触发信号,克服了现有技术接收和发送通道只能使用一对多或者一对一这两种模式,不能支持发送和接送通道的多对多模式的缺点,使得本发明的装置具有能够具有多发送通道对应多接收通道的特点。
38.第二,本发明的装置具有输出采样模块,该模块能使用三种方式对被测设备的输出进行采样,与输出信号同步的采样模式、与输入同步的采样模式和异步采样模式,克服了现有技术对被测设备测试使用已有的通信协议的缺点,使得本发明的装置能够灵活地对被测设备进行采样,并且能够接受用户自定义的通信协议。
39.第三,本发明的方法具有错误分析的步骤,能够对被测设备输出的结果进行分析,通过对边沿进行处理的方式,本发明的方法能够分析出错误边沿的错误类型属于时序错误或是脉冲错误,若属于时序错误,能通过ram的地址差进一步给出偏移的量,客服了现有的技术方案只能保存采样信息,缺乏对采样结果进行分析的能力的问题。使得本发明的方法具有分析采样结果的错误类型,并进一步给出偏移的优点。
附图说明
40.图1是本发明装置的结构示意图;
41.图2是本发明装置中输入模拟模块功能框图;
42.图3是本发明装置中输输出采样模块功能框图;
43.图4是本发明方法实施例的流程图。
具体实施方式
44.下面结合附图和实施例对本发明做进一步的详细说明。
45.参照图1和实施例,对本发明装置做进一步的详细描述。
46.本发明的数字信号测试装置包括电源模块、通信模块、输入模拟模块、输出采样模块和错误检测模块。
47.本发明实施例的电源模块,用于向fpga提供电源并调整fpga的区块电压,通过选通不同的电源轨实现对不同电压标准的协议的支持。
48.本发明实施例的通信模块,用于从上位机处读入用户的配置文件,并将其写入fpga的配置寄存器和ram中,并从所述的错误检测模块中读取记录下的内容,并发送给上位机。通信模块的作用是用于与用户交互,可以通过与上位机连接或者与其他嵌入式主控连接的方式进行数据的传递。
49.本发明实施例的输入模拟模块用于读取波形ram中保存的数据,使用自身的采样时钟向被测设备输出。使用自身的采样时钟或者寄存器标志位产生一个触发信号。
50.本发明实施例的输出采样模块,用于使用寄存器标志位选择采样模式:若选择使用与输出信号同步的采样模式时,将选通触发信号作为时序电路时钟;若选择使用与输入同步的采样模式时,将选通用户定义的时钟io波形信号的输入作为时序电路时钟,该io波
形信号并不会被记录到采样ram中。若选择使用异步采样模式时,使用本地锁相环的分频作为时钟信号,根据配置使用用户定义的敏感时钟io波形信号的边沿作为分频器的同步信号,该io波形信号将会作为一路通道被记录到采样ram中。将被测设备的io波形信号的输出采样并保存到采样ram中,并完成标志信号置位。
51.本发明实施例的错误检测模块用于将预期ram的值与采样ram的值逐比特进行比较。分别统计每个比较结果中不同比特值之前的预期ram与采样ram中的边沿数,并分别保存至预期边沿计数器和采样边沿计数器中。固定产生边沿的ram指针,对另一个ram进行搜索,根据搜索结果判断错误类型,并处理错误。
52.参照图2和实施例,对本发明装置的输入模拟模块做进一步的描述。
53.用户通过通信模块将设置信息写入采样时钟寄存器组、触发设置寄存器组、引脚使能寄存器,并将需要模拟的通信协议的波形信息按时间顺序以地址增长方向写入ram表。采样时钟重配置器读取采样时钟配置寄存器组的内容,重新配置采样时钟pll的值,将其设置为用户定义的输出采样率之后,采样时钟开始工作,将时钟输出至锁存器和组合逻辑块,该组合逻辑块通过读取触发设置寄存器,选择使用将采样时钟输出或者将触发设置寄存器的标志位输出,从而得到多种触发信号。锁存器获取到时钟信号后,将ram表的内容锁存,并输出至三态门。三态门的使能信号由组合逻辑块给出,该组合逻辑块读取引脚使能寄存器决定各个三态门的工作状况,并最终决定io的输出情况。
54.参照图3和实施例,对本发明装置的输出采样模块做进一步的说明。
55.触发信号设置寄存器组配置边沿检测块的工作模式,若使用与输出信号同步的采样模式,此处触发信号为一周期信号,边沿检测块直接输出给入时钟选择块,否则,触发信号为一脉冲信号,边沿检测块使用触发信号的边沿作为分频器的使能标志。分路器使用采样io配置寄存器组的值决定敏感信号,并将敏感信号输出至分频器。采样时钟使用采样时钟配置寄存器组完成自身采样率的配置,分频器将采样时钟的输出分频。若使用异步采样模式,分频器使用分路器的敏感信号作为同步标志,将结果输出至时钟选择块;若使用与输入同步的采样模式,分频器将分路器的敏感信号输出至时钟选择块。时钟选择块利用时钟选择器寄存器的结果决定锁存器的时钟信号。锁存器将分路器除敏感信号以外的信号锁存,并保存至采样ram中,同时,时钟选择块将时钟输出至寄存器,该寄存器在每个时钟周期内自增1,并将结果保存至运行状态寄存器。采样ram使用双端口口ram,允许写端口工作时,读端口输出ram的内容。
56.参照图4和实施例,对本发明的方法做进一步的详细说明。
57.步骤1,载入用户配置。
58.电源模块向fpga提供电源并调整fpga的区块电压;通过相应电源通道将选通的电源轨输入至fpga。
59.通信模块从上位机处读入用户的配置文件,并将其写入fpga的配置寄存器和ram中。
60.步骤2,向被测设备输入信号。
61.输入模拟模块读取波形ram中保存的数据,使用自身的采样时钟向被测设备输出。
62.输入模拟模块使用自身的采样时钟或者寄存器标志位产生一个触发信号。
63.所述的触发信号为使用时钟源的周期性信号或者是使用标志位产生的单次脉冲
信号。输入模拟模块通过选通时钟源的方式产生周期触发信号,通过使用寄存器标志位的方式产生单次脉冲信号,通过多路选择器决定最终输出的信号。
64.步骤3,采样被测设备的输出信号。
65.第1步,输出采样模块使用寄存器标志位选择采样模式。
66.若选择使用与输出信号同步的采样模式时,将选通触发信号作为时序电路时钟。
67.若选择使用与输入同步的采样模式时,将选通用户定义的时钟io波形信号的输入作为时序电路时钟,该io波形信号并不会被记录到采样ram中。
68.若选择使用异步采样模式时,使用本地锁相环的分频作为时钟信号,根据配置使用用户定义的敏感时钟io波形信号的边沿作为分频器的同步信号,该io波形信号将会作为一路通道被记录到采样ram中。
69.第2步,输出采样模块开始工作,将被测设备的io波形信号的输出采样并保存到采样ram中,并完成标志信号置位。
70.步骤4,对采样ram进行检测。
71.错误检测模块将预期ram的值与采样ram的值逐比特进行比较,若比较的结果相同,则进行下一个比特的比较,若比较的结果不同,则执行步骤5。
72.步骤5,对边沿进行统计。
73.分别从起始位置开始对采样ram和预期ram统计边沿,每遇到一个边沿,向相应的边沿计数器增加1,直至到达目前的位置。
74.步骤6,错误检测模块固定产生边沿的ram指针,对另一个ram进行搜索。
75.所述的搜索指的是,向前移动搜索指针,每遇到任意一个边沿时,将搜索边沿计数器的值自减1,直到找到一个与固定地址的ram的边沿方向相同的边沿或达到ram起始位置;向后移动搜索指针,每遇到任意一个边沿时,将搜索边沿计数器的值自增1,直到找到一个与固定地址的ram的边沿方向相同的边沿或达到ram的结束位置。
76.当向前搜索与向后搜索都完成后,执行步骤8。
77.步骤8,判断搜索指针边沿计数器的值与固定指针边沿计数器的值是否相等,若不等,将采样ram处的该比特错误标记为脉冲错误后执行步骤9;若相等,将采样ram处的该比特错误标记为时序错误后执行步骤10。
78.步骤9,处理脉冲错误。
79.若分别向前、向后搜索都无法使得搜索边沿计数器的值与固定边沿计数器的值相等,将该采样ram的比特的错误类型为错误脉冲或者毛刺。
80.将采样边沿计数器的值赋予预期边沿计数器,目的是为了之后能够忽略此错误,不对其他的边沿进行干扰。
81.采样ram的指针移动至下一个边沿,这是由于采样ram的该比特属于脉冲错误,因此到下一个边沿之前的值都没有比较的价值。
82.步骤10,处理时序错误。
83.若预期ram的指针的值大于采样ram的指针的值,则判定该比特的错误类型属于时序超前,将采样ram的指针与预期ram的指针之差作为偏移量。然后采样指针的值移动至与预期ram指针相同的位置,这是由于采样ram的该比特属于时序错误,需要将时序矫正后再进行下一个比特的比较。
84.若预期ram的指针的值小于采样ram的指针的值,则判定该比特的错误类型属于时序落后,将预期ram的指针与采样ram的指针之差作为偏移量。然后预期指针移动至与采样ram指针相同的位置,这是由于采样ram的该比特属于时序错误,需要将时序矫正后再进行下一个比特的比较。
85.步骤11,判断是否到达采样ram终点。
86.若未到达采样ram终点,则移动到下一个比特后执行步骤4,否则,执行步骤12。
87.步骤12,向用户报告结果。
88.错误检测模块处理完采样ram的所有比特后,通信模块从错误检测模块中读取记录下的内容,并发送给上位机。
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!