一种基于FPGA进位链的高精度延时产生器的制作方法

文档序号:13984170阅读:727来源:国知局
一种基于FPGA进位链的高精度延时产生器的制作方法

本发明属于高精密自动测试仪器技术领域,特别是一种基于fpga进位链的高精度延迟产生器。



背景技术:

高精度延时产生器的作用是产生两个具有一定时间间隔的电脉冲信号,该间隔大小由数字编程设置。它在高精密自动测试仪器领域如超大规模集成电路(vlsi)功能测试、锁相环(pll)测试、集成电路(ic)脉冲特性测试、时间数字转换器(tdc)测试、时钟综合器测试等方面,都具有重要的应用价值。此外,它也是某些高能物理实验装置、事件符合系统、核医学成像装置等大型仪器所需的关键功能模块。

然而目前市场上能够提供亚纳秒精度的延时产生器的公司很少,其中adi公司生产的型号为ad9501的延迟芯片是这些为数不多的产品中的优秀代表,它提供了最小10ps的延时分辨率,延时精度为53ps,但是动态工作范围只有8比特,对应最大可调节延时仅为2.5ns。此外由于专用集成芯片(asic)的特性,采用该类芯片作为延时产生器而研发的系统,市场化周期较长,并且难于适应功能参数的变化需求,灵活性较差。

现场可编程逻辑阵列(fpga)由于其可重构特性,提高了适用于各种具体应用环境的灵活性并且能够加速产品面向市场的速度,可以显著节约研发成本。正如上文所述,高精度延迟产生器是高精密自动测试技术领域的关键组成模块,因而与整个系统集成的灵活程度也是衡量其应用价值的重要因素,这决定了基于fpga平台的延迟产生器拥有广阔的应用前景。然而fpga内部逻辑资源种类有限,严重限制了设计自由度,因而目前还十分欠缺基于fpga片内逻辑资源实现高精度延时器的成熟方案。



技术实现要素:

本发明的目的在于提供一种基于fpga进位链的具有高分辨率和大动态范围的延时产生器。

实现本发明目的的技术解决方案为:一种基于fpga进位链的高精度延迟产生器,包括通信和控制接口模块、粗延时产生模块、细延时产生模块三个部分,其中:

所述通信和控制接口模块从pc接收数字延时信息,生成延时触发信号以及在延时器工作完成后生成复位信号;

所述粗延时产生模块以粗延时精度产生初始延时差,粗延时产生模块决定整个延时产生器的动态工作范围;

所述细延时产生模块以细延时精度产生补偿延时差,细延时产生模块决定整个延时产生器的延时分辨率;初始延时差和补偿延时差之和构成了整体的延时差。

进一步地,所述通信和控制接口模块从pc接收的数字延时信息为数值组合(m,n),其中m表示粗数字延时信息,n表示细数字延时信息;用△t表示预期产生的延时差,rc表示粗延时产生模块的分辨率,rf表示细延时产生模块的分辨率,则其中运算符表示取不大于x的整数。

进一步地,所述粗延时产生模块包括使能控制单元、多路选择器和脉冲抽取单元,使能控制单元判断接收到有效的延时触发信号后,控制多路选择器将时钟信号连通至脉冲抽取单元,脉冲抽取单元产生粗领先输出和粗落后输出信号。

进一步地,所述脉冲抽取单元包含两个计数器、两个比较器和两个脉冲整形单元,脉冲抽取单元拥有两个输入端口,分别连接两个计数器的时钟端口;由于输入信号是振荡信号,该振荡信号能够驱动相应的计数器在信号的每个上升沿向上计数1次;每个计数器后面都配有一个对应的比较器,每个比较器的一个输入端连接计数器输出端、另外一个输入端为固定的预设值;当计数器的结果大于等于预设值时,比较器输出高电平,触发脉冲整形单元产生延时输出信号。

进一步地,所述脉冲整形单元包括1个d触发器和1个延迟缓冲器,d触发器的数据端口接固定高电平、时钟端口接待整形的信号、输出端口连接延迟缓冲器的输入端,经过总量为tp的延迟后,d触发器的输出端口接入d触发器的清空端口。

进一步地,所述每个比较器的一个输入端连接计数器输出端、另外一个输入端为固定的预设值,其中一个比较器控制输出粗领先信号且预设值为0,另外一个比较器控制输出粗落后信号且预设值为m。

进一步地,所述细延时产生模块包括vernier延时环和脉冲抽取单元,粗延时产生模块的粗领先输出信号接入vernier延时环中的快延时环、粗落后输出信号接入vernier延时环中的慢延时环,并分别在相应的环中传播形成持续的振荡信号;脉冲抽取单元分别判断两条环中信号的振荡次数,并当振荡次数达到n时将振荡信号抽取输出,其中快延时环中的被抽取信号是细领先输出,而慢延时环中的被抽取信号是细落后输出。

进一步地,所述vernier延时环包含快延时环和慢延时环,vernier延时环由fpga内部进位链构成,进位链的尾端被回接到首端从而形成振荡环结构;每条延时环包括一个脉冲整形单元、一条进位链和一个多路选择器,快延时环包含p个基本延时单元,产生振荡周期tf,而慢延时环包含q个基本延时单元,产生振荡周期ts;构造时保证p<q,则得到tf<ts;延时环中脉冲整形单元的结构与粗延时产生模块中的脉冲整形单元完全相同,脉冲整形单元的作用是稳定振荡信号在延时环中传播时的占空比;多路选择器的作用是当接收到复位信号后,将环路断开并重置内部状态。

进一步地,所述细延时产生模块中脉冲抽取单元与粗延时产生模块中的脉冲抽取单元的电路结构完全相同,但细延时产生模块的脉冲抽取单元中的两个比较器的预设值均为n。

本发明与现有技术相比,其显著优点为:(1)由于多数自动测试仪器、高能核实验装置及核医学成像装置等大型仪器开始普遍采用fpga作为主控制单元,基于fpga的延时产生器便于实现系统集成,显著降低开发和应用成本;(2)该延时产生器采用粗延时和细延时结合的方法,粗延时使用的计数器的位数易于扩展,相比现有的延迟芯片,能够实现高分辨率与大动态范围的统一;(3)进位链(carrychain)是fpga中为了实现快速的加法、比较等功能运算而特别设计的,其基本单元的延时量非常小,为实现高精度延迟产生器提供了一种可行的思路。

附图说明

图1是本发明基于fpga进位链的高精度延迟产生器的结构示意图。

图2是本发明实施例提供的高精度延时产生器工作时序图。

图3是本发明实施例提供的脉冲抽取单元的电路结构图。

图4是本发明实施例提供的vernier延时环的电路结构图。

图5是本发明实施例提供的基于两步法设计vernier延时环的方法示意图。

图6是本发明实施例测量得到的非线性误差曲线图,其中(a)是实施例测量得到的非线性误差dnl曲线图,(b)是实施例测量得到的非线性误差inl曲线图。

具体实施方式

结合图1,本发明基于fpga进位链的高精度延迟产生器,包括通信和控制接口模块、粗延时产生模块、细延时产生模块三个部分,其中:

(一)所述通信和控制接口模块从pc接收数字延时信息,生成延时触发信号以及在延时器工作完成后生成复位信号;

所述通信和控制接口模块从pc接收的数字延时信息为数值组合(m,n),其中m表示粗数字延时信息,n表示细数字延时信息;用△t表示预期产生的延时差,rc表示粗延时产生模块的分辨率,rf表示细延时产生模块的分辨率,则其中运算符表示取不大于x的整数。

(二)所述粗延时产生模块以粗延时精度产生初始延时差,粗延时产生模块决定整个延时产生器的动态工作范围;

所述粗延时产生模块包括使能控制单元、多路选择器和脉冲抽取单元,使能控制单元判断接收到有效的延时触发信号后,控制多路选择器将时钟信号连通至脉冲抽取单元,脉冲抽取单元产生粗领先输出和粗落后输出信号。

所述脉冲抽取单元包含两个计数器、两个比较器和两个脉冲整形单元,脉冲抽取单元拥有两个输入端口,分别连接两个计数器的时钟端口;由于输入信号是振荡信号,该振荡信号能够驱动相应的计数器在信号的每个上升沿向上计数1次;每个计数器后面都配有一个对应的比较器,每个比较器的一个输入端连接计数器输出端、另外一个输入端为固定的预设值;当计数器的结果大于等于预设值时,比较器输出高电平,触发脉冲整形单元产生延时输出信号。

所述脉冲整形单元包括1个d触发器和1个延迟缓冲器,d触发器的数据端口接固定高电平、时钟端口接待整形的信号、输出端口连接延迟缓冲器的输入端,经过总量为tp的延迟后,d触发器的输出端口接入d触发器的清空端口。

所述每个比较器的一个输入端连接计数器输出端、另外一个输入端为固定的预设值,其中一个比较器控制输出粗领先信号且预设值为0,另外一个比较器控制输出粗落后信号且预设值为m。

(三)所述细延时产生模块以细延时精度产生补偿延时差,细延时产生模块决定整个延时产生器的延时分辨率;初始延时差和补偿延时差之和构成了整体的延时差。

所述细延时产生模块包括vernier延时环和脉冲抽取单元,粗延时产生模块的粗领先输出信号接入vernier延时环中的快延时环、粗落后输出信号接入vernier延时环中的慢延时环,并分别在相应的环中传播形成持续的振荡信号;脉冲抽取单元分别判断两条环中信号的振荡次数,并当振荡次数达到n时将振荡信号抽取输出,其中快延时环中的被抽取信号是细领先输出,而慢延时环中的被抽取信号是细落后输出。

所述vernier延时环包含快延时环和慢延时环,vernier延时环由fpga内部进位链构成,进位链的尾端被回接到首端从而形成振荡环结构;每条延时环包括一个脉冲整形单元、一条进位链和一个多路选择器,快延时环包含p个基本延时单元,产生振荡周期tf,而慢延时环包含q个基本延时单元,产生振荡周期ts;构造时保证p<q,则得到tf<ts;延时环中脉冲整形单元的结构与粗延时产生模块中的脉冲整形单元完全相同,脉冲整形单元的作用是稳定振荡信号在延时环中传播时的占空比;多路选择器的作用是当接收到复位信号后,将环路断开并重置内部状态。

所述细延时产生模块中脉冲抽取单元与粗延时产生模块中的脉冲抽取单元的电路结构完全相同,但细延时产生模块的脉冲抽取单元中的两个比较器的预设值均为n。

实施例1

如图1所示,本发明提出了一种基于fpga进位链的高精度延迟产生器,包括通信和控制接口模块,粗延时产生模块和细延时产生模块三个部分。其中通信和控制接口模块的功能是从pc接收数字延时信息,生成延时触发信号以及在延时器工作完成后生成复位信号。粗延时产生模块的功能是以粗延时精度产生较大动态范围的延时差。细延时产生模块的功能是以细延时精度产生高精度的补偿延时差。粗延时差和细延时差之和构成了整体的延时差。整个延时产生器的延时分辨率由细延时产生模块决定,而动态工作范围由粗延时产生模块决定。

如图2所示的时序图,该延迟产生器的工作原理是:

(1)通信和控制接口模块从pc端接收数字延时信息并产生延时触发信号输出到粗延时产生模块。其中数字延时信息是由pc端依据延迟产生器的粗延时分辨率、细延时分辨率及需要获得的延时差△t计算得到的组合数值(m,n),m对应粗延时信息,n对应细延时信息。用(rc,rf)表示组合分辨率,其中rc表示粗延时产生模块的分辨率,rf表示细延时产生模块的分辨率。则pc端计算(m,n)的公式为:其中表示不大于x的整数。

(2)粗延时产生模块接收到延时触发信号后,启动一个粗计数器开始工作,当计数器数值为0时候,输出第一个脉冲信号作为粗领先信号,当计数器数值为m的时候,输出第二个脉冲信号作为粗落后信号。用tclk表示驱动粗计数器的时钟周期大小,则rc=tclk。上述工作方式保证了粗延时产生模块输出的粗领先信号和粗落后信号之间的延时差为m·tclk,该两个信号都被接入到细延时产生模块。

(3)细延时产生模块基于vernier原理产生细延时差,它包含两条具有不同振荡周期的振荡环。粗领先信号被接入快振荡环,而粗落后信号被接入到慢振荡环。用tf表示快振荡环的振荡周期,ts表示慢振荡环的振荡周期。当两个信号分别在各自的振荡环中循环一次后,快振荡环中的信号会领先慢振荡环中的信号1个细分辨率的时间差:rf=ts-tf。两个振荡环中的振荡信号分别驱动两个不同的细计数器工作,当细计数器的数值变为n的时候,提取与该细计数器对应的振荡环中的振荡信号作为输出信号,由此产生的细延时差为:n·(ts-tf)。令快振荡环的输出信号作为细领先信号,慢振荡环的输出信号作为细落后信号。结合步骤(2)提供的粗延时,该两个信号间的延时差为:△t=m·tclk+n·(ts-tf),它等于数字编程预期获得的延时量。

(4)延时产生器工作完成后,通信和控制接口模块产生复位信号,重置粗延时产生模块和细延时产生模块,等待下次工作状态开始。

本发明的一个实施例使用的fpga芯片型号是ep3se110f1152i3(altera公司生产的stratixⅲ系列芯片)。设计工具是quartusⅱ13.1版本,该工具提供了逻辑功能描述、编译、布局、布线和后期工程调整等一整套的解决方案。

粗延时产生模块由使能控制单元,多路选择器和脉冲抽取单元组成,其结构如图1所示。使能控制单元的作用是:当判断接收到有效的延时触发信号后,控制多路选择器将时钟信号连通至脉冲抽取单元进而驱动其开始工作。脉冲抽取单元包含两个计数器、两个比较器和两个脉冲整形单元,其具体的电路实现如图3所示。它拥有两个输入端口,分别连接两个计数器的时钟端口。由于输入信号是振荡信号,它能够驱动相应的计数器在信号的每个上升沿向上计数1次。每个计数器后面都配有一个对应的比较器,比较器的一个输入端连接计数器输出端,另外一个输入端为固定的预设值。当计数器的结果大于等于预设值时,比较器输出高电平,触发脉冲整形单元产生延时输出信号。控制输出粗领先信号的比较器的预设值为0,而控制输出粗落后信号的比较器的预设值为m。由于比较器输出持续型的高电平,故需要脉冲整形单元将其变换为具有一定宽度的脉冲信号。它由1个d触发器和1个延迟缓冲器构成,d触发器的数据端口接固定高电平,时钟端口接待整形的信号,输出端口连接延迟缓冲器的输入端,经过总量为tp的延迟后,接入d触发器的清空端口。

细延时产生模块由vernier延时环和脉冲抽取单元组成。其中vernier延时环的具体电路实现如图4所示,它包含两条具有不同延时精度的延时线,即快、慢延时线。延时线基于fpga内部的进位链构成,它的基本延时单元的延时量非常小,是实现高精度延时线的最佳片内资源。在本发明提供的技术方案中,将延时线的尾端回接到其首端,形成振荡环结构。每条延时环由一个脉冲整形单元,一条进位链和一个多路选择器构成。快延时环包含p个基本延时单元,而慢延时环包含q个基本延时单元,构造时令p<q,可以形成两条具有不同振荡周期的振荡环,振荡周期满足tf<ts。脉冲整形单元的结构与粗延时产生模块中的脉冲整形单元完全相同,其作用是稳定振荡信号在环中传播时的占空比。多路选择器的作用是当接收到复位信号后,将环路断开并重置其内部状态,为下次工作做好准备。

由于fpga内部逻辑资源结构的特性,延时环的振荡周期不易控制,要获得具有预期细分辨率的振荡环十分困难。本实施例提出了一种基于两步法的设计思路,其过程如图5所示。第一步建立独立的quartusⅱ工程,使用logiclock和designpartition工具设计一条以进位链为基础的包含n个基本延时单元的振荡环,要求n>q>p,编译后将其布局布线信息导出。第二步建立新的quartusⅱ工程,重复利用logiclock和designpartition工具将上述振荡环结构导入到片内两个不同的逻辑区域,进而获得两条结构相似的延迟线环路,并在此基础上精调两个延时环的振荡周期差。通过第一步操作,可以保证两条延时环具有完全相同的电路结构,包括lut的具体实现及它们之间的连线方式,尽量保证它们具有完全相等的振荡周期,为第二步精调振荡周期差提供了基础。在第二步操作中,使用engineeringchangeorders(eco)工具,循环迭代地找出具有较长振荡周期的延迟环路,然后在其末端与脉冲整形模块连接的地方将连线断开,缩短一个基本延迟单元的长度并将其与脉冲整形模块重新连接起来,直到获得了预期的振荡周期差为止。为了观察每个延时环的振荡周期及它们之间的相互关系,可以从上述“精调整位置”引出两路信号到片外,接入具有双通道功能的示波器直观得到。例如在图5中,通过精调过程,最后得到的快振荡环路包含p个基本延时单元,慢振荡环路包含q个基本延时单元。

细延时产生模块的脉冲抽取单元的结构与粗延时产生模块的脉冲抽取单元的结构完全相同,唯一区别在于细延时产生模块的脉冲抽取单元中的两个比较器的预设值全部为n。它们控制当vernier延时环中的快、慢振荡环中的信号分别振荡了n次之后,将对应的振荡信号抽取出作为细领先和细落后信号。由此在粗延时的基础上附加了延时量为n·(ts-tf)的细延时,因而总延时量为△t=m·tclk+n·(ts-tf)。

针对本发明提供的实施例,设置慢延时产生模块的时钟工作频率为500mhz,所以慢延时分辨率为2ns。粗延时产生模块的脉冲抽取单元的计数器和比较器的数据宽度都是16比特,因而动态工作范围为2ns*65536=131μs,可见相比目前现有的产品,动态工作范围得到极大扩展。如果需要更大的动态工作范围,只需要扩展计数器和比较器的数据宽度即可,升级潜力巨大并且方便灵活。细延时产生模块的分辨率由vernier延时环中快、慢振荡环的具体振荡周期决定的,因而与设计时获得的基本延时单元的个数p和q相关,一般通过示波器测量得到。本实施例使用lecroy公司生产的型号为740zi的示波器作为测试设备,它提供了双通道信号延时差的直接测量结果,并且包含常用的统计参数结果。用△t(n)表示细延时数字信息为n的情况下,示波器测量得到的延时差,确定细延时分辨率的方法是:令m为0,不断增大n,直到找出第一个使得延时差大于粗延时精度(本实施例中为2ns)的最小数值nmin,则细延时精度的计算公式为:rf=△t(nmin)/nmin。此外为了衡量延迟器的工作性能,非线性误差是一项重要的参考指标。它可以用微分非线性(dnl)和积分非线性(inl)来表示。

对于本实施例的高精度延迟产生器,编译结果报告显示lut资源消耗量为1134,寄存器消耗量为146,表明本发明技术在具体实施时所需的资源开销非常小。测量得到的inl和dnl结果如图6所示,其中图6(a)是实施例测量得到的非线性误差dnl曲线图,图6(b)是实施例测量得到的非线性误差inl曲线图。inl和dnl结果的范围为(-0.18lsb,0.24lsb)\(-0.02lsb,0.01lsb)。图中覆盖了一个粗延时分辨率内的细延时分布结果,其中最大延时位置处对应的nmin为52,实际产生的延时结果为2010ps,故细延时分辨率为2010/52=38.6ps。

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