一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

时间数字转换器延迟链内插的多沿变位置编码方法与流程

2020-05-12 15:05:00 来源:中国专利 TAG:内插 时间 转换器 延迟 测量
时间数字转换器延迟链内插的多沿变位置编码方法与流程

本发明涉及时间测量技术领域,尤其涉及一种时间数字转换器延迟链内插的多沿变位置编码方法。



背景技术:

时间数字转换器(time-to-digitalconverter,tdc)是一种将时间间隔转换为数字量输出的器件,它在物理实验、国防及医疗诊断领域都有广泛的应用前景。

延迟链内插型时间数字转换器作为现在主流的时间数字转换器技术,采用“粗”、“细”结合的方法,可以在测量精度、死时间、动态范围几个方面都达到很好平衡。但普通延迟链内插型时间数字转换器精度取决于内插单元的延时大小,为进一步提高精度,部分改进型延迟链内插型时间数字转换器应用了“waveunion”技术,即一个输入沿变在触发电路中产生一个或多个周期性窄脉冲,通过测量多个沿变沿之后平均得到高于延迟单元的测量精度,“waveunion”进位链示意图如图1所示。

在普通的延迟链内插型时间数字转换器中,延迟链只有一个沿变沿,被d触发器阵列锁存的进位链原码具有…11110000…的形式,是典型的温度计码。采用华莱士树等编码方法累加温度计码中“1”的个数,不仅可以快速高效地将温度计码转换成二进制码,由于d触发器阵列时钟分布所产生的如…11101000…形式的“冒泡”错误也可以在编码中被消除。但是在进位链中存在多个沿变沿时,进位链原码具有…11110000…000111…的形式,无法采用“1”相加的方法得到沿变位置。在中国专利cn104614976a中针对这个问题提出了滑动窗寻找沿变沿的方法,基于可编程逻辑器件(fpga)中的查找表,在原码中逐个寻找沿变位置。

这种方法解决了基本的沿变位置编码问题,然而滑动窗结构使用的查找表数量与原码位数大致相同,会消耗大量逻辑资源,降低系统集成度,增加系统的功耗和成本。



技术实现要素:

(一)要解决的技术问题

本发明的主要目的在于提出一种时间数字转换器延迟链内插的多沿变位置编码方法,以解决常用的延迟链内插型时间数字转换器得到多个沿变位置需要消耗大量逻辑资源,结构复杂,导致系统的功耗和成本增加的问题。

(二)技术方案

本发明提供了一种时间数字转换器延迟链内插的多沿变位置编码方法,该方法包括:

将延迟链数据分片并行处理,对各片进行温度计码-二进制码转换并得到标志位,将相邻分片标志位进行异或处理;

将相邻多片合并成组,每组利用标志位异或结果确定沿变所在分的位置序号片沿变其类型;

综合有沿变分片的位置序号、片内统计二进制码转换结果,根据需求输出一个或多个沿变位置编码。

上述方案中,将延迟链数据分片并行处理,对分片进行温度计码-二进制码转换并得到标志位,将相邻分片标志位进行异或处理,包括:

将长度为m的延迟链数据原码分片,每片长度为s,则原始延迟链数据序列被分为m/s片,记为n;

在片内统计片内“1”的数量,即进行温度计码-二进制码转换,将每片转换所得二进制结果缓存,每片最高位为片标志位,相邻分片标志位两两异或得到n-1位异或结果。

上述方案中,将相邻多片合并成组,每组利用标志位异或结果确定沿变所在分片的位置序号及沿变类型,包括:

将得到的n-1位异或结果及其对应分片转换结果合并成k组,其中k大于1;

对第i组,其中i大于等于1小于等于k,在第[(n-1)/k×(i-1) 1]到第[(n-1)/k×i 1]分片的标志位异或结果中找沿变,若有沿变,则沿变发生在标志位异或结果为“1”的两个分片中;同时根据相邻分片标志确定沿变为“1到0”型或是“0到1”型;将这两个分片转换结果求和,缓存这两个分片的位置序号、标志位和片内二进制转换结果之和。

上述方案中,综合有沿变分片的位置序号、片内转换结果,根据应用场景得到一个或多个沿变位置编码,包括:

对于沿变为“1到0”型,沿变位置编码为标志位异或结果为“1”的两个分片中第一个分片序号与片长s的乘积加上片内二进制码转换结果之和;

对于沿变为“0到1”型,沿变位置编码为标志位异或结果为“1”的两个分片中第一个分片序号与片长s的乘积并与两相邻分片内余下“0”的个数之和。

(三)有益效果

1、本发明提出的时间数字转换器延迟链沿变位置的编码方法,将延迟链数据分片,逻辑简单,充分利用硬件的并行性特点,先根据分片位编号进行沿变位置的粗略判断,有效节省硬件资源量;再根据片内统计信息得到确定位置,达到和逐一定位相同的精度。

2、本发明提出的时间数字转换器延迟链沿变位置的编码方法,步骤一、二都是并行操作,结构简单,死时间小;步骤三也可以流水线处理,所以整个解码逻辑可以运行在很高的时钟频率,整体死时间小吞吐率高。

3、本发明提出的时间数字转换器延迟链沿变位置的编码方法,步骤一、二中将延迟链数据分片,片内运算各不相干,当输入数据宽度改变时只需要复用已有逻辑,无需其他修改,所以有很强的扩展性。

附图说明

图1为现有技术中的“waveunion”进位链示意图;

图2为依照本发明实施例的时间数字转换器延迟链沿变位置的编码方法流程图;

图3为依照本发明实施例的30位序列编码示意图;

图4为依照本发明实施例的分片处理单元;

图5为依照本发明实施例的逻辑仿真波形图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

如图2所示,图2为依照本发明实施例的时间数字转换器延迟链沿变位置的编码方法流程图,该方法包括:

步骤一,将延迟链数据分片并行处理,对各片进行温度计码-二进制码转换统计“1”的数量并得到标志位,将相邻片标志位进行异或处理。

将长度为m的延迟链数据原码分片,每片长度为s,则原始延迟链数据序列被分为m/s片,记为n;

在片内统计片内“1”的数量,即进行温度计码-二进制码转换,将每片转换结果缓存,每片所得二进制编码最高位为片标志位,相邻分片标志位两两异或得到n-1位异或结果,将结果缓存进入下一步处理。

步骤二,将相邻多片合并成组,每组利用标志位异或结果确定沿变所在分片的位置序号及沿变类型。

将步骤一所得n-1位异或结果输出及其对应分片转换结果合并成k组处理,k大于1;对第i组,i大于等于1小于等于k,在第[(n-1)/k×(i-1) 1]到第[(n-1)/k×i 1]分片的标志位异或结果中找沿变,若有沿变,则沿变发生在标志位异或结果为“1”的两个分片中;同时根据邻分片标志确定沿变为“1到0”型或是“0到1”型;将这两个分片转换结果求和,缓存这两个分片的序号、标志位和片内二进制码转换结果之和。以两组为例,第一组在第1到第(n-1)/2 1分片的标志异或结果中找沿变,若有沿变,则沿变发生在标志异或结果为“1”的两个分片中。同时根据相邻分片标志确定沿变为“1到0”型或是“0到1”型;将这两个分片转换结果求和并记为sum,缓存这两个分片的序号、标志位和片内转换结果之和sum。第二组类似地处理第(n-1)/2 1到第n分片的数据,对于更长的进位链锁存数据可以分更多组进行处理。进位链相邻两个沿变距离变应大于分组所对应的原始数据位数,保证每组只有一个沿变,沿变间距以进位链之前的脉冲发生电路控制。

步骤三,综合有沿变分片的位置序号、片内二进制编码数据,根据需求输出一个或多个沿变位置编码。

步骤二中每一个分组都可以输出分组中有无沿变,发生沿变的分片序号、片标志位和片内转换结果。对于沿变为“1到0”型,沿变位置编码为标志位异或结果为“1”的两个分片中第一个分片序号与片长s的乘积加上片内二进制编码结果之和sum;对于沿变为“0到1”型,沿变位置编码为标志位异或结果为“1”的两个分片中第一个分片序号与片长s的乘积并与相邻两分片内余下“0”的个数即2s-sum之和。

本发明以30位多沿变延迟链沿变位置编码为例,说明本发明所提出方法的具体实施方式。在本发明实施例中,输入延迟链数据被划分为5个分片,最终得到沿变沿位置的二进制编码。最终结果为第一个沿变类型为“1到0”型,标记为0的,位置编码为5,第二个沿变类型为“0到1”型,标记为1的,位置编码为22。具体步骤如下:

步骤一:将延迟链数据分片并行处理,对各分片进行温度计码-二进制码转换以统计片内“1”的数量并得到标志位,将相邻分片标志位进行异或处理;

如图3所示30位原始数据中有两个沿变,使用本发明所述编码方法先将数据分成5片,每片六位,分片大小由根据具体实施硬件调整而并非固定。在片中统计“1”的个数,输出结果为三位二进制数,最高位为标志位。标志位为“0”说明分片中“0”多,反之则是分片中“1”多;由此可知相邻分片标志位异或为1则这两个分片中必有沿变。

步骤二:将相邻多片合并成组,每组利用标志位异或结果确定沿变发生分片及其类型;

合并处理三个分片标记异或结果对其进行编码,则可得到沿变的粗略位置。如发明内容一节所述,分片初步合并范围类不能有多个沿变,这可以通过进位链之前的脉冲发生电路保证。图3所示的实例当中,分别合并第一、二、三分片及三、四、五分片。第一、二分片标志位异或结果为1,类型标记为0,即后一个分片标志为0,若有沿变则为“1”到“0”型,这样标记有利于后续处理。之后第二、三及三、四分片没有沿变,它们的标志位异或结果为0。第二个沿变发生在第四、五分片中,这两个分片标志位异或结果为1,类型标记为1,表示发生沿变类型为“0”到“1”型。将这两个分片统计结果求和,缓存这两个分片的序号、标志位和片内统计结果之和。

步骤三:综合有沿变分片的位置序号、片内统计结果,根据需求输出一个或多个沿变位置编码。

最后在综合中用粗略位置编码乘以分片大小6,加上对应分片中统计“1”或“0”的数目,即第1、2分片中的5个“1”与4、5分片中的8个“0”,就可以得到最终的沿变位置编码和沿变类型。在本例中第一个沿变位置计算过程是0*6 5=5,第二个为3*6 (12-8)。由于“0”到“1”类沿变中计算的是“0”的个数而步骤一中统计的是“1”,故要先用减法运算求出发生沿变两分片中“0”的个数再相加。

为验证编码方法在硬件中的可行性,在可编程逻辑器件fpga对编码方法实例化后进行行为级仿真,仿真在vivado软件平台上运行,输入数据为72位进位链原始数据。fpga中逻辑实现单元lut6如图4所示,故6位分片在fpga中能最大节约资源。编码逻辑采用七级流水线,死时间为一个系统时钟周期。仿真结果故如图5所示,编码方法对应的分片统计一个周期,合并寻找沿变两个周期,最终步骤乘加运算耗时四个时钟周期,七个周期后编码逻辑得到最终结果。最后在赛灵思公司(xilinx)的xc7a200tfbg484-2型fpga中使用本发明公开时间数字转换器延迟链编码方法,编码电路可以在330mhz时钟下稳定运行。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜