一种多FPGA多通道采集系统的三维映射同步方法与流程

文档序号:16209644发布日期:2018-12-08 07:34阅读:166来源:国知局
一种多FPGA多通道采集系统的三维映射同步方法与流程

本发明属于波形三维映射同步技术领域,更为具体地讲,涉及一种多fpga多通道采集系统的三维映射同步方法。

背景技术

同步是多通道采集系统中十分重要的指标,它体现了不同通道之间的一致程度,即同一信号输入不同通道后,经过采样存储显示过程后,是否还保持一致。这种指标在测试系统中尤为重要,在测量单一通道内信号本身的参数的同时,需要对不同通道之间信号的相关度参数进行测量。

采样率、带宽作为采集系统的传统指标,在过去的几十年得到了高速的发展。传统采集系统的采集-存储-显示的串行结构存在着采集死区时间,即后端的存储以及显示过程中,无法同时对波形采样,波形捕获率十分低下。随着采样率,带宽指标的提高,对采集系统的存储提出了更高的要求,为了尽可能多的捕获采集数据减少死区时间,存储容量需要尽可能的大,然而出于成本等原因的考虑,急需一种并行的处理结构来弥补串行结构的不足,三维映射技术应运而生。三维映射技术将多幅波形累加后显示,三维映射将波形的量化值统计后转化概率信息,即将多幅图像叠加显示,根据同一位置上采样点出现的概率来显示不同的灰度等级。

fpga在采集系统中的应用提高了采集系统并行处理的能力,大幅度提高了采集系统的性能。因此adc+fpga的框架在采集系统中得以广泛的应用。然而利用fpga实现波形的三维映射为不同通道之间的采集同步带来了新的问题。三维映射的实质是将采集的波形数据转换为具有灰度的图像形式,在采集数据转换到图像过程中,一旦发生不同步的现象,便会导致通道之间波形的相对位置发生改变,使得原本已经同步的波形采集数据转换成了通道之间不同步的灰度图像,引入新的误差,影响采集波形的观测。因此单片fpga中三维映射的同步以及多片fpga之间三维映射的同步都急需解决。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种多fpga多通道采集系统的三维映射同步方法,实现多fpga架构下的多通道采集系统波形映射的同步。

为实现上述发明目的,本发明一种多fpga多通道采集系统的三维映射同步方法,其特征在于,包括以下步骤:

(1)、多通道间的矢量映射同步

(1.1)、在矢量映射模式下,将第j片映射fpga的每一个通道的采样数据逐一映射到每一列三维数据库,并在每一个采集通道每一列的映射完成后产生一个完成标志vector_dpx_overi,j,其中,i=1,2,…,m,m为第j片映射fpga中的采集通道数,j=1,2,…,m,m为fpga片数;

(1.2)、当第j片映射fpga中所有通道的采集数据均完成当前列的映射后,生成第j片fpga的当前列完成映射标志信号vector_dpx_all_overj,再将vector_dpx_all_overj作为第j片fpga中下一列矢量映射开始使能信号;

(1.3)、当第j片映射fpga中所有通道的采集数据均完成映射后,并产生矢量映射完成信号dpx_all_overj;

(1.4)、同理,按照步骤(1.1)-(1.3)所述方法,并行处理剩余映射fpga,产生各自的矢量映射完成信号;

(2)、fpga间三维映射状态机的同步

(2.1)、通过fpga之间的互联线将每片映射fpga产生的dpx_all_overj信号发送至主控fpga中进行相与操作,产生all_channel_dpx_over信号;

(2.2)、主控fpga再将all_channel_dpx_over信号作为标志信号发送给各映射fpga,并作为各映射fpga中映射状态机在time_up状态下的跳转条件,all_channel_dpx_over信号拉高后,各映射fpga中映射状态机将由time_up状态跳转至ram_rd状态,各映射fpga开始向后端的显示fpga传输三维数据库;

(3)、不同fpga间三维数据库的传输、显示同步

(3.1)、显示fpga中采用异步fifo接收各映射fpga传输三维数据库,其中,当第j片映射fpga开始传输三维数据库时,开启第j片映射fpga的三维数据库传输使能信号ram_rd_enj,并将其发送给显示fpga作为其对应的异步fifo(fifo_asyncj)的写使能,同时,将第j片映射fpga的三维数据库读时钟以差分线的形式传输至显示fpga中作为fifo_asyncj的写时钟;

(3.2)、显示fpga中采用异步fifo接收各映射fpga传输三维数据库,;当所有的映射fpga都开始将三维数据库输入至显示fpga,即所有异步fifo均非空后,开启async_fifo_rd_en信号,并作为全部异步fifo的读使能,将异步fifo读出的数据转换为颜色信息,再通过乒乓操作方式逐一将颜色信息写入两片显存sdram中,实现三维数据库的传输、显示同步。

本发明的发明目的是这样实现的:

本发明一种多fpga多通道采集系统的三维映射同步方法,通过同时开启每一列矢量映射过程来实现单片映射fpga内不同通道之间矢量映射的同步,待所有映射fpga均完成三维映射后,主控fpga发送all_channel_dpx_over信号作为各个映射fpga状态机跳转的条件,实现映射fpga状态机跳转的同步。同时利用异步fifo作为显示fpga接收三维数据库的载体,解决了跨时钟域数据接收的问题;同时本方法可以很好地实现多fpga多通道架构下的采集系统映射同步。

同时,本发明一种多fpga多通道采集系统的三维映射同步方法还具有以下有益效果:

(1)、

所有的同步单元均在fpga内部实现,无需增加额外的硬件,降低系统的开发成本。

(2)、利用fpga内部的异步fifo硬件资源,可以很好地解决跨时钟域数据接收的问题,降低了系统的研发难度。

附图说明

图1是本发明一种多fpga多通道采集系统的三维映射同步方法流程图;

图2是单幅三维映射示意图;

图3是状态机跳变导致的映射不同步示意图;

图4是维映射数据库传输导致的映射不同步示意图;

图5是矢量映射列之间的同步时序图;

图6是三维映射状态机同步结构图;

图7是三维数据库传数同步示意图;

图8是三维映射数据库传输同步示意图;

图9是两片sdram切换导致的映射不同步示意图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

实施例

图1是本发明一种多fpga多通道采集系统的三维映射同步方法流程图。

三维映射不同步主要包括三种不同步:1、通道间映射导致的映射不同步。2、fpga之间的状态机跳变导致的映射不同步。3、三维数据库传数导致的映射不同步。

下面我们针对这三种不同步进行详细说明。具体为:

s1、通道间映射导致的映射不同步

三维映射包括两种,一种为点映射,一种为矢量映射。

对于点映射而言,如图2所示,采集缓存区内相邻的n个采样点为一组数据(l1,l2,l3),在一组数据中筛选出最大值与最小值,将其幅度量化信息转换为三维映射数据库的地址,将该地址的数据读出后加一回写,即将水平方向多个点压缩在一列上,完成该列的映射。因此,点映射时只需将该列采样值的最大值与最小值两个采样点映射至数据库即可,每一列仅需要两个时钟周期即可以完成映射,列与列之间不存在映射时间上的偏差。

而矢量映射在寻找到该列采样值最大值与最小值后,需要将两个采样值之间的所有采样点进行连线处理,即对最大值与最小值之间的地址同样进行加一回写操作,因此两个采样点之间的矢量连线需要多个时钟周期才能完成,故同通道不同列的连线时间可能不一致,不同的通道同一列的采样点与采样点之间所需要的连线时间也可能不一致。如图2所示,at-1max和at-1min之间有4个采样点,而at+1max和at+1min之间有3个采样点,连线分别需要四个时钟和三个时钟,即矢量映射的每一列所需要的时间存在偏差。

根据上述分析,当使用同一fpga接收多个通道的采样数据时,如果不对多个通道之间矢量映射做同步处理,就会出现通道间映射时间不一致的问题,此为通道间映射不同步。

在本实施例中,主要针对多通道间的矢量映射同步问题进行展开说明。

设系统共有m片映射fpga,每片映射fpga共计m个采集通道,那么,多通道间的矢量映射同步的过程需要满足:

s1.1、在矢量映射模式下,将第j片映射fpga的每一个通道的采样数据逐一映射到每一列三维数据库,并在每一个采集通道每一列的映射完成后产生一个完成标志vector_dpx_overi,j,其中,i=1,2,…,m,m为第j片映射fpga中的采集通道数,j=1,2,…,m,m为fpga片数;

s1.2、当第j片映射fpga中所有通道的采集数据均完成当前列的映射后,生成第j片fpga的当前列完成映射标志信号vector_dpx_all_overj,再将vector_dpx_all_overj作为第j片fpga中下一列矢量映射开始使能信号;

s1.3、当第j片映射fpga中所有通道的采集数据均完成映射后,并产生矢量映射完成信号dpx_all_overj;

s1.4、同理,按照步骤s1.1-s1.3所述方法,并行处理剩余映射fpga,产生各自的矢量映射完成信号;

s2、fpga之间的状态机跳变导致的映射不同步

采集系统中的三维映射往往需要按照一定的顺序进行,即串行顺序结构,而fpga作为并行处理的芯片,通常需要引入状态机来实现串行顺序结构。

对于多fpga系统而言,fpga之间的状态机跳转相互独立,跳转条件产生时间的不一致将导致状态机的不同步,此为fpga之间的状态机跳变导致的映射不同步。

如图3所示,vector_dpx_all_over1和vector_dpx_all_over2是映射结束的信号,statemachine1和statemachine2是两片fpga中各自的映射状态。图3中,vector_dpx_all_over1和vector_dpx_all_over2两个信号具有一个时钟的相位差,就导致了两片fpga在状态机跳转时发生了不同步的现象,即fpga1首先开始导出三维数据库,而fpga2较fpga1延迟一个时钟周期才开始导出三维数据库,这样便会导致在后端处理时两片fpga的三维数据库发生了错位的现象,产生了映射的不同步。

在本实施例中,fpga间三维映射状态机的同步的具体过程为:

s2.1、通过fpga之间的互联线将每片映射fpga产生的dpx_all_overj信号发送至主控fpga中进行相与操作,产生all_channel_dpx_over信号;

s2.2、主控fpga再将all_channel_dpx_over信号作为标志信号发送给各映射fpga,并作为各映射fpga中映射状态机在time_up状态下的跳转条件,all_channel_dpx_over信号拉高后,各映射fpga中映射状态机将由time_up状态跳转至ram_rd状态,各映射fpga开始向后端的显示fpga传输三维数据库;

s3、三维数据库传数导致的映射不同步

在采集数据经过三维映射后,通常需要对映射数据库进行送显,将映射的结果显示在显示屏上,而三维数据库中所存储的仅仅是采集波形的概率信息,在显示前还需要将概率信息转换成不同灰度的颜色信息,因此往往需要另外一片fpga接收前端采集部分多片fpga的映射数据并转换为颜色信息。

此时便涉及到了两个问题:

一是将多片fpga上的数据接收到一片fpga上,涉及到了跨时钟域数据接收;

二是由于pcb布线的限制,不能保证每一片映射fpga到接收数据的fpga的数据线均等长,而非等长线将会导致信号在pcb上的传输时延不一致。三维数据库传输导致的不同步问题如图4所示。

在图4中,由于跨时钟域数据接收以及pcb布线等原因导,导致后端fpga在接收前端已经同步的映射fpga的三维数据库的传输使能信号ram_rd_en1和ram_rd_en2产生了相位差,图中使用ram_rd_en1作为显存的写使能以及地址自加使能,便会导致显存最终接收到第一片fpga的数据是{1,2,3,….},而显存接收到第二片fpga的数据是{0,0,1,2,3,…},产生了数据接收的错误。其中sdram_data1和sdram_data2分别代表fpga1和fpga2导出的三维数据库数据。

因此,如何保证每一片fpga的三维数据库数据在导出时与显存的地址具有固定的对应关系,即显存的首地址与三维数据库的第一个数据是始终对齐的,是三维数据库数据接收的难点所在。

本实施例中,同步方法主要是利用与门以及主从fpga结构实现矢量映射每一列映射的同步以及每次映射完成后多fpga状态机的同步,根据上述分析的波形送显不同步的问题,提出一种利用异步fifo接收不同fpga数据的方法,以实现三维映射波形送显同步。下面我们对不同fpga间三维数据库的传输、显示同步的具体方法进行说明。

s3.1、显示fpga中采用异步fifo接收各映射fpga传输三维数据库,其中,异步fifo为fifo_asyncj,当第j片映射fpga开始传输三维数据库时,开启第j片映射fpga的三维数据库传输使能信号ram_rd_enj,并将其发送给显示fpga作为其对应的异步fifo(fifo_asyncj)的写使能,同时,将第j片映射fpga的三维数据库读时钟以差分线的形式传输至显示fpga中作为fifo_asyncj的写时钟;

s3.2、显示fpga中采用异步fifo接收各映射fpga传输三维数据库;当所有的映射fpga都开始将三维数据库输入至显示fpga,即所有的异步fifo均非空后,开启async_fifo_rd_en信号,并作为全部异步fifo的读使能,将异步fifo读出的数据转换为颜色信息,再通过乒乓操作方式逐一将颜色信息写入两片显存sdram中,实现三维数据库的传输、显示同步。

其中,采用乒乓操作方式将颜色信息写入两片显存sdram的过程为:

1)、异步fifo的读使能async_fifo_rd_en信号作为第一片显存sdram的写使能信号以及写地址自加使能信号,将异步fifo读出的颜色信息写入第一片显存sdram中,第一片显存sdram的写地址自加至l-1后,将第一片显存sdram的地址清零,同时关闭第一片显存sdram的写使能,开启第一片sdram的读使能,将第一片显存sdram中的颜色信息送往显示屏显示,其中,l为三维数据库大小;

2)、将异步fifo读使能async_fifo_rd_en信号切换至第二片显存sdram,并作为第二片显存sdram的写使能信号以及写地址自加使能信号,开始第二片显存sdram的颜色信息的写入,直至第二片显存sdram的写地址自加至l-1,将第二片显存sdram地址清零,关闭第二片显存sdram的写使能,开启第二片sdram的读使能,将第二片显存sdram中的颜色信息送往显示屏显示;

3)、两片显存sdram交替使用,完成三维数据库接收操作。

图5是矢量映射列之间的同步时序图;

如图5所示,在矢量映射模式下,每一个通道每一列映射结束后都会产生一个采集通道映射完成信号(vector_dpx_overx),其中x为通道序号,当所有的vector_dpx_overx均为高电平,即一片fpga内部所有的通道均完成该列映射时,产生vector_dpx_all_over信号,作为下一列映射开始的使能信号,通过这种方式便保证每一列同时开始矢量映射。

图6是三维映射状态机同步结构图;

如图6所示,当一片映射fpga的所有通道所有列均完成映射后,产生一个dpx_all_over信号,状态机进入time_up等待,通过fpga互联线将各个映射fpga的dpx_all_over信号发送至主控fpga中进行相与操作,产生all_channel_dpx_over信号后再发送给各个从fpga,作为time_up跳转的条件。从而实现了多片fpga三维映射状态机跳转的同步。

图7是三维数据库传数同步示意图。

异步fifo广泛应用在跨时钟域接收领域,本实施例采用异步fifo接收不同fpga的数据。异步fifo的读写时钟(wr_clk,rd_clk)以及读写使能(wr_en,rd_en)可以来自不同的时钟域,用户仅需要控制异步fifo的读写使能以及读写时钟便可以很好的实现跨时钟域数据的接收,避免了亚稳态的产生。状态位full,empty,valid分别是fifo满标志,fifo空标志以及读出数据有效信号。

在本实施例中,当三维映射状态机进入三维映射数据库传输状态ram_rd时,映射fpga开始向显示fpga传输三维数据库数据,开启传数使能ram_rd_en发送给显示fpga作为异步fifo的写使能,并将三维映射数据库读时钟经差分对传输至显示fpga作为异步fifo的写时钟。

如图7所示,以两片映射fpga为例,显示fpga中异步fifo(每一个通道对应一个数据接收fifo)非空后,即所有的通道都开始送显后,开启fifo的读使能,同时将fifo的读使能作为数据送显地址计数器的计数使能,数据送显的地址自加,时序图如图8所示。使用这种方法,无论是否同时开始导出三维数据库数据,读出到颜色转换模块的三维数据库数据均是同步的,而且显存的首地址和三维数据库首数据是对齐的,避免了首地址与首数据错位的现象,实现了三维数据库传输的同步。

为了提高系统的并行处理能力,采集系统往往在后端显示及处理模块采用乒乓操作,即挂载两片sdram作为系统显示的缓存,在写第二片sdram的同时将第一片sdram的数据读出至显示屏,通过这种方式减少采集系统的死区时间。采用乒乓操作的采集系统在数据接收时就需要接收两片sdram的三维数据库数据。

使用两片sdram接收三维数据库数据,在两片sdram读写状态切换时同样会出现同步的问题。如图9所示,fpgax_rd_ramy表示第x片fpga将三维数据库传输至第y片sdram的使能信号。其中第一片sdram未完成接收的时候就对第二片sdram进行写操作,fpga1_rd_ram2已经拉高,即fpga1开始讲三维数据库传输至第二片sdram,而fpga2还未完成第一片sdram的三维数据传输,就会导致fpga2本应写入第一片sdram的尾部地址的数据写入第二片sdram的起始地址,导致了两个sdram存储显示数据起始位置的不一致,产生了波形显示的晃动,影响了采集波形的观测。

本实施例在上述同步方案的基础上,根据三维数据库的大小来对地址进行判断,来确定当前写入数据的sdram序号。例如某采集系统三维数据库大小为a*b。那么在数据接收部分,映射fpga开始传数后,开启第一片sdram的写使能,关闭第二片的sdram的写使能,显存地址自加至a*b-1后,地址清零,关闭第一片sdram的写使能,开启第二片sdram的写使能,开始第二片sdram三维数据库的接收。直至第二片三维数据库接收的地址到a*b-1,将地址清零。完成一次三维数据库的数据传数操作。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

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