本发明涉及通信技术领域,尤其涉及一种基于fpga的传输延时测试方法及装置。
背景技术:
现场可编程门阵列fpga(fieldprogrammablegatearray)是一种半导体器件,内部包括了一些可重复编程的逻辑模块,主要包括了以下三个部分:可配置逻辑模块clb(configurablelogicblock),输入输出模块iob(input/outputblock)和可编程互联线(programmableinterconnect)。fpga是以硬件描述语言(如verilog)进行电路设计,然后通过eda软件生成包含所有可编程逻辑模块配置信息的位流文件,将此位流下载到fpga内部的配置内存单元,完成对clbs,iobs和可编程互联线等的配置,是现代ic设计验证的技术主流。
fpga内部的每一个可编程逻辑模块,如clb,iob和可编程互联线等等,都会存在一段信号的传输延时,并且这些模块的延时会随fpga芯片的制作工艺,工作电压,温度等的变化而变化,这导致了fpga芯片内部信号的传输延时难以准确计算。eda软件要将用户的设计转换成正确的fpga位流配置信息,必须要满足用户的时序约束。通常情况下,制造商对fpga的传输延时进行了测量和评估,在产品手册中提供了传输延时的最大值,用户根据此数值来进行设计开发,来确保fpga在其他运行环境下的时序也都是收敛的。
一般地,制造商考虑最恶劣的条件来通过仿真的方法对fpga的传输延时信息进行粗略评估,以保证生产出来的fpga能够正确运行,而仿真所获得的最大传输延时信息与实际相比有很大的安全余量,这就导致了fpga芯片不能够完全发挥自身的性能。另外,若设置的仿真条件有误,这样获取的延时信息与实际可能存在很大出入,导致eda软件分析结果和实际的运行结果不一致。
技术实现要素:
本发明提供了一种基于fpga的传输延时测试方法及装置,以解决现有技术中基于最恶劣条件仿真所得的最大传输延时信息与实际相比具有较大的安全余量,所导致的fpga芯片无法充分发挥使用性能的技术问题。
为了解决上述技术问题,本发明采用以下技术方案:
本发明提供了一种fpga的传输延时测试方法,该fpga的传输延时测试方法包括:
通过第一时钟驱动第一d触发器进行低电平信号和高电平信号的交替输出,并通过第二时钟驱动第二d触发器进行第一d触发器所输出的信号的接收;第一时钟的周期为t1,第二时钟的周期为t2,t1大于t2;
控制计数器以边沿同步检测单元所确定的第一时钟和第二时钟的有效时钟沿对齐的时刻为计数起始时刻,以及以信号接收确定单元所确定的第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻为计数终止时刻,对第二时钟输出的信号进行计数;
根据由计数器的计数所确定的第一时钟与第二时钟的相位差以及t1,确定第一d触发器与第二d触发器之间的待测路径的待测传输延时。
进一步地,第一时钟、第二时钟、第一d触发器、第二d触发器、计数器、边沿检测单元以及信号接收确定单元集成在单块fpga芯片中。
进一步地,边沿同步检测单元包括:第三d触发器、第四d触发器以及第五d触发器,第三d触发器和第四d触发器分别由第一时钟和第二时钟驱动;
控制计数器以边沿同步检测单元所确定的第一时钟和第二时钟的有效时钟沿对齐的时刻为计数起始时刻,以及以信号接收确定单元所确定的第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻为计数终止时刻,对第二时钟输出的信号进行计数包括:
通过第五d触发器分别接收第三d触发器和第四d触发器输出的信号,并在第五d触发器随着第二时钟的有效时钟沿的前移,根据所接收到的信号控制自身所输出的信号由高电平信号翻转至低电平信号时,确定当前时刻为第一时钟和第二时钟的有效时钟沿对齐的时刻;
控制计数器以第一时钟和第二时钟的有效时钟沿对齐的时刻为计数起始时刻,以及以信号接收确定单元所确定的第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻为计数终止时刻,对第二时钟输出的信号进行计数。
进一步地,信号接收确定单元包括:异或门以及接收异或门输出的信号的第六d触发器,第六d触发器被第二时钟驱动;
控制计数器以边沿同步检测单元所确定的第一时钟和第二时钟的有效时钟沿对齐的时刻为计数起始时刻,以及以信号接收确定单元所确定的第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻为计数终止时刻,对第二时钟输出的信号进行计数包括:
控制计数器以边沿同步检测单元所确定的第一时钟和第二时钟的有效时钟沿对齐的时刻为计数起始时刻开始对第二时钟输出的信号进行计数;
通过异或门从第二d触发器接收第二d触发器的d端口信号和q端口信号,并在第六d触发器接收到异或门输出的高电平信号以及被第二时钟触发而输出高电平信号时,确定当前时刻为第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻;
控制计数器以第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻为计数终止时刻,而停止对第二时钟输出的信号进行计数。
更进一步地,控制计数器以边沿同步检测单元所确定的第一时钟和第二时钟的有效时钟沿对齐的时刻为计数起始时刻,以及以信号接收确定单元所确定的第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻为计数终止时刻,对第二时钟输出的信号进行计数包括:
控制计数器分别在第一d触发器与第二d触发器之间的待测路径两端所接入的开关断开和闭合的情况下,以边沿同步检测单元所确定的第一时钟和第二时钟的有效时钟沿对齐的时刻为计数起始时刻,以及以信号接收确定单元所确定的第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻为计数终止时刻,对第二时钟输出的信号进行计数,而得到第一计数和第二计数;
根据由计数器的计数所确定的第一时钟与第二时钟的相位差以及t1,确定第一d触发器与第二d触发器之间的待测路径的待测传输延时包括:
根据由第一计数所确定的第一时钟与第二时钟的第一相位差以及t1,确定第一d触发器与第二d触发器之间的第一传输延时,以及根据由第二计数所确定的第一时钟与第二时钟的第二相位差以及t1,确定第一d触发器与第二d触发器之间的第二传输延时;
将第一传输延时与第二传输延时的差值确定为待测路径的待测传输延时。
本发明提供了一种基于fpga的传输延时测试装置,包括:第一时钟、第二时钟、第一d触发器、第二d触发器、计数器、边沿同步检测单元以及信号接收确定单元,第一d触发器和第二d触发器之间接入待测路径;第一d触发器的q端口通过反相器接回d端口,第一时钟的周期为t1,第二时钟的周期为t2,t1大于t2;
第一时钟用于驱动第一d触发器进行低电平信号和高电平信号的交替输出;
第二时钟用于驱动第二d触发器进行第一d触发器所输出的信号的接收;
边沿同步检测单元用于确定第一时钟和第二时钟的有效时钟沿对齐的时刻;
信号接收确定单元用于确定第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻;
计数器用于以边沿同步检测单元所确定的时刻为计数起始时刻,以及以信号接收确定单元所确定的时刻为计数终止时刻,对第二时钟输出的信号进行计数;计数器的计数用于确定第一时钟与第二时钟的相位差,相位差以及t1用于确定待测路径的待测传输延时。
进一步地,第一时钟、第二时钟、第一d触发器、第二d触发器、计数器、边沿检测单元以及信号接收确定单元集成在单块fpga芯片中。
进一步地,边沿同步检测单元包括:第三d触发器、第四d触发器以及第五d触发器,第三d触发器和第四d触发器分别由第一时钟和第二时钟驱动;第三d触发器和第四d触发器的q端口均通过反相器接回d端口,第五d触发器的d端口和clk端口分别接入第三d触发器和第四d触发器的q端口;
第五d触发器用于分别接收第三d触发器和第四d触发器输出的信号,并随着第二时钟的有效时钟沿的前移根据所接收到的信号控制自身所输出的信号;第五d触发器所输出的信号由高电平信号翻转至低电平信号的时刻用于指示第一时钟和第二时钟的有效时钟沿对齐的时刻。
进一步地,信号接收确定单元包括:异或门以及接收异或门输出的信号的第六d触发器,第六d触发器被第二时钟驱动;异或门分别接入第二d触发器的d端口和q端口;
异或门用于从第二d触发器接收第二d触发器的d端口信号和q端口信号,并在d端口信号和q端口信号不同时输出高电平信号;
第六d触发器用于在接收到异或门输出的高电平信号以及被第二时钟触发而输出高电平信号;第六d触发器输出高电平信号的时刻用于指示第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻。
更进一步地,还包括:在第一d触发器与第二d触发器之间的待测路径两端所接入的开关;
计数器用于分别在开关断开和闭合的情况下,以边沿同步检测单元所确定的时刻为计数起始时刻,以及以信号接收确定单元所确定的时刻为计数终止时刻,对第二时钟输出的信号进行计数,而得到第一计数和第二计数;第一计数和第二计数分别用于确定第一时钟与第二时钟的第一相位差和第二相位差,第一相位差和第二相位差分别用于与t1确定第一d触发器与第二d触发器之间的第一传输延时和第二传输延时,第一传输延时与第二传输延时的差值为待测路径的待测传输延时。
本发明的有益效果为:
本发明提供了一种基于fpga的传输延时测试方法及装置,针对现有技术中基于最恶劣条件仿真所得的最大传输延时信息与实际相比具有较大的安全余量,所导致的fpga芯片无法充分发挥使用性能的缺陷,该基于fpga的传输延时测试方法包括:通过第一时钟驱动第一d触发器进行低电平信号和高电平信号的交替输出,并通过第二时钟驱动第二d触发器进行第一d触发器所输出的信号的接收;第一时钟的周期为t1,第二时钟的周期为t2,t1大于t2;控制计数器以边沿同步检测单元所确定的第一时钟和第二时钟的有效时钟沿对齐的时刻为计数起始时刻,以及以信号接收确定单元所确定的第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻为计数终止时刻,对第二时钟输出的信号进行计数;根据由计数器的计数所确定的第一时钟与第二时钟的相位差以及t1,确定第一d触发器与第二d触发器之间的待测路径的待测传输延时。通过两个周期不同的时钟模拟不断收紧的两个时钟相位,并根据两个时钟有效时钟沿对齐至快时钟采集不到慢时钟信号的时间区间内两个时钟的相位差,以及慢时钟的周期来确定待测电路的传输延时,有效提升了传输延时测试的精确性,使得用户在fpga应用时能够合理减少设计余量,可充分发挥fpga芯片的使用性能。
附图说明
图1为本发明实施例一提供的传输延时测试方法的基本流程图;
图2为本发明实施例一提供的边沿同步检测单元的波形模拟图;
图3为本发明实施例二提供的传输延时测试方法基本流程图;
图4为本发明实施例三提供的传输延时测试装置的结构示意图;
图5为本发明实施例三提供的边沿同步检测单元的结构示意图;
图6为本发明实施例三提供的波形示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明中一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现通过具体实施方式结合附图的方式对本发明做出进一步的诠释说明。
实施例一:
为解决现有技术中基于最恶劣条件仿真所得的最大传输延时信息与实际相比具有较大的安全余量,所导致的fpga芯片无法充分发挥使用性能的缺陷,本实施例提供了一种基于fpga的传输延时测试方法,如图1所示为本实施例提供的基于fpga的传输延时测试方法的基本流程图,该传输延时测试方法具体包括以下步骤:
s101、通过第一时钟驱动第一d触发器进行低电平信号和高电平信号的交替输出,并通过第二时钟驱动第二d触发器进行第一d触发器所输出的信号的接收;第一时钟的周期为t1,第二时钟的周期为t2,t1大于t2。
具体的,本实施例中输入两个周期不同的时钟,这两个时钟的周期之差的绝对值也即本实施例中的传输延时测试精度,其中第一时钟clk1的周期t1较大,为慢时钟,而第二时钟clk2的周期t2相对较小,为快时钟,其中,大概t1-t2的绝对值足够小时,可以达到很高的传输延时测试精度。另外,本实施例中的两个时钟分别驱动了一个d触发器(dataflip-flop或delayflip-flop),d触发器上具有数据输入端口(d端口),数据锁存输出端口(q端口)以及时钟输入端口(clk端口),其中,clk1用于驱动第一d触发器ff1输出信号,而clk2则用于驱动第二d触发器ff2接收第一d触发器ff1输出的数据,d触发器的工作原理为:当时钟信号的上升沿到来时,d端口的数据将传递给q端口和q非端口,在此,q端口和q非端口除了反相之外,其他特性都是相同的。本实施例中的clk1和clk2同时输出时钟信号,两者之间的相位相差t1-t2,从而通过clk1和clk2模拟出两个不断收紧的时钟相位。应当说明的是,本实施例中的第一d触发器ff1的q端口通过一个反相器接回该触发器的d端口,由反相器作为整形电路将信号的相位翻转180度,这样即可实现第一d触发器ff1交替输出0、1信号,也即低电平信号和高电平信号。
应当说明的是,本实施例中在ff1和ff2中所接入的为待测路径,ff1的q端口所输出的信号经过一段延时而达到ff2的d端口而被接收,该段路径中信号的传输延时即为待测传输延时(propagationdelay)。
s102、控制计数器以边沿同步检测单元所确定的第一时钟和第二时钟的有效时钟沿对齐的时刻为计数起始时刻,以及以信号接收确定单元所确定的第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻为计数终止时刻,对第二时钟输出的信号进行计数。
具体的,边沿同步检测也即上升沿和下降沿的检测,本实施例中控制边沿同步检测单元检测clk1和clk2两个时钟的有效时钟沿即上升沿是否对齐,边沿同步检测单元的使用原理是采用频率较快的时钟clk2的有效时钟沿去采集频率较慢的时钟clk1的当前值,也即使用clk2去采集clk1的电平值,随着clk2的有效时钟沿的前移,边沿同步检测单元会周期性的输出数量相等的0和1的值,所输出的每段0和1的数量为t1/2/(t1-t2),而在两个时钟的有效时钟沿对齐时,边沿同步检测单元的输出由1跳变为0,也即由高电平翻转到低电平,而输出一个下降沿的脉冲,此时两个时钟的相位差为t1-t2。
可选的,边沿同步检测单元包括:第三d触发器、第四d触发器以及第五d触发器,第三d触发器和第四d触发器分别由第一时钟和第二时钟驱动;通过第五d触发器分别接收第三d触发器和第四d触发器输出的信号,并在第五d触发器随着第二时钟的有效时钟沿的前移,根据所接收到的信号控制自身所输出的信号由高电平信号翻转至低电平信号时,确定当前时刻为第一时钟和第二时钟的有效时钟沿对齐的时刻。
具体的,本实施例中的边沿同步检测单元包括三个d触发器,第三d触发器ff3和第四d触发器ff4的q端口均通过反相器接回d端口,第五d触发器ff5的d端口和clk端口分别接入第三d触发器ff3和第四d触发器ff4的q端口。其中,ff3和ff4分别使用clk1和clk2驱动,反相器作为分频器使用,这是为了能够将时钟树的时钟信号接入d触发器的d端口。ff5的clk端口接ff4的q端口,d端口接ff3的q端口,即ff5是使用分频后的时钟clk2来采集时钟clk1的信号,应当理解的是,clk1和clk2的有效时钟沿的对齐时刻和分频后的时钟clk1’和clk2’的有效时钟沿的对齐时刻是相同的。图2为本实施例提供的边沿同步检测单元的波形模拟图,clk1’和clk2’是clk1和clk2分频后的时钟,由图2所示可知,随着时间推移,clk1和clk2的相移不断收紧,ff5会周期性的输出个数相等的0、1信号,当输出由1跳变为0的时刻,即可认为此时两个时钟的有效时钟沿是对齐的,由于两个时钟周期相差较小,因此该边沿同步检测装置有比较高的精度。
另外,每经过一个周期,clk1和clk2之间的相位差会增加t1-t2,从而随着时间的推移,clk1和clk2会有一个步进为t1-t2的相位移动,那么,随着clk1和clk2之间的相位不断收紧,一定会存在某个时刻,clk2所驱动的第二d触发器将会采集不到clk1所驱动的第一d触发器所输出的信号。
可选的,信号接收确定单元包括:异或门以及接收异或门输出的信号的第六d触发器,第六d触发器被第二时钟驱动;通过异或门从第二d触发器接收第二d触发器的d端口信号和q端口信号,并在第六d触发器接收到异或门输出的高电平信号以及被第二时钟触发而输出高电平信号时,确定当前时刻为第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻。
具体的,异或门分别接入第二d触发器的d端口和q端口,异或门被用于测试第二d触发器ff2的d端口的信号和q端口的信号是否一致,如果是一致的,那么异或门输出低电平信号,反之,异或门会输出高电平信号。此外,为了避免直接根据异或门所输出的信号进行ff2接收不到ff1输出的信号的时刻的判断时出现歧义,本实施例中的第六d触发器ff6也由clk2驱动,用来接收置于前的异或门的输出信号,并在接收到异或门输出的高电平信号以及接收到clk2输出的时钟信号之时,ff6才被触发输出高电平信号,用于表征ff2此时将会采集不到ff1所输出的信号,反之,在ff6输出低电平信号之时,表明此时ff2仍可以正确采集到ff1所输出的信号。由此可知,当ff2的d端口和q端口的信号不同时,即此时ff1输出的信号刚好到达了ff2的d端口,但还不能够被ff2采集到,则由异或门产生一个高电平信号,再经过clk2的一个时钟周期,由ff6的q端口输出一个高电平脉冲。
应当说明的是,本实施例中引入了一个计数器,记录从两个时钟的有效时钟沿对齐的时刻开始,到ff6输出一个高电平脉冲截止,对这期间的clk2信号进行计数,clk2每经过一个周期,那么可以确定clk1和clk2之间的相移收紧t1-t2,计数器所计得的数目即为这期间的相移数目。
s103、根据由计数器的计数所确定的第一时钟与第二时钟的相位差以及t1,确定第一d触发器与第二d触发器之间的待测路径的待测传输延时。
具体的,假定当ff6输出一个高电平脉冲时计数器所输出的计数为n,而由于ff6输出的是ff2上一个周期的信号,从而实际相移数目为n-1,即实际上经过了n-1次相移,而由于在clk1和clk2两个时钟的有效时钟沿对齐的时刻,两者即有一个相位差,所以根据实际相移数目以及两者之间的步进t1-t2,可以确定两个时钟在该时间区间内的总的相位差为n*(t1-t2),继而可以计算得出ff1到ff2的待测路径的传输延时为t1-n*(t1-t2)。
应当说明的是,在一种优选的实施方式中,将本实施例中的第一时钟、第二时钟、第一d触发器、第二d触发器、计数器、边沿检测单元以及信号接收确定单元集成在单块fpga芯片中,也即使用fpga芯片内部的可用逻辑资源即可实现待测电路的传输延时,实现简单,并可节约资源。
可选的,控制计数器分别在第一d触发器与第二d触发器之间的待测路径两端所接入的开关断开和闭合的情况下,以边沿同步检测单元所确定的第一时钟和第二时钟的有效时钟沿对齐的时刻为计数起始时刻,以及以信号接收确定单元所确定的第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻为计数终止时刻,对第二时钟输出的信号进行计数,而得到第一计数和第二计数;根据由第一计数所确定的第一时钟与第二时钟的第一相位差以及t1,确定第一d触发器与第二d触发器之间的第一传输延时,以及根据由第二计数所确定的第一时钟与第二时钟的第二相位差以及t1,确定第一d触发器与第二d触发器之间的第二传输延时;将第一传输延时与第二传输延时的差值确定为待测路径的待测传输延时。
具体的,在一些实施方式中,还可以在待测路径的两端接入一个开关,通过开关的断开和闭合可以模拟出两种不同的测试环境,从而分别在开关断开和闭合两种情况下来分别进行在计数时间区间内的计数,从而分别得到在两种情况下的两个相位差,进而来分别得到两种情况下的传输延时,最后即可将两种不同情况下的传输延时的差值确定为待测路径的传输延时大小,从而可以进一步提高待测路径的传输延时的测试准确性。
本发明提供了一种基于fpga的传输延时测试方法,通过两个周期不同的时钟模拟不断收紧的两个时钟相位,并根据两个时钟有效时钟沿对齐至快时钟采集不到慢时钟信号的时间区间内两个时钟的相位差,以及慢时钟的周期来确定待测电路的传输延时,有效提升了传输延时测试的精确性,使得用户在fpga应用时能够合理减少设计余量,可充分发挥fpga芯片的使用性能。
实施例二:
为了更好的理解本发明,本实施例以一个具体的示例对基于fpga的传输延时测试方法进行说明,图3为本发明第二实施例提供的基于fpga的传输延时测试方法的细化流程图,该传输延时测试方法包括:
s301、通过第一时钟驱动第一d触发器进行低电平信号和高电平信号的交替输出,并通过第二时钟驱动第二d触发器进行第一d触发器所输出的信号的接收;第一时钟的周期为t1,第二时钟的周期为t2,t1大于t2。
本实施例中输入两个周期不同的时钟,这两个时钟的周期之差的绝对值也即本实施例中的传输延时测试精度,其中第一时钟clk1的周期t1较大,为慢时钟,而第二时钟clk2的周期t2相对较小,为快时钟,其中,大概t1-t2的绝对值足够小时,可以达到很高的传输延时测试精度。例如在本实施例中将clk1和clk2的周期分别设为100.00ns和99.99ns,测试精度为0.01ns,本实施例中的clk1和clk2同时输出时钟信号,两者之间的相位相差t1-t2,可知时钟移相的步进大小是0.01ns,从而通过clk1和clk2模拟出两个不断收紧的时钟相位。
s302、控制第一d触发器与第二d触发器之间的待测路径两端所接入的开关断开,并执行s304。
s303、控制第一d触发器与第二d触发器之间的待测路径两端所接入的开关闭合,并执行s304。
本实施例中在待测路径的两端接入有一个开关,通过开关的断开和闭合可以模拟出两种不同的测试环境,分别在开关断开和闭合两种情况下来执行后续的计数流程,可以进一步提高待测路径的传输延时的测试准确性。
s304、通过第五d触发器分别接收第三d触发器和第四d触发器输出的信号,并在第五d触发器随着第二时钟的有效时钟沿的前移,根据所接收到的信号控制自身所输出的信号由高电平信号翻转至低电平信号时,确定当前时刻为第一时钟和第二时钟的有效时钟沿对齐的时刻;第三d触发器和第四d触发器分别由第一时钟和第二时钟驱动。
s305、控制计数器以第一时钟和第二时钟的有效时钟沿对齐的时刻为计数起始时刻,开始对第二时钟输出的信号进行计数。
本实施例中的第三d触发器ff3、第四d触发器ff4和第五d触发器ff5组成的边沿同步检测单元用于检测clk1和clk2两个时钟的有效时钟沿是否对齐,所采用的方式是使用clk2去采集clk1的电平值,随着clk2的有效时钟沿的前移,ff5会周期性的输出数量相等的0和1的值,当输出由1跳变为0的时刻,即可认为此时两个时钟的有效时钟沿是对齐的,此时即为计数起始时刻。
s306、通过异或门从第二d触发器接收第二d触发器的d端口信号和q端口信号,并在第六d触发器接收到异或门输出的高电平信号以及被第二时钟触发而输出高电平信号时,确定当前时刻为第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻;异或门输出的信号由第六d触发器接收,第六d触发器被第二时钟驱动。
s307、控制计数器以第二d触发器持续接收到第一d触发器发送过来的信号终止时的时刻为计数终止时刻,停止对第二时钟输出的信号进行计数,而分别得到在开关断开的情况下的第一计数,以及在开关闭合的情况下的第二计数。
每经过一个周期,clk1和clk2之间的相位差会增加t1-t2,从而随着时间的推移,clk1和clk2会有一个步进为t1-t2的相位移动,那么,随着clk1和clk2之间的相位不断收紧,一定会存在某个时刻,clk2所驱动的第二d触发器ff2将会采集不到clk1所驱动的第一d触发器所ff1输出的信号。本实施例中通过异或门分别接入ff2的d端口和q端口,来判断ff2的d端口的信号和q端口的信号是否一致,若是,异或门输出低电平信号,若否,异或门输出高电平信号。本实施例中的第六d触发器ff6也由clk2驱动,在接收到异或门输出的高电平信号以及接收到clk2输出的时钟信号之时,ff6才被触发输出高电平信号,用于表征ff2此时将会采集不到ff1所输出的信号,此时即为计数终止时刻。
假定在开关断开的情况下,当ff6输出高电平信号时,计数器的计数为n1,在开关断开的情况下,当ff6输出高电平信号时,计数器的计数为n2,由于ff6输出的是ff2上一个周期的信号,从而实际相移数目分别为n1-1和n2-1,然而在计数起始时刻两个时钟之间即有一个相位差,所以总的相移差分别为n1*(t1-t2)和n2*(t1-t2),继续承接前述举例,也即分别为0.01*n1和0.01*n2。
s308、根据由第一计数所确定的第一时钟与第二时钟的第一相位差以及t1,确定第一d触发器与第二d触发器之间的第一传输延时,以及根据由第二计数所确定的第一时钟与第二时钟的第二相位差以及t1,确定第一d触发器与第二d触发器之间的第二传输延时。
s309、将第一传输延时与第二传输延时的差值确定为待测路径的待测传输延时。
继续承接前述举例,也即在开关断开的情况下的第一传输延时为100-0.01*n1,而在开关闭合的情况下的第二传输延时为100-0.01*n2,从而待测路径的待测传输延时则为0.01*(n2-n1)的绝对值。
本发明提供了一种基于fpga的传输延时测试方法,通过两个周期不同的时钟模拟不断收紧的两个时钟相位,并根据两个时钟有效时钟沿对齐至快时钟采集不到慢时钟信号的时间区间内两个时钟的相位差,以及慢时钟的周期来确定待测电路的传输延时,有效提升了传输延时测试的精确性,使得用户在fpga应用时能够合理减少设计余量,可充分发挥fpga芯片的使用性能。
实施例三:
本实施例提供了一种基于fpga的传输延时测试装置,具体请参见图4,包括:第一时钟41、第二时钟42、第一d触发器43、第二d触发器44、计数器45、边沿同步检测单元46以及信号接收确定单元47,第一d触发器43和第二d触发器44之间接入待测路径48;第一d触发器43的q端口通过反相器接回d端口,第一时钟41的周期为t1,第二时钟42的周期为t2,t1大于t2;第一时钟41用于驱动第一d触发器43进行低电平信号和高电平信号的交替输出;第二时钟42用于驱动第二d触发器44进行第一d触发器43所输出的信号的接收;边沿同步检测单元46用于确定第一时钟41和第二时钟42的有效时钟沿对齐的时刻;信号接收确定单元47用于确定第二d触发器44持续接收到第一d触发器43发送过来的信号终止时的时刻;计数器45用于以边沿同步检测单元46所确定的时刻为计数起始时刻,以及以信号接收确定单元47所确定的时刻为计数终止时刻,对第二时钟42输出的信号进行计数;计数器45的计数用于确定第一时钟41与第二时钟42的相位差,相位差以及t1用于确定待测路径48的待测传输延时。
具体的,本实施例中输入两个周期不同的时钟,这两个时钟的周期之差的绝对值也即本实施例中的传输延时测试精度,其中第一时钟41的周期t1较大,为慢时钟,而第二时钟42的周期t2相对较小,为快时钟,其中,大概t1-t2的绝对值足够小时,可以达到很高的传输延时测试精度。本实施例中的第一时钟41与第二时钟42同时输出时钟信号,两者之间的相位相差t1-t2,从而通过第一时钟41与第二时钟42模拟出两个不断收紧的时钟相位。应当说明的是,本实施例中的第一d触发器43的q端口通过一个反相器接回该触发器的d端口,这样即可实现第一d触发器43交替输出0、1信号,也即低电平信号和高电平信号。另外,本实施例中在第一d触发器43和第二d触发器44中所接入的为待测路径48,第一d触发器43的q端口所输出的信号经过一段延时而达到第二d触发器44的d端口而被接收,该段路径中信号的传输延时即为待测传输延时(propagationdelay)。
此外,本实施例中控制边沿同步检测单元46检测第一时钟41与第二时钟42两个时钟的有效时钟沿即上升沿是否对齐,边沿同步检测单元46的使用原理是采用频率较快的时钟第二时钟42的有效时钟沿去采集频率较慢的时钟第一时钟41的当前值,也即使用第二时钟42去采集第一时钟41的电平值,随着第二时钟42的有效时钟沿的前移,边沿同步检测单元46会周期性的输出数量相等的0和1的值,而在两个时钟的有效时钟沿对齐时,边沿同步检测单元46的输出由1跳变为0,也即由高电平翻转到低电平,而输出一个下降沿的脉冲,而将此时刻作为检测相移数目的起始时刻。并且,每经过一个周期,第一时钟41与第二时钟42之间的相位差会增加t1-t2,从而随着时间的推移,第一时钟41与第二时钟42会有一个步进为t1-t2的相位移动,那么,随着第一时钟41与第二时钟42之间的相位不断收紧,一定会存在某个时刻,第二时钟42所驱动的第二d触发器44将会采集不到第一时钟41所驱动的第一d触发器43所输出的信号,从而由信号接收确定单元47来对此第二d触发器44的信号接收行为进行检测,并将所确定的第二d触发器44采集不到第一d触发器43所输出的信号的时刻作为检测相移数目的终止时刻。
还应当说明的是,本实施例中根据由计数器45的计数所确定的第一时钟41与第二时钟42的相位差以及t1,确定第一d触发器43与第二d触发器44之间的待测路径48的待测传输延时。若计数器的计数为n,则待测传输延时则为t1-n*(t1-t2)。
应当说明的是,在一种优选的实施方式中,将本实施例中的第一时钟41、第二时钟42、第一d触发器43、第二d触发器44、计数器45、边沿同步检测单元46以及信号接收确定单元47集成在单块fpga芯片中,也即使用fpga芯片内部的可用逻辑资源即可实现待测电路48的传输延时,实现简单,并可节约资源。
在本实施例中一种优选的示例中,请参阅图5,图5为本实施例提供的边沿同步检测单元的结构示意图,边沿同步检测单元46包括:第三d触发器461、第四d触发器462以及第五d触发器463,第三d触发器461和第四d触发器462分别由第一时钟41和第二时钟42驱动;第三d触发器461和第四d触发器462的q端口均通过反相器接回d端口,第五d触发器463的d端口和clk端口分别接入第三d触发器461和第四d触发器462的q端口。其中,第五d触发器463用于分别接收第三d触发器461和第四d触发器462输出的信号,并随着第二时钟42的有效时钟沿的前移根据所接收到的信号控制自身所输出的信号;第五d触发器463所输出的信号由高电平信号翻转至低电平信号的时刻用于指示第一时钟41和第二时钟42的有效时钟沿对齐的时刻。
在本实施例中一种优选的示例中,请继续参阅图4,信号接收确定单元47包括:异或门471以及接收异或门471输出的信号的第六d触发器472,第六d触发器472被第二时钟41驱动;异或门471分别接入第二d触发器44的d端口和q端口。其中,异或门471用于从第二d触发器44接收第二d触发器44的d端口信号和q端口信号,并在d端口信号和q端口信号不同时输出高电平信号;第六d触发器472用于在接收到异或门471输出的高电平信号以及被第二时钟42触发而输出高电平信号;第六d触发器472输出高电平信号的时刻用于指示第二d触发器44持续接收到第一d触发器43发送过来的信号终止时的时刻。
在本实施例中一种优选的示例中,请继续参阅图4,本实施例中的第一d触发器43与第二d触发器44之间的待测路径48两端还接入有开关49,从而通过开关49的断开和闭合可以模拟出两种不同的测试环境。而计数器45则用于分别在开关49断开和闭合的情况下,以边沿同步检测单元46所确定的时刻为计数起始时刻,以及以信号接收确定单元47所确定的时刻为计数终止时刻,对第二时钟42输出的信号进行计数,而得到第一计数和第二计数;第一计数和第二计数分别用于确定第一时钟41与第二时钟42的第一相位差和第二相位差,第一相位差和第二相位差分别用于与t1确定第一d触发器43与第二d触发器44之间的第一传输延时和第二传输延时,第一传输延时与第二传输延时的差值为待测路径48的待测传输延时。
如图6所示为本实施例提供的波形示意图,由图中可以看出,当边沿同步检测单元中的第五d触发器的q端口输出由高电平翻转到低电平时,第一时钟和第二时钟的有效时钟沿是对齐的,分别对应图中的t1、t2,此时这两个时钟的相位差为t1-t2时刻。t4对应的时刻是由第一d触发器发射信号,经过待测电路,恰好到达第二d触发器的时刻,此时第二d触发器的d端口和q端口的信号不同,经过异或门会产生一个高电平信号,再经过第二时钟的一个时钟周期,由第六d触发器的q端口输出高电平信号,该时刻对应于图中的t3时刻。图中n表示通过计数器对t1和t3时刻之间的第二时钟42的输出信号进行计数,所计得的数目。
本发明提供了一种基于fpga的传输延时测试装置,通过两个周期不同的时钟模拟不断收紧的两个时钟相位,并由边沿同步检测单元确定两个时钟的有效时钟沿对齐的时刻,以及由信号接收确定单元确定快时钟采集不到慢时钟信号的时刻,然后根据由计数器在两个时钟有效时钟沿对齐至快时钟采集不到慢时钟信号的时间区间内所计得的数来计算两个时钟的相位差,再由计算得到的相位差结合慢时钟的周期来确定待测电路的传输延时,有效提升了传输延时测试的精确性,使得用户在fpga应用时能够合理减少设计余量,可充分发挥fpga芯片的使用性能。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。