首页> 中国专利> 在FPGA中实现ZBT读写的时序稳定度的系统及方法

在FPGA中实现ZBT读写的时序稳定度的系统及方法

摘要

本发明公开了在FPGA中实现ZBT读写的时序稳定度的系统及方法,所述系统包括ZBT SRAM读写控制器,ZBT SRAM读写控制器包括:时钟树、主控状态机、全局复位模块、伪随机数产生器、时钟相位调整模块、读写测试模块、ZBT读操作控制器、ZBT写操作控制器及输入输出延时控制器。本发明可以确保ZBT读写时序稳定,FPGA开发工程师可以将主要精力放在产品的功能调试上,而不必再通过费时费力的增量编译、手工布局布线、区域反标注、甚至盲目调整输出时钟相位的方式等技巧实现。

著录项

  • 公开/公告号CN104795091A

    专利类型发明专利

  • 公开/公告日2015-07-22

    原文格式PDF

  • 申请/专利权人 信阳师范学院;王鹏;

    申请/专利号CN201510211568.2

  • 申请日2015-04-29

  • 分类号G11C7/10(20060101);

  • 代理机构北京国智京通知识产权代理有限公司;

  • 代理人王昌贵

  • 地址 464000 河南省信阳市浉河区长安路237号

  • 入库时间 2023-12-18 09:57:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-16

    未缴年费专利权终止 IPC(主分类):G11C7/10 授权公告日:20170503 终止日期:20180429 申请日:20150429

    专利权的终止

  • 2017-05-03

    授权

    授权

  • 2015-08-26

    实质审查的生效 IPC(主分类):G11C7/10 申请日:20150429

    实质审查的生效

  • 2015-07-22

    公开

    公开

说明书

技术领域

本发明属于集成电路领域,具体涉及一种在FPGA中实现ZBT读写的时序稳定度的系统 及方法。

背景技术

FPGA是现场可编程门阵列的英文简称,它内部包含了大量的可编程资源,主要包括查 找表LUT、寄存器、存储器、硬件乘法器、PLL等。FPGA芯片内部的可编程资源可以实现 并行工作,因而具有极其强大的处理能力,其运算能力可达传统CPU的数百倍甚至更高。也 正因此,在许多信号处理平台中,FPGA承担着运算与调度核心的功能,其主要开发手段则 依赖于硬件描述语言(以下简称HDL)。

在许多场合下,由于FPGA片内存储资源有限,必须为其配置大容量外存储器。这其中, 静态存储器SRAM具有功耗低、速度快、无需动态刷新等优点,而ZBT SRAM则是高速SRAM 的最典型产品。它消除了传统SRAM的总线等待周期,在读/写状态下总线利用率均可以达到 100%。目前,单片ZBT SRAM的典型存储容量可达72Mbit,访问速度最高可达250MHz。

当工作频率较低时,在FPGA中实现ZBT读写控制器难度较小,只需要控制数据总线比 地址总线延迟2个时钟周期即可,然而。随着器件工作频率的不断提高,尤其是在频率突破 100MHz以后,时钟周期已缩短至10ns以下,稳定的读写时间窗口大大减少,传统的设计手 段已无法保证设计的稳定性。而FPGA设计中的布局布线延时信息事先根本无法预估,甚至 设计过程中的代码微量更改都会引起时序特性的显著变化进而使ZBT读写操作失败,最终导 致FPGA开发工作返工并严重影响产品开发进度。

发明内容

本发明的目的之一是为解决上述难题,提供一种提高ZBT读写的时序稳定度及工作频率 的在FPGA中实现ZBT读写的时序稳定度的系统及方法。

本发明提供一种在FPGA中实现ZBT读写的时序稳定度的系统,包括ZBT SRAM读写 控制器:所述ZBT SRAM读写控制器外接ZBT SRAM芯片;所述ZBT SRAM读写控制器包 括:时钟树、主控状态机、全局复位模块、伪随机数产生器、时钟相位调整模块、读写测试 模块、ZBT读操作控制器、ZBT写操作控制器及输入输出延时控制器;所述ZBT SRAM芯 片包括第一ZBT SRAM芯片及第二ZBT SRAM芯片;所述输入输出延时控制器包括第一输 入输出延时控制器及第二输入输出延时控制器;所述时钟树连至所述主控状态机、全局复位 模块、伪随机数产生器、时钟相位调整模块、ZBT读操作控制器及ZBT写操作控制器;所述 主控状态机连接所述第一输入输出延时控制器、第二输入输出延时控制器、伪随机数产生器、 读写测试模块及ZBT读操作控制器;所述伪随机数产生器与所述ZBT写操作控制器连接; 所述读写测试模块连接所述ZBT读操作控制器及ZBT写操作控制器;所述第一输入输出延 时控制器用于外接第一ZBT SRAM芯片,第二输入输出延时控制器用于外接第二ZBT SRAM 芯片。

进一步的:

所述时钟树包括第一时钟管理器、第二时钟管理器及第三时钟管理器;

所述第一时钟管理器、第二时钟管理器及第三时钟管理器内部均包括一个锁相环电路 PLL;

外部输入时钟经过缓冲单元后进入第一时钟管理器,并输出4路工作时钟,包括第一输 出时钟、第二输出时钟、第三输出时钟及第四输出时钟;所述第二时钟管理器和第三时钟管 理器的输出相位均可以通过控制端口使其输出时钟相对输入时钟的相位超前或滞后;所述第 一输出时钟经缓冲后直接输出供FPGA内部逻辑使用,所述第四输出时钟用于实现PLL时钟 反馈,所述第二输出时钟及第三输出时钟经过缓冲后分别进入独立的所述第二时钟管理器及 第三时钟管理器;然后再次经过缓冲后输出至FPGA引脚,并经过PCB走线分别送至所述第 一ZBT SRAM芯片及第二ZBT SRAM芯片的CLK端。

进一步的,所述时钟相位调整模块用于调整第二时钟管理器及第三时钟管理器的输出时 钟相位,对外接口信号分别是工作时钟PSCLK、时钟相位调整功能使能信号PSEN、用于代 表是减少还是增加相位步进的PSINCDEC及相位步进调整完成指示信号PSDONE。

进一步的,所述全局复位模块设有相互级联的第一寄存器、第二寄存器及第三寄存器; 所述全局复位模块用于实现复位信号的同步化,然后经过全局走线资源成为所有寄存器的复 位信号。

进一步的,所述伪随机数产生器用于产生ZBT读写测试数据,所述伪随机数产生器包括 基于M序列的伪随机数发生器。

进一步的,所述读写测试模块用于进行读写错误统计,并将测试结果记录至6位宽的2 进制向量err_array的最低位,同时err_array左移一位,然后由所述主控状态机控制所述时钟 相位调整模块进行调整并置ZBT工作时钟至最佳相位;

所述读写测试模块的对外输入接口可用于接收:所述时钟树的工作时钟、所述全局复位 模块的复位信号和所述主控状态机的使能模块;

所述读写测试模块可向所述ZBT写操作控制器输出21比特宽度的伪随机数的信号。

进一步的,所述ZBT读操作控制器用于将外部模块输入的读使能及读地址进行多级寄存, 同时将所述ZBT SRAM芯片输出的数据寄存至FPGA工作时钟域并向外部模块输出;

所述ZBT写操作控制器用于将外部模块输入的写地址、写使能及写数据经所述第一寄存 器寄存一级后再输出至所述ZBT SRAM芯片。

进一步的,所述输入输出延时控制器的工作时钟为200MHz,最大延时量为32个单位步 进,延时量大于4ns。

进一步的,所述主控状态机用于对各个子模块的使能信号,同时接收各子模块的状态指 示信号,并依此决定状态机的跳转。

本发明还提供一种在FPGA中实现ZBT读写的时序稳定度的方法,包括如下步骤:

S1、系统上电后,产生全局复位信号,复位所有寄存器和状态机;

S2、禁用第一ZBT SRAM芯片及第二ZBT SRAM芯片输出使能,置第一ZBT SRAM芯 片及第二ZBT SRAM芯片写使能有效,初始化所述伪随机数产生器的随机种子,并将伪随机 数产生器输出数据连续写入第一ZBT SRAM芯片及第二ZBT SRAM芯片中的每一个地址;

S3、禁用第一ZBT SRAM芯片及第二ZBT SRAM芯片写使能,并置第一ZBT SRAM芯 片及第二ZBT SRAM芯片输出使能有效,开始回读ZBT数据,同时再次初始化伪随机数种 子,将每一个地址回读得到的ZBT数据与伪随机数产生器输出数据比较;

S4、如果所述步骤S3中二者比较数据不完全相同,证明读写ZBT SRAM中发生了时序 违反情况进而导致读写错误,由时钟相位调整模块对ZBT工作时钟进行相位调整,每次相位 调整步进约10~20度;

S5、如果所属步骤S3中二者比较数据完全相同,证明上一轮ZBT读写时序正常,继续 进行相位调整,并继续测试读写是否有误,在连续6次以上调整ZBT工作时钟相位均读写无 误时,证实已经找出覆盖整个合法时序裕量窗口的位置,再将输出时钟相位反相调整3次, 以获得最大的时序裕量;

S6、在时钟相位调整完毕后,即可开始正常的ZBT读写操作。

本发明的有益效果在于,本发明提供的在FPGA中实现ZBT读写的时序稳定度的系统及 方法利用M序列发生器构建伪随机数发生器,并以此为测试数据源,为控制器增加了随机读 写测试功能;使能了FPGA内部时钟管理模块的动态相位高速功能,通过遍历所有相位的方 式,找出最佳的数据采样时刻,进而保证了ZBT读写时序的稳定性,而且不再受代码调试、 修改、以及高低温变化的影响,总可以确保数据读写正确;为通过施加合理的OFFSET约束 控制IOB引脚延时,并通过IODELAY高级可编程资源进一步补偿各引脚的延时分布,达到 了所有信号延时分布基本一致的良好效果。

本发明可以确保ZBT读写时序稳定,FPGA开发工程师可以将主要精力放在产品的功能 调试上,而不必再通过费时费力的增量编译、手工布局布线、区域反标注、甚至盲目调整输 出时钟相位的方式等技巧实现。

附图说明

图1所示为本发明在FPGA中实现ZBT读写的时序稳定度的系统的模块图。

图2所示为本发明中时钟树结构图。

图3所示为本发明中时钟相位调整模块连接关系图。

图4所示为本发明中全局复位模块结构图。

具体实施方式

下文将结合具体附图详细描述本发明具体实施例。应当注意的是,下述实施例中描述的 技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的 技术效果。

如图1所示,本发明提供一种在FPGA中实现ZBT读写的时序稳定度的系统,包括ZBT  SRAM读写控制器:ZBT SRAM读写控制器外接ZBT SRAM芯片;ZBT SRAM读写控制器 包括:时钟树1、主控状态机2、全局复位模块3、伪随机数产生器4、时钟相位调整模块5、 读写测试模块6、ZBT读操作控制器7、ZBT写操作控制器8及输入输出延时控制器;ZBT  SRAM芯片包括第一ZBT SRAM芯片11及第二ZBT SRAM芯片12;输入输出延时控制器 包括第一输入输出延时控制器9及第二输入输出延时控制器10;时钟树1连至主控状态机2、 全局复位模块3、伪随机数产生器4、时钟相位调整模块5、ZBT读操作控制器7及ZBT写 操作控制器8;主控状态机2连接第一输入输出延时控制器9、第二输入输出延时控制器10、 伪随机数产生器4、读写测试模块6及ZBT读操作控制器7;伪随机数产生器4与ZBT写操 作控制器8连接;读写测试模块6连接ZBT读操作控制器7及ZBT写操作控制器8;第一输 入输出延时控制器9用于外接第一ZBT SRAM芯片11,第二输入输出延时控制器10用于外 接第二ZBT SRAM芯片12。

如图2所示,时钟树1包括第一时钟管理器13、第二时钟管理器14及第三时钟管理器 15;

第一时钟管理器13、第二时钟管理器14及第三时钟管理器15内部均包括一个锁相环电 路PLL;

外部输入时钟经过缓冲单元后进入第一时钟管理器13,并输出4路工作时钟,包括第一 输出时钟、第二输出时钟、第三输出时钟及第四输出时钟;第二时钟管理器14和第三时钟管 理器15的输出相位均具有相位调整功能,可以通过控制端口使其输出时钟相对输入时钟的相 位超前或滞后,可以实现输出时钟的任意相位调整,本发明正是通过该功能达到了无论与ZBT  SRAM接口的控制及总线信号何时变化,总可以通过调整时钟输出相位实现稳定的数据读写 的功能。其中第一输出时钟经缓冲后直接输出供FPGA内部逻辑使用,第四输出时钟用于实 现PLL时钟反馈,第二输出时钟及第三输出时钟经过缓冲后分别进入独立的第二时钟管理器 14及第三时钟管理器15;然后再次经过缓冲后输出至FPGA引脚,并经过PCB走线分别送 至第一ZBT SRAM芯片11及第二ZBT SRAM芯片12的CLK端。

如图3所示,时钟相位调整模块5用于调整第二时钟管理器14及第三时钟管理器15的 输出时钟相位,对外接口信号分别是工作时钟PSCLK、时钟相位调整功能使能信号PSEN、 用于代表是减少还是增加相位步进的PSINCDEC及相位步进调整完成指示信号PSDONE。

目前主流FPGA器件的时钟管理模块动态相位调整功能的调整步进可达其内核PLL周期 的1/56,而PLL周期一般在1ns左右,因此单次动态相位调整对应的时间延迟可控制在20ps 以下。如此高的相位调整精度已大大超过系统需要。因此可以通过多次置PSEN信号有效的 方式增加调整步进至约10~20度即可满足需要。

复位信号用于在系统上电时将所有模块的寄存器和状态机复位至确知状态,由于复位信 号来源于外部端口输入,对FPGA内部工作时钟是一个典型的异步信号,用于实现复位信号 的同步化,如图4所示,全局复位模块3设有相互级联的第一寄存器16、第二寄存器17及 第三寄存器18;然后经过全局走线资源成为所有寄存器的复位信号,实现了同步复位、同步 释放的效果:RST为输入信号,RST_D1~RST_D3为经过D寄存器同步后的信号,其中RST_D3 已经经过了3级寄存器,使亚稳态的概率降低至可忽略不计,因此,该信号可用作可靠的全 局复位信号。而且,采用同步复位可比异步复位策略使综合后电路的最高工作频率得到改善, 静态时序分析效率也大为提高。

进一步的,本发明采用了基于M序列的伪随机数发生器,仅使用32个寄存器及一系列 反馈线,即可生成循环长度高达2^32-1的伪随机数,循环长度已超过目前市场上容量最大的 ZBT SRAM芯片CY7C1470的存储深度。此外,该产生器的随机种子可以动态变化以得到更 好的随机特性。

进一步的,读写测试模块6则用于进行读写错误统计,在读写测试阶段,每次开始写ZBT  SRAM芯片及回读数据时,均需对随机种子进行初始化,然后开始连续地址读写测试,先写 入长度达2^21-1的伪随机数,然后再逐一回读。只有当全部写入数据和全部回读数据完全相 同时才认为当前读写操作成功。并将测试结果(0代表无误,1代表有错误)记录至6位宽的 2进制向量err_array的最低位,同时err_array左移一位,该向量初始值为全1,因此只有在 连续6次检测到读写成功后,err_array变量才会变成零值,这代表已经找出最佳读写时序窗 口,然后由主控状态机2控制时钟相位调整模块5反相调整3个步进即可置ZBT工作时钟为 最佳相位。

在正常工作阶段,伪随机数产生器4及读写测试模块6模块可处于禁用阶段以降低动态 功耗。

该模块的对外输入接口信号主要有:

工作时钟:来源于时钟树1资源;

复位信号:来源于全局复位模块3;

使能模块:来源于主控状态机2;

对外输出信号则是21比特宽度的伪随机数,送至ZBT写操作控制器8。

进一步的,ZBT读操作控制器7用于将外部模块输入的读使能及读地址进行多级寄存, 同时将ZBT SRAM芯片输出的数据寄存至FPGA工作时钟域并向外部模块输出;

该模块对外接口信号主要有:

工作时钟:输入信号,来源于时钟树1资源;

复位信号:输入信号,来源于全局复位模块3;

ZBT SRAM芯片请求读地址总线:输入信号,来源于主控模块;

ZBT数据总线:输出信号,该信号为经过ZBT读操作控制器7同步化后的数据总线,可 直接供其它模块使用。

ZBT SRAM芯片数据总线:输入信号,来源于ZBT SRAM芯片;

ZBT SRAM芯片地址总线:输出信号,送至ZBT SRAM芯片。

ZBT写操作控制器8用于将外部模块输入的写地址、写使能及写数据经第一寄存器16 寄存一级后再输出至ZBT SRAM芯片,由于此前的ZBT读写测试功能已经确保ZBT工作时 钟恰好出现在其所有输入数据变化时刻的中间位置,因此不会带来任何时序违反问题。

该模块对外接口信号主要有:

工作时钟:输入信号,来源于时钟树1资源;

复位信号:输入信号,来源于全局复位模块3;

ZBT SRAM芯片请求写地址总线:输入信号,来源于主控模块;

ZBT写数据总线:输入信号,来源于主控模块;

ZBT写数据使能:输入信号,来源于主控模块;

ZBT SRAM芯片数据总线:输出信号,送至ZBT SRAM芯片;

ZBT SRAM芯片地址总线:输出信号,在与ZBT读操作控制器7的地址总线作仲裁后最 终输出送至ZBT SRAM芯片。

进一步的,为本发明采用了FPGA中的高级可编程I/O资源IDELAYCTRL和IODEALY, 其中前者是后者的控制中枢,输入工作时钟可选200MHz或300MHz,后者则用于完成精确 的输入输出延时调整,在200MHz下,延时单位步进为78ps,在300MHz下,延时单位步进 可达52ps,更重要的是,IODEALY是专用于IOB引脚的输入输出延时控制模块,它不占用 任何寄存器及LUT资源,也不会降低输出信号质量,高低温上的延时参数保持不变,十分适 合在高速高频场合下采用。本发明中,IDELAYCTRL工作时钟为200MHz,IODELAY最大 延时量为32个单位步进,因此最大延时量为2.5ns,但事实上,还要考虑到接入IODELAY 带来的额外走线延时(约1~2ns),因此实际上IODELAY延时量可超过4ns,这样的延时控制 已足以补偿由于布局布线造成的IOB输入输出不一致性。

进一步的,主控状态机2是所有其余子模块的控制中枢,它采用了一个复杂的同步状态 机实现,共分成以下10个状态:

IDLE:系统复位及上电后的初始状态,解除复位后即自动跳至INIT_REG状态;

INIT_REG:该状态用于初始化伪随机数产生种子,初始化完成后即跳至WRITE_ZBT状 态;

WRITE_ZBT:用于完成对ZBT所有地址的伪随机数据写入,写入完毕后跳至CLR_CNT 状态;

CLR_CNT:用于清除ZBT读写计数器值,为回读作准备,清零完成后跳至 READBACK_ZBT状态,同时该状态再次初始化伪随机数产生种子;

READBACK_ZBT:用于回读所有地址的ZBT数据,并与伪随机数产生器4的输出数据 进行比较,统计是否完全一致,统计完成后进入PS_MODIFY状态;

PS_MODIFY:该状态由时钟相位调整模块5对第二时钟管理器14和第三时钟管理器15 的输出时钟相位进行调整,每次相位调整步进10~20度,然后跳转至WAIT_PSDONE状态;

WAIT_PSDONE:在该状态,等待PSDONE信号置高,以表明时钟管理器2和3输出时 钟相位调整已经完毕,然后检测最近6次的错误统计结果是否均无误,若是则进入 SET_OPT_VALUE状态,否则转至INIT_REG状态,继续新的时钟相位下的读写测试;

SET_OPT_VALUE:在该状态,将由时钟相位调整模块5对第二时钟管理器14和第三时 钟管理器15的输出时钟相位进行反向调整3次,以使ZBT工作时钟的上升沿出现在总线及 控制信号变化的中间时刻,从而达到最大的时序裕量,调整完毕后跳至WAIT_PSDONE2状 态;

WAIT_PSDONE:同样地,在该状态,等待PSDONE信号置高,以表明第二时钟管理器 14和第三时钟管理器15输出时钟相位调整已经完毕,调整完毕后,判断当前是否是第一次 进入该状态,若是代表此时第一ZBT SRAM芯片11时序调整已经完成,但第二ZBT SRAM芯 片12还未进行,因此需要跳转INIT_REG状态,对第二ZBT SRAM芯片12重复第一ZBT SRAM 芯片11调整的所有工作,若已经是第二次进入该状态,则证明所有ZBT SRAM芯片已经调 整完毕,可跳转至INIT_DONE状态;

INIT_DONE:该状态为时序调整完成后的正常工作状态,此时外部模块可以通过其读写 数据端口完成对ZBT SRAM芯片的同时数据读写,达到乒乓缓冲效果。

主控模块的对外接口主要是各个子模块的使能信号,同时接收各子模块的状态指示信号, 并依此决定状态机的跳转。

本发明还提供一种在FPGA中实现ZBT读写的时序稳定度的方法,包括:

S1、系统上电后,产生全局复位信号,复位所有寄存器和状态机;

S2、禁用第一ZBT SRAM芯片11及第二ZBT SRAM芯片12输出使能,置第一ZBT SRAM 芯片11及第二ZBT SRAM芯片12写使能有效,初始化所述伪随机数产生器4的随机种子, 并将伪随机数产生器4输出数据连续写入第一ZBT SRAM芯片11及第二ZBT SRAM芯片12 中的每一个地址;

S3、禁用第一ZBT SRAM芯片11及第二ZBT SRAM芯片12写使能,并置第一ZBT SRAM 芯片11及第二ZBT SRAM芯片12输出使能有效,开始回读ZBT数据,同时再次初始化伪 随机数种子,将每一个地址回读得到的ZBT数据与伪随机数产生器4输出数据比较;

S4、如果步骤S3中二者比较数据不完全相同,证明读写ZBT SRAM中发生了时序违反 情况进而导致读写错误,由时钟相位调整模块5对ZBT工作时钟进行相位调整,每次相位调 整步进约10~20度;

S5、如果所属步骤S3中二者比较数据完全相同,证明上一轮ZBT读写时序正常,继续 进行相位调整,并继续测试读写是否有误,在连续6次以上调整ZBT工作时钟相位均读写无 误时,证实已经找出覆盖整个合法时序裕量窗口的位置,再将输出时钟相位反相调整3次, 以获得最大的时序裕量;

S6、在时钟相位调整完毕后,即可开始正常的ZBT读写操作。

实施例:

本实施例选择目前速度最快、容量最大的Cypress公司的CY7C1470为ZBT SRAM器件 代表,以Xilinx公司中端器件Virtex6LX130为FPGA器件典型代表。整个设计采用2片 CY7C1470组成乒乓缓冲系统,从而可实现数据流的连续读写,进一步提高数据吞吐量。工 作频率设定为160MHz。

CY7C1470的容量为2M*36bit,是典型的流水模式ZBT SRAM,最高工作频率超过 200MHz,其主要对外接口信号介绍如下:

A0~A20:21位地址总线,输入端口;

D0~D35:36位数据总线,双向端口;

WE_N:写使能,低电平代表写操作,高电平代表读操作,输入端口;

CLK:工作时钟,所有信号变化均与该信号的上升沿同步,输入端口;

OE_N:输出使能信号,只有在该信号为低电平时,数据总线D0~D35才能对外输出数据, 否则总线处于高阻态,输入端口。

按照CY7C1470产品数据手册,所有输入信号相对于CLK上升沿的建立时间要求是不小 于1.4ns,保持时间要求不小于0.4ns。而输出信号D0~D35相对于CLK上升沿的延迟时间不 超过3ns。

对FPGA器件,不同制造工艺、不同档次、不同驱动电平的芯片引脚输入输出延时均有 所不同,详细的参数可参见FPGA器件的数据手册。以Virtex6器件和LVTTL电平为例,在 低温下,输入信号从引脚至FPGA内部寄存器的走线延时一般不超过2ns,然而在高温及高 扇出情况下,走线延时可以上升至7ns甚至更高。同样地,输出信号的走线延时变化范围也 可达5ns左右。

针对上述延时估计,可将160MHz下ZBT输入输出偏移约束设置为:

TIMEGRP"zbt1_abus"OFFSET=out 7ns AFTER"FPGA_CLK";

TIMEGRP"zbt1_dbus"OFFSET=out 7ns AFTER"FPGA_CLK";

TIMEGRP"zbt1_ctr"OFFSET=out 7ns AFTER"FPGA_CLK";

TIMEGRP"zbt2_abus"OFFSET=out 7ns AFTER"FPGA_CLK";

TIMEGRP"zbt2_dbus"OFFSET=out 7ns AFTER"FPGA_CLK";

TIMEGRP"zbt2_ctr"OFFSET=out 7ns AFTER"FPGA_CLK";

TIMEGRP"zbt1_dbus"OFFSET=in 7ns BEFORE"FPGA_CLK";

TIMEGRP"zbt2_dbus"OFFSET=in 7ns BEFORE"FPGA_CLK";

其中,abus代表地址总线,dbus代表数据总线,ctr代表读写使能、输出使能等控制信号。

在160MHz下,按照与3.2.5类似的时序分析过程,可以计算出从FPGA给出地址总线信 息,到FPGA内部寄存器可以稳定寄存ZBT输出数据的总路径延时约22ns,大于3个时钟周 期而小于4个时钟周期,因此该情况下从ZBT读写控制器接收到外部模块给出的ZBT读地 址开始,需要等待1+4+1=6个时钟周期后得到正确数据,与200MHz下的结果相比,相当于 读数据减少了一个时钟周期,在其它工作频率下的延时分析仍可基于相同机理分析,此处不 再赘述。

整个设计经过ISE13.4软件完成布局布线后,报告所有静态时序报告均合法,同时该控 制器仅占用432个寄存器和232个查找表。具有较好的资源经济性。

本发明提供的在FPGA中实现ZBT读写的时序稳定度的系统及方法利用M序列发生器 构建伪随机数发生器,并以此为测试数据源,为控制器增加了随机读写测试功能;使能了 FPGA内部时钟管理模块的动态相位高速功能,通过遍历所有相位的方式,找出最佳的数据 采样时刻,进而保证了ZBT读写时序的稳定性,而且不再受代码调试、修改、以及高低温变 化的影响,总可以确保数据读写正确;为通过施加合理的OFFSET约束控制IOB引脚延时, 并通过IODELAY高级可编程资源进一步补偿各引脚的延时分布,达到了所有信号延时分布 基本一致的良好效果。

本发明可以确保ZBT读写时序稳定,FPGA开发工程师可以将主要精力放在产品的功能 调试上,而不必再通过费时费力的增量编译、手工布局布线、区域反标注、甚至盲目调整输 出时钟相位的方式等技巧实现。

本文虽然已经给出了本发明的一些实施例,但是本领域的技术人员应当理解,在不脱离 本发明精神的情况下,可以对本文的实施例进行改变。上述实施例只是示例性的,不应以本 文的实施例作为本发明权利范围的限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号