CN115827440A - 一种综合信号测试平台及测试方法 - Google Patents
一种综合信号测试平台及测试方法 Download PDFInfo
- Publication number
- CN115827440A CN115827440A CN202211461061.9A CN202211461061A CN115827440A CN 115827440 A CN115827440 A CN 115827440A CN 202211461061 A CN202211461061 A CN 202211461061A CN 115827440 A CN115827440 A CN 115827440A
- Authority
- CN
- China
- Prior art keywords
- data
- arm
- fifo
- fpga
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明涉及信号测试领域,尤其涉及一种用于FPGA程序测试的、基于ARM和FPGA的信号测试平台及相应的综合信号测试方法,通过在ARM端以多线程的方式生成随机原始数据发送给FPGA,在FPGA平台上经过待测试程序的处理并经过AWGN高斯白噪声信道,并将测试结果传回ARM端,实现大数据量的误帧率和误码率测试。同时,本发明通过ARM端和FPGA端的联合流量控制,保证在不丢失数据的情况下使系统以最大化的速率传输数据;且ARM端通过将原始数据发送和译码结果接收分为两个线程,可以大大减少ARM的空闲时间,提高整个测试系统的工作效率。
Description
技术领域
本发明涉及信号测试领域,尤其涉及一种用于FPGA程序测试的基于ARM与FPGA的综合信号测试平台及相应的综合信号测试方法。
背景技术
目前,对于FPGA程序的测试主要通过EDA仿真软件实现,其通过testbench设计测试用例或者测试数据作为某个程序的输入,观察输出的数据是否正常进行验证。现有技术的方法适用于数据量较小的情况。随着通信系统的复杂性越来越高,FPGA端的程序也随之变得复杂,因此需要大数据量(通常为TB级别的数据量)对相关程序进行测试,在测试数据量很大的情况下,在EDA软件中进行测试会占用大量的CPU资源,运算效率较低,时间成本较高。
发明内容
为了克服通过EDA仿真软件测试FPGA端程序的方法所致的问题(具体包括占用CPU资源较多、运算速度较慢、灵活性较差以及面对大数据量时效率较低等缺点),本发明提供了一种综合信号测试平台,其特征在于,该测试平台包括:
ARM,用于生成随机原始数据,并发送给FPGA;FPGA,用于执行被测试的FPGA程序,并进行误帧和/或误码计数,将计数结果传回ARM;所述的ARM根据计数结果过计算得到误帧率和/或误码率。
更优地,所述的FPGA包括AXI-DMA IP核和AXIS DATA GPIO IP核;所述的AXI-DMAIP核和AXIS DATA GPIO IP核通过AMBA总线实现ARM和FPGA之间的数据传输;所述的ARM和FPGA通过AXIS GPIO IP核进行外设信息的配置。
更优地,所述的FPGA还包括AXIS DATA FIFO IP核,用于ARM与FPGA之间和/或FPGA内部通信过程的流量控制。
更优地,所述的综合测试平台还包括上位机PC,所述的上位机PC通过UART总线对ARM端进行数据传输和参数配置。
更优地,所述的综合测试平台还包括存储装置,所述存储装置用于存储shell脚本和/或测试结果,其中,通过在shell脚本中预先配置测试帧数、信噪比参数,可以实现测试自动化。
本发明还提供了一种综合信号测试方法,其特征在于,该方法的步骤包括:步骤一,ARM根据外部设置的帧数生成原始测试数据,并按照一定帧格式进行组帧;步骤二,FPGA读取ARM端的原始测试数据后,由被测试的FPGA程序进行处理,得到并进行误帧和/或误码计数,其中,信道模型采用AWGN高斯白噪声信道;步骤三,ARM通过读取上述的误帧数和/或误码数,计算得到误帧率和/或误码率。
更优地,所述的ARM通过GPIO对FPGA进行参数配置,包括高斯白噪声信道的信噪比EbN0、和对数似然比LLR的噪声功率参数;所述的ARM端还通过GPIO和DMA接收来自FPGA端的程序测试结果。
更优地,所述的ARM原始数据发送和译码结果接收分为两个线程。
更优地,还包括ARM运行流量控制的步骤,所述的ARM通过读取AXIS DATA FIFO 0的Tx Data Count,保证FPGA端的输入数据始终不断,并且不会丢失数据,同时ARM端通过读取AXIS DATA FIFO 1的Rx Data Count,保证输出端的数据能够及时读出,使得测试平台能够完整无误地发送和接受数据。所述的ARM运行流量控制的步骤包括:S10-1)FPGA从ARM接收到的数据通过AXIS DATA FIFO 0后经过一系列的FPGA端待测试程序,送入AXIS DATAFIFO 1,并且通过另外一个DMA写入ARM内存;S10-2)ARM根据AXIS DATA FIFO 0的Tx DataCount决定是否使能DMA从ARM内存中读取特定帧数的数据,具体而言:在Tx Data Count低于特定阈值时,ARM使能DMA从ARM内存中读取特定帧数的数据;所述“特定阈值”和“特定帧数的数据”根据实际的AXIS DATA FIFO 0深度和数据处理速度进行调整,使在“从ARM检测到Tx Data Count低于特定阈值后,到使能DMA开始从ARM内存中读取数据”的时间内AXISDATA FIFO 0中始终有数据,同时使AXIS DATA FIFO 0中的剩余数据加上新写入的“特定帧数的数据”不会超过AXIS DATA FIFO 0的最大深度;S10-3)ARM根据AXIS DATA FIFO 1的RxData Count数量决定是否使能DMA将特定帧数的数据写入ARM内存,具体而言:在Rx DataCount高于特定阈值时,ARM使能DMA将特定帧数的数据写入内存;所述“特定阈值”和“特定帧数的数据”根据实际的AXIS DATA FIFO 1深度和数据传输速度进行调整,使在“从ARM检测到Rx Data Count高于特定阈值后,到使能DMA开始向ARM内存中写入数据”的时间内AXISDATA FIFO 1不会发生数据溢出,同时保证在取数的时候,AXIS DATA FIFO 1的深度不小于所取数据的量。
更优地,还包括FPGA运行流量控制的步骤,该步骤通过FIFO IP核进行模块间的流量控制,以及跨模块的流量控制,保证了数据连续并且不丢失。
所述的模块间的流量控制的步骤包括:步骤一,每一级模块只关注当前模块内部FIFO的状态;步骤二,若当前模块内部FIFO的状态为满,则拉低tready_out信号,若当前模块内部FIFO的状态不为满,则拉高tready_out信号;步骤三,若当前模块内部FIFO的状态为空,则拉低tvalid_in信号,若当前模块内部FIFO的状态不为空,则拉高tvalid_in信号。
所述的跨模块的流量控制的步骤包括:步骤一,当FPGA端内部的突发数据处理模块无法引出tready_in信号和tvalid_out信号时,采用单独的流量控制模块对突发数据处理模块的前一级模块和后一级模块的FIFO进行读写控制;步骤二,当前一级模块的FIFO有数据要发送给突发数据处理模块时,比较前一级模块的FIFO要发送的数据量与突发数据处理模块所需的连续输入的数据量:如果前一级模块的FIFO要发送的数据量大于突发数据处理模块所需的连续输入的数据量,则拉高data_available,如果前一级模块的FIFO要发送的数据量小于突发数据处理模块所需的连续输入的数据量,则拉低data_available;步骤三,通过prog_full_flag判断后一级模块的FIFO的剩余空间是否大于突发数据处理模块所要连续输出的数据量的两倍:若prog_full_flag为低,则后一级模块的FIFO的剩余空间大于突发数据处理模块所要连续输出的数据量的两倍,若prog_full_flag为高,则后一级模块的FIFO的剩余空间小于突发数据处理模块所要连续输出的数据量的两倍;步骤四,通过输出有效信号data_valid_in判断突发数据处理模块是否处于工作状态:若输出有效信号data_valid_in为高电平,则突发数据处理模块处于工作状态,若输出有效信号data_valid_in为低电平,则突发数据处理模块处于空闲状态;步骤五,当流量控制模块的data_available为高电平、prog_full_flag为低电平、data_valid_in为低电平三个条件同时满足时,拉高流量控制模块的tready_out信号,从而拉高前一级模块的FIFO的读使能,使前一级模块的数据输出。
具体而言,所述的ARM端具有如下的功能:
(1)ARM端运行Linux操作系统,共有两个线程:一个线程负责测试数据的生成(由ARM根据上位机PC或SD卡等外部设备所设置的帧数生成测试数据,并将其按照一定帧格式进行组帧),并将测试数据传给ARM端的内存,供后续FPGA端的DMA读取;另一个线程负责接收来自FPGA的测试结果,包括经过测试的数据、误码数、误帧数等(来自FPGA端的测试结果通过DMA和GPIO存至ARM端的内存供ARM读取),并可选择一定帧数的数据存至SD卡中;
(2)ARM端通过GPIO读取FPGA发送端和接收端的FIFO的Data count,进行ARM端的流量控制;
(3)ARM端通过GPIO配置FPGA端高斯白噪声信道程序的信噪比EbN0以及其他所需参数(比如当采用最大似然译码时所需的噪声功率)。具体而言,测试平台中的信道模型采用AWGN高斯白噪声信道,其中可调信噪比参数EbN0来自于ARM,通过GPIO传给FPGA;在进行最大似然译码时,用来计算对数似然比LLR的噪声功率参数来也自于ARM,通过GPIO传给FPGA,并且,噪声功率和EbN0是一一对应的。
所述的FPGA端具有如下的功能:
(1)FPGA端进行数据的处理(如调制、编码、经过高斯白噪声信道、解调、译码等),对原始数据和经过测试的数据进行比较,计算得到误码数和误帧数;
(2)FPGA端根据发送端和接收端的AXIS DATA FIFO IP核的读写的深度,进行模块间的流量控制和跨模块的流量控制。
所述的综合信号测试方法通过在ARM端生成随机原始数据发送给FPGA,在FPGA平台上进行处理(例如:调制、编码,经过AWGN高斯白噪声信道后,进行解调,组帧和译码),实现大数据量的误帧率和误码率测试,并将译码结果存储到SD卡,FPGA端进行误帧和误码计数,将结果传回ARM,通过计算得到误帧率FER、误码率BER等信息,并将其传回PC上位机,供测试人员绘制性能曲线。
在上述综合信号测试方法的执行过程中,ARM端运行流量控制程序,通过读取AXISDATA FIFO 0的Tx Data Count,保证FPGA端的输入数据始终不断,并且不会丢失数据,同时ARM端通过读取AXIS DATA FIFO 1的Rx Data Count,保证输出端的数据能够及时读出,使得测试平台能够完整无误地发送和接受数据。此外,当输入的原始数据量很大且被测试的FPGA程序处理延迟较高时,FPGA内部会形成数据的累计,为了防止溢出,FPGA端内部通过FIFO IP核进行模块间的流量控制,以及跨模块的流量控制,保证了数据连续并且不丢失,安全性较高。
与传统的信号测试平台、信号测试方法相比,本发明具有如下优点:
(1)灵活性强。其一,本发明的被测试的FPGA端程序可以实现不同编解码、不同调制解调的组合,例如,可以只测试编解码或者只测试调制解调,也可以通过级联的方式对整个系统进行联合测试,还可以进行编解码、调制解调以外的其他FPGA端程序的测试任务,测试内容可以包括BER、FER以及其他测试人员关心的待测量结果;其二,本发明的测试参数(如测试用的信噪比参数和测试帧数)可以通过PC端传输指令或运行SD卡中的shell脚本进行配置,并且可以即时修改;其三,测试数据的帧格式和数据内容可以通过ARM端程序对原始数据进行设置;其四,本发明的待测量结果可以按照测试人员需求进行选择并及时反馈至上位机;其五,测试结果可追溯,测试的数据和结果可以存到SD卡中,便于测试人员对待测程序进行分析。
(2)数据传输的速度快、效率高、安全性强。其一,本发明通过ARM端和FPGA端的联合流量控制,保证在不丢失数据的情况下使系统以最大化的速率传输数据;其二,ARM端通过将原始数据发送和译码结果接收分为两个线程,线程之间并行工作,互不干涉,通过操作系统对ARM的调度,可以大大减少ARM的空闲时间,提高整个测试系统的工作效率;其三,ARM端运行Linux系统,可以保证在进行GPIO数据读取、指令和参数配置等功能时,不干涉其他程序(如BER或FER计算、流量控制等程序)的运行,可以高效、稳定地实现对FPGA端、外部SD卡等外设的控制。
(3)工程实现简单,成本较低。通过在shell脚本中预先配置测试帧数、信噪比等参数,可以实现测试自动化,在面对大数据量的测试任务时,测试过程中无需人为干涉,同时测试过程中不占用PC端CPU资源,PC只有在配置参数和读取结果的时候需要。换言之,如果单纯进行测试并且保留测试结果至SD卡,且测试相关的输入在shell中已经预先配置好,那么整个测试过程只需要一个Zynq系列的FPGA开发板即可,甚至不需要用到PC端的CPU。
附图说明
图1是对本发明的基于Zynq系列FPGA+ARM的综合信号测试平台及相应方法的说明;
图2.1是对测试数据发送过程中的流量控制和数据传输的说明;
图2.2是对测试结果接收过程中的流量控制和数据传输的说明;
图3.1是对本发明中FPGA端内部测试程序的级联流量控制的说明;
图3.2是对本发明中采用单独的跨模块流量控制对突发数据处理模块前后的两个FIFO进行读写控制的说明;
图4.1是对将本发明用于LDPC编解码测试的说明;
图4.2是对将本发明用于LDPC编解码测试所得到的测试结果的说明;
图4.3是对将本发明用于数据流速控制模块输出测试的说明。
具体实施方式
现结合附图对本发明作进一步的描述。
考虑到FPGA具有逻辑资源丰富、并行运算能力强的特性,以及ARM端的可扩展编程特性,本发明可以采用兼具二者特性的Zynq平台进行测试。
Zynq系列FPGA内部包含双核Cortex ARM和7系列FPGA,其中:ARM端通过AMBA总线、FPGA端的AXI-DMA IP核和AXIS DATA FIFO IP核实现ARM端内存和FPGA端进行高速数据传输;ARM端和FPGA端通过AXI GPIO IP核进行外设信息的配置;在ARM端可以运行Linux操作系统,将每个任务可以划分成多个子任务,以多线程的形式进行工作,比如将数据写入、数据读出、文件管理、指令配置分为多个线程,提高工作效率。
图1给出了一种基于Zynq系列FPGA+ARM的综合信号测试平台及相应方法的系统框图,该图展示了综合信号测试平台各个模块的功能和关系,其中:
(1)PC端通过UART总线对Zynq测试平台进行GPIO的数据读取和参数配置。
(2)ARM端内部完成原始测试数据的生成并写入ARM端的内存,读取ARM中内存里的测试结果,对SD卡进行读写控制,运行SD卡内部的Linux系统以及内部的Shell脚本,读取和配置连接FPGA端的GPIO。所述Shell脚本中的参数可以以数组的形式进行预先配置,而不用通过上位机逐个配置,这样在面对大数据量测试时直接运行脚本即可,实现测试的自动化,提高效率。
(3)FPGA端通过DMA IP核读取ARM端的内存,接收下来的数据通过AXIS DATA FIFOIP核后经过一系列的FPGA端待测试程序,送入AXIS DATA FIFO IP核,并且通过另外一个DMA IP核写入ARM内存,FPGA通过GPIO接收来自ARM的数据和向ARM发送数据。ARM和FPGA之间通过AMBA总线进行数据传输。其中,待测程序可以为编解码、调制、解调等程序。待测量结果可以为BER、FER或其他测试人员关注的信号,该信号可以通过GPIO或者DMA传给ARM端,进而在PC端或者SD卡中进行结果的保存。
图2.1针对数据发送过程中的流量控制和数据传输进行了简要的说明。发送端数据生成占用一个线程,按照预先的帧格式存在ARM内存中,然后ARM根据发端的AXISDATAFIFO 0的Tx Data Count数量进行流量控制,每次发送的帧数预先通过PC进行设置,在Tx Data Count低于阈值时则一次性写入一定帧数的数据。对于阈值的选择。该阈值可根据实际的AXIS DATA FIFO 0深度进行调整,保证在ARM检测到Tx Data Count低于阈值后,到发送使能开始DMA取数的时间内,AXIS DATA FIFO 0始终有数据。同时,还要保证这段时间的AXIS DATA FIFO 0中的剩余数据加上新写入的一定帧数的数据不会超过AXIS DATAFIFO0的最大深度。
图2.2针对测试结果数据接收过程中的流量控制和数据传输进行了简要的说明。接收端数据生成占用一个线程,ARM端在检测到收端的AXIS DATA FIFO 1的Rx Data Count大于一定阈值时,使能DMA将AXIS DATA FIFO 1内的数据按照一定帧数写入ARM端内存中。该帧数和阈值可以根据实际传输速度以及AXIS DATA FIFO 1深度进行调整。对于阈值的选择,保证在ARM端接收到Rx Data Count后,到开始使能DMA的时间,AXIS DATA FIFO 1不会溢出,同时需要保证在取数的时候,AXIS DATA FIFO 1中的深度大于等于取的数量。
图3.1是本发明中FPGA端内部测试程序的为了防止溢出以及最大化吞吐率而采用的级联流量控制。每一级模块只关注当前模块和模块内部FIFO是否是满的状态或者半满的状态,若满则拉低tready_out信号,否则拉高。同时若FIFO为空,则拉低tvalid_in信号,否则拉高。图中所示,data_in表示数据,data_valid_in表示数据有效使能,在数据到来时拉高,rst和clk分别为复位和时钟信号。
图3.2是本发明中FPGA端内部当某个突发数据处理模块无法引出tready_in信号和tvalid_out信号时,这时采用单独的跨模块流量控制,即对前后的两个FIFO进行读写控制。具体而言,当前一级模块的FIFO有数据要发送给突发数据处理模块时,比较前一级模块的FIFO要发送的数据量与突发数据处理模块所需的连续输入的数据量:如果前一级模块的FIFO要发送的数据量大于突发数据处理模块所需的连续输入的数据量,则拉高data_available,如果前一级模块的FIFO要发送的数据量小于突发数据处理模块所需的连续输入的数据量,则拉低data_available;
通过prog_full_flag判断后一级模块的FIFO的剩余空间是否大于突发数据处理模块所要连续输出的数据量的两倍:若prog_full_flag为低电平,则后一级模块的FIFO的剩余空间大于突发数据处理模块所要连续输出的数据量的两倍,若prog_full_flag为高电平,则后一级模块的FIFO的剩余空间小于突发数据处理模块所要连续输出的数据量的两倍;
通过输出有效信号data_valid_in判断突发数据处理模块是否处于工作状态:若输出有效信号data_valid_in为高电平,则突发数据处理模块处于工作状态,若输出有效信号data_valid_in为低电平,则突发数据处理模块处于空闲状态;
当流量控制模块的data_available为高电平、prog_full_flag为低电平、data_valid_in为低电平三个条件同时满足时,拉高流量控制模块的tready_out信号,从而拉高前一级模块的FIFO的读使能,使前一级模块的数据输出。
综上所述,基于Zynq的综合信号测试平台通过ARM端操作系统Linux上的多线程工作、ARM端的流量控制和FPGA端的流量控制,使得系统可以最大效率的进行工作,同时由于shell脚本的存在,该平台可以在大数据量下自动工作,减小了人为干涉。外部参数可以灵活配置,测试程序可以包括编解码、调制、解调等内容,提高了系统的灵活性,测试人员可以通过小部分修改参数的方式进行新的编码和调制组合的测试,系统的可重复性很强。此外,基于Zynq的综合信号测试平台采用了高速并行的FPGA和ARM,无需单独的测试设备,减小了测试成本,相比于传统的基于EDA软件的测试方案,减小了CPU的占用,提高了效率。
以下通过两个测试应用实施例说明:本发明除了可以对调制解调程序进行测试以外,也可以对其他FPGA程序进行测试,具有参数配置灵活的优点。具体测试平台为含有Zynq系列FPGA的AX7350开发板。
(1)LDPC编解码测试
图4.1是将本发明用于LDPC编解码测试的系统框图,具体而言,首先在ARM端生成一定帧格式的数据,送入FPGA进行7/8码率的LDPC编码模块,经过BPSK调制后,送入AWGN高斯白噪声信道,经过LLR计算模块得到对数似然比,其中信道的信噪比EbN0和计算对数似然比所需的噪声功率对应的k值如下表所示。由于编码码率为7/8,并且调制方式为BPSK,因此送入AWGN模块的EbN0为实际待测试信噪比EbN0_real减2.42dB。其中EbN0为十进制,需要转为二进制定点数进行输入,对应的k为二进制16bit输入:
最后,将数据送入LDPC译码模块得到相关误帧数以及译码结果,译码结果传回ARM,并存入SD卡中,在PC机上显示每个信噪比下的误帧数(如图4.2所示)。当数据发送随机数时,链路下的平均数据速率为49.05Mbps。
(2)数据流速控制模块输出测试
图4.3是将本发明用于数据流速控制模块输出测试的系统框图,具体而言,由FPGA端通过流速控制模块对数据传输速度进行任意比例的控制,其中主要通过PC配置ARM端参数Period进行控制,Period通过GPIO端口传给FPGA内部的Flow Switch模块,改变数据传输有效电平的持续时间,达到控制链路传输速率的效果,最后ARM端对数据进行存储和比对。同时,为了整个系统的平稳运行,ARM端需要进行流量控制,此时FPGA端不需要进行模块间的流量控制。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (13)
1.一种综合信号测试平台,其特征在于,所述的综合信号测试平台包括:
ARM,用于生成随机原始数据,并发送给FPGA;
FPGA,用于执行被测试的FPGA程序,并进行误帧和/或误码计数,将计数结果传回ARM;
所述的ARM根据计数结果过计算得到误帧率和/或误码率。
2.根据权利要求1所述的综合信号测试平台,其特征在于,
所述的FPGA包括AXI-DMA IP核和AXIS DATA GPIO IP核;
所述的AXI-DMA IP核和AXIS DATA GPIO IP核通过AMBA总线实现ARM和FPGA之间的数据传输;
所述的ARM和FPGA通过AXIS GPIO IP核进行外设信息的配置。
3.根据权利要求1所述的综合测试平台,其特征在于,所述的FPGA还包括AXIS DATAFIFO IP核,用于ARM与FPGA之间和/或FPGA内部通信过程的流量控制。
4.根据权利要求1所述的综合测试平台,其特征在于,所述的综合测试平台还包括上位机PC,所述的上位机PC通过UART总线对ARM端进行数据传输和参数配置。
5.根据权利要求1所述的综合测试平台,其特征在于,所述的综合测试平台还包括存储装置,所述存储装置用于存储shell脚本和/或测试结果,其中,通过在shell脚本中预先配置测试帧数、信噪比参数,可以实现测试自动化。
6.一种综合信号测试方法,其特征在于,所述的综合信号测试方法的步骤包括:
S6-1)ARM根据外部设置的帧数生成原始测试数据,并按照一定帧格式进行组帧;
S6-2)FPGA读取ARM端的原始测试数据后,由被测试的FPGA程序进行处理,得到并进行误帧和/或误码计数,其中,信道模型采用AWGN高斯白噪声信道;
S6-3)ARM通过读取上述的误帧数和/或误码数,计算得到误帧率和/或误码率。
7.根据权利要求6所述的综合信号测试方法,其特征在于,
所述的ARM通过GPIO对FPGA进行参数配置,包括高斯白噪声信道的信噪比EbN0、和对数似然比LLR的噪声功率参数;
所述的ARM端还通过GPIO和DMA接收来自FPGA端的程序测试结果。
8.根据权利要求6所述的综合信号测试方法,其特征在于,所述的ARM原始数据发送和译码结果接收分为两个线程。
9.根据权利要求6所述的综合信号测试方法,其特征在于,还包括ARM运行流量控制的步骤,所述的ARM通过读取AXIS DATA FIFO 0的Tx Data Count,保证FPGA端的输入数据始终不断,并且不会丢失数据,同时ARM端通过读取AXIS DATA FIFO 1的Rx Data Count,保证输出端的数据能够及时读出,使得测试平台能够完整无误地发送和接受数据。
10.根据权利要求9所述的综合信号测试方法,其特征在于,所述的ARM运行流量控制的步骤包括:
S10-1)FPGA从ARM接收到的数据通过AXIS DATA FIFO 0后经过一系列的FPGA端待测试程序,送入AXIS DATA FIFO 1,并且通过另外一个DMA写入ARM内存;
S10-2)ARM根据AXIS DATA FIFO 0的Tx Data Count决定是否使能DMA从ARM内存中读取特定帧数的数据,具体而言:
在Tx Data Count低于特定阈值时,ARM使能DMA从ARM内存中读取特定帧数的数据;
所述“特定阈值”和“特定帧数的数据”根据实际的AXIS DATA FIFO 0深度和数据处理速度进行调整,使在“从ARM检测到Tx Data Count低于特定阈值后,到使能DMA开始从ARM内存中读取数据”的时间内AXIS DATA FIFO 0中始终有数据,同时使AXIS DATA FIFO 0中的剩余数据加上新写入的“特定帧数的数据”不会超过AXIS DATA FIFO 0的最大深度;
S10-3)ARM根据AXIS DATA FIFO 1的Rx Data Count数量决定是否使能DMA将特定帧数的数据写入ARM内存,具体而言:
在Rx Data Count高于特定阈值时,ARM使能DMA将特定帧数的数据写入内存;
所述“特定阈值”和“特定帧数的数据”根据实际的AXIS DATA FIFO 1深度和数据传输速度进行调整,使在“从ARM检测到Rx Data Count高于特定阈值后,到使能DMA开始向ARM内存中写入数据”的时间内AXIS DATA FIFO 1不会发生数据溢出,同时保证在取数的时候,AXIS DATA FIFO 1的深度不小于所取数据的量。
11.根据权利要求6所述的综合信号测试方法,其特征在于,还包括FPGA运行流量控制的步骤,该步骤通过FIFO IP核进行模块间的流量控制,以及跨模块的流量控制,保证了数据连续并且不丢失。
12.根据权利要求11所述的综合信号测试方法,其特征在于,所述的模块间的流量控制的步骤包括:
S12-1)每一级模块只关注当前模块内部FIFO的状态;
S12-2)若当前模块内部FIFO的状态为满,则拉低tready_out信号,若当前模块内部FIFO的状态不为满,则拉高tready_out信号;
S12-3)若当前模块内部FIFO的状态为空,则拉低tvalid_in信号,若当前模块内部FIFO的状态不为空,则拉高tvalid_in信号。
13.根据权利要求11所述的综合信号测试方法,其特征在于,所述的跨模块的流量控制的步骤包括:
S13-1)当FPGA端内部的突发数据处理模块无法引出tready_in信号和tvalid_out信号时,采用单独的流量控制模块对突发数据处理模块的前一级模块和后一级模块的FIFO进行读写控制;
S13-2)当前一级模块的FIFO有数据要发送给突发数据处理模块时,比较前一级模块的FIFO要发送的数据量与突发数据处理模块所需的连续输入的数据量:
若前一级模块的FIFO要发送的数据量大于突发数据处理模块所需的连续输入的数据量,则拉高data_available,
若前一级模块的FIFO要发送的数据量小于突发数据处理模块所需的连续输入的数据量,则拉低data_available;
S13-3)通过prog_full_flag判断后一级模块的FIFO的剩余空间是否大于突发数据处理模块所要连续输出的数据量的两倍:
若prog_full_flag为低电平,则后一级模块的FIFO的剩余空间大于突发数据处理模块所要连续输出的数据量的两倍,
若prog_full_flag为高电平,则后一级模块的FIFO的剩余空间小于突发数据处理模块所要连续输出的数据量的两倍;
S13-4)通过输出有效信号data_valid_in判断突发数据处理模块是否处于工作状态:
若输出有效信号data_valid_in为高电平,则突发数据处理模块处于工作状态,
若输出有效信号data_valid_in为低电平,则突发数据处理模块处于空闲状态;
S13-5)当流量控制模块的data_available为高电平、prog_full_flag为低电平、data_valid_in为低电平三个条件同时满足时,拉高流量控制模块的tready_out信号,从而拉高前一级模块的FIFO的读使能,使前一级模块的数据输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211461061.9A CN115827440B (zh) | 2022-11-16 | 2022-11-16 | 一种综合信号测试平台及测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211461061.9A CN115827440B (zh) | 2022-11-16 | 2022-11-16 | 一种综合信号测试平台及测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115827440A true CN115827440A (zh) | 2023-03-21 |
CN115827440B CN115827440B (zh) | 2023-07-14 |
Family
ID=85529964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211461061.9A Active CN115827440B (zh) | 2022-11-16 | 2022-11-16 | 一种综合信号测试平台及测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827440B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107196695A (zh) * | 2017-04-07 | 2017-09-22 | 西安电子科技大学 | 基于Zynq的卫星星间链路测试系统 |
-
2022
- 2022-11-16 CN CN202211461061.9A patent/CN115827440B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107196695A (zh) * | 2017-04-07 | 2017-09-22 | 西安电子科技大学 | 基于Zynq的卫星星间链路测试系统 |
Non-Patent Citations (1)
Title |
---|
李栋: "嵌入式WEB架构信道编译码性能实物验证系统设计", CNKI优秀硕士学位论文全文库, no. 8, pages 8 * |
Also Published As
Publication number | Publication date |
---|---|
CN115827440B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8825922B2 (en) | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information | |
US7930162B1 (en) | Accelerating hardware co-simulation using dynamic replay on first-in-first-out-driven command processor | |
US9330031B2 (en) | System and method for calibration of serial links using a serial-to-parallel loopback | |
CN112564882B (zh) | 一种基于ahb总线的单线数字通讯接口 | |
TW201342037A (zh) | 用於產生資料處理設備之追蹤串流的技術 | |
CN112118144A (zh) | 一种以太网数据帧输出方法及系统 | |
US20020116663A1 (en) | Data processing system with on-chip FIFO for storing debug information and method therefor | |
CN115827440B (zh) | 一种综合信号测试平台及测试方法 | |
CN113946480A (zh) | 一种i2c总线的检测装置和方法 | |
WO2019022956A1 (en) | LOGIC ANALYZER FOR INTEGRATED CIRCUITS | |
CN214540759U (zh) | Fpga芯片及电子系统 | |
CN114660383A (zh) | 一种通用载荷管理器地检测试板卡 | |
CN114610549A (zh) | 一种串口闪存芯片测试系统和测试方法 | |
CN115237349A (zh) | 数据读写控制方法、控制装置、计算机存储介质和电子设备 | |
CN114416019A (zh) | 一种数据管理方法及系统 | |
US9035957B1 (en) | Pipeline debug statistics system and method | |
CN113190386A (zh) | 芯片及其使用方法 | |
CN1284064C (zh) | 一种通用fifo接口测试设备和系统 | |
CN112948268A (zh) | 一种基于inca的ecu软件测试及标定系统 | |
CN110442548B (zh) | 片上系统及其接口数据处理方法和装置 | |
CN106650006B (zh) | 可编程逻辑器件的调试方法、系统及电子设计自动化终端 | |
CN206258856U (zh) | 基于自适应波特率的单端口通信处理电路 | |
CN110971342A (zh) | Mipi信号编码方法、装置、移动设备、及系统 | |
CN116132666B (zh) | 一种基于fpga的视频图像处理方法及系统 | |
CN219890472U (zh) | 一种针对卫星载荷数据源成像模拟装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |