System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及spi通信,尤其涉及一种自动获取spi延迟线校准值的方法和系统。
技术介绍
1、spi总线在传输过程中,线路和外部设备会引入信号延迟,从而使数据信号相对于时钟信号产生相位差,解决这个相位差通常在ip端引入一个延迟线delay line,来调整相位以校准信号。
2、spi总线delay line值的选取受数据延迟和时钟延迟的影响,其延迟受芯片内部和芯片外部两方面影响。
3、芯片内的延迟主要是时钟sclk输出到接口pad的延迟和数据线si/so/wpn/hold从pad到采样寄存器d端的延迟,该延迟在ff/tt/ss三种corner下是不同的。
4、芯片外部的延迟有两个:时钟线sclk和数据线si/so的走线延迟和外部flash芯片的数据输出延迟。
5、delay line范围中的最小值(delay_line_min)和最大值(delay_line_max)是随着不同传输速率而变化的,其判定标准如下:
6、delay_line_min值为内部采样时钟能采样到数据线上当前拍数据的最小值,该值受数据延迟影响比较大;
7、delay_line_max值受两方面限制:一方面delay line对内部采样时钟的推迟需要保证不能让其采样到下一拍数据,对应的该delay line的极限值记为smp_max1,另一方面delay line对内部采样时钟的推迟还需要保证该采样寄存器的输出可以被下一级寄存器正确采样,即满足下一级采样的建立时间,对应的该delay li
8、举例说明,假如有两种sclk频率值分别为31.25mhz和62.5mhz,借助后端给出的ff/tt/ss corner的pt_session_rpt对delay line值进行估算,结果如下:
9、表1delay line估算
10、
11、通常会在数字设计阶段给一些假定条件,然后根据估算表取合适的delay line中值。
12、可现实情况是,一个芯片会搭配不同的电路板,它们的信号线长度,spi flash信号延迟,通信频率都不尽相同,delay line最大,最小值会受到频率和芯片外围电路以及flash输出延迟等因素影响,数字设计阶段估计的delay line值可能因为外围电路,sclk通讯频率,或者flash芯片输出延迟的变化而超出最大值、最小值的安全范围,一旦估算值超出安全范围,将会导致采样数据不准确。所以很多芯片厂家要求spi flash电路要严格参考官方设计电路,这极大的限制了spi flash电路设计的弹性,限制了同一电路应用频率的宽泛性,这一限制因素在高频率电路设计时尤其明显。
技术实现思路
1、基于上述记载,本专利技术提供一种自动获取spi延迟线校准值的方法和系统,旨在解决现有技术中延迟线校准值设计可能不准确的技术问题。
2、一种自动获取spi延迟线校准值的方法,包括:
3、步骤a1,启动时加载初始的延迟线尝试值;
4、步骤a2,第一设备使用延迟线尝试值与第二设备交互,基于交互结果判断延迟线尝试值是否有效;
5、若否,执行步骤a3;
6、若是,执行步骤a4;
7、步骤a3,更新延迟线尝试值之后使用更新的延迟线尝试值继续执行步骤a2;
8、步骤a4,基于有效的延迟线尝试值确定延迟线的最大值和最小值;
9、步骤a5,基于延迟线的最大值和最小值确定延迟线校准值用于对spi延迟校准。
10、进一步的,步骤a1中,启动时还加载步进总步数以及第一设备与第二设备交互的通讯频率;
11、步骤a1中,加载通讯频率后还执行:
12、步骤a11,根据通讯频率计算时钟周期;
13、步骤a12,根据时钟周期计算得到校准步进周期;
14、步骤a3中更新延迟线尝试值的过程包括:
15、步骤a31,基于步进总步数,使用循环二分法计算出步进步数;
16、步骤a32,基于校准步进周期以及使用循环二分法计算出的步进步数更新延迟线尝试值。
17、进一步的,在步骤a32中,通过如下公式更新延迟线尝试值:
18、dll_try=dll_base+t2*step_count;
19、其中,dll_try为更新后的延迟线尝试值,dll_base为更新前的延迟线尝试值,t2为校准步进周期,step_count为使用循环二分法计算出的步进步数。
20、进一步的,步骤a12中,根据时钟周期计算得到校准步进周期的计算公式为:
21、t2=t1/factor1;
22、其中,t2为校准步进周期,t1为时钟周期,factor1为步进总步数。
23、进一步的,步骤a2包括:
24、步骤a21,第一设备使用延迟线尝试值对第二设备进行一次写操作和读操作;
25、步骤a22,将写操作写入的数据和读操作读取到的数据进行比对,如果数据一致则认为延迟线尝试值有效,如果数据不一致则认为延迟线尝试值无效。
26、进一步的,步骤a4中确定延迟线的最大值的过程包括:
27、步骤a41a,对有效的延迟线尝试值增加一个校准步进周期,得到新的延迟线尝试值;
28、步骤a42a,第一设备使用步骤a41a中新的延迟线尝试值与第二设备交互,基于交互结果判断延迟线尝试值是否有效:
29、若有效,继续执行步骤a41a;
30、若无效,执行步骤a43a;
31、步骤a43a,将无效的延迟线尝试值之前的一个有效的延迟线尝试值作为延迟线的最大值。
32、进一步的,步骤a4中确定延迟线的最小值的过程包括:
33、步骤a41b,对有效的延迟线尝试值减少一个校准步进周期,得到新的延迟线尝试值;
34、步骤a42b,第一设备使用步骤a41b中新的延迟线尝试值与第二设备交互,基于交互结果判断延迟线尝试值是否有效:
35、若有效,继续执行步骤a41b;
36、若无效,执行步骤a43b;
37、步骤a43b,将无效的延迟线尝试值之前的一个有效的延迟线尝试值作为延迟线的最小值。
38、一种自动获取spi延迟线校准值的系统,用于实现前述的一种自动获取spi延迟线校准值的方法,包括第一设备和第二设备,第一设备的接口连接第二设备,第一设备的接口和第一设备的ip核之间连接有校准模块;
39、校准模块用于:
40、启动时加载初始的延迟线尝试值,并将延迟线尝试值发送给ip核;
41、ip核用于:每收到一本文档来自技高网...
【技术保护点】
1.一种自动获取SPI延迟线校准值的方法,其特征在于,包括:
2.如权利要求1所述的一种自动获取SPI延迟线校准值的方法,其特征在于,所述步骤A1中,启动时还加载步进总步数以及第一设备与第二设备交互的通讯频率;
3.如权利要求2所述的一种自动获取SPI延迟线校准值的方法,其特征在于,在所述步骤A32中,通过如下公式更新所述延迟线尝试值:
4.如权利要求2所述的一种自动获取SPI延迟线校准值的方法,其特征在于,所述步骤A12中,根据所述时钟周期计算得到校准步进周期的计算公式为:
5.如权利要求3所述的一种自动获取SPI延迟线校准值的方法,其特征在于,所述步骤A2包括:
6.如权利要求3所述的一种自动获取SPI延迟线校准值的方法,其特征在于,所述步骤A4中确定所述延迟线的最大值的过程包括:
7.如权利要求6所述的一种自动获取SPI延迟线校准值的方法,其特征在于,所述步骤A4中确定所述延迟线的最小值的过程包括:
8.一种自动获取SPI延迟线校准值的系统,用于实现如权利要求1-7任意一项所述的一种自动获取
9.如权利要求8所述的一种自动获取SPI延迟线校准值的系统,其特征在于,所述校准模块用于:
10.如权利要求9所述的一种自动获取SPI延迟线校准值的系统,其特征在于,所述IP核用于:每次收到所述校准模块给的所述延迟线尝试值后,使用所述延迟线尝试值对所述第二设备进行一次写操作和读操作,将所述写操作写入的数据和读操作读取到的数据发送给所述校准模块;
...【技术特征摘要】
1.一种自动获取spi延迟线校准值的方法,其特征在于,包括:
2.如权利要求1所述的一种自动获取spi延迟线校准值的方法,其特征在于,所述步骤a1中,启动时还加载步进总步数以及第一设备与第二设备交互的通讯频率;
3.如权利要求2所述的一种自动获取spi延迟线校准值的方法,其特征在于,在所述步骤a32中,通过如下公式更新所述延迟线尝试值:
4.如权利要求2所述的一种自动获取spi延迟线校准值的方法,其特征在于,所述步骤a12中,根据所述时钟周期计算得到校准步进周期的计算公式为:
5.如权利要求3所述的一种自动获取spi延迟线校准值的方法,其特征在于,所述步骤a2包括:
6.如权利要求3所述的一种自动获取spi延迟线校准值的方法,其特征在于,所述步骤a4中确定所述延迟线的最大值的过程包括:<...
【专利技术属性】
技术研发人员:张彪,
申请(专利权)人:裕太微电子股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。