基于ARM内核SoC的FPGA 验证环境设计方法
图8 写时序
写命令应当满足的时序要求是:在时钟周期的上升沿处RAS 高,WE、CS、CAS 低;第一个要写的数据必须与写命令同时发出。从图8 可以看出,确实能够成功执行写操作访问。注意: 在写之前,必须将该bank激活,只有激活的bank 才能进行读写,图中的激活命令没有显示出来,同时,由于该访问总共300 个地址完全在一个行内,不用对其进行行预充电和再激活(在一个已经激活的bank 内,读写不同的行就要求对该bank进行预充电和再激活) 。
通过图6~图8 ,还可以看出各种操作命令的建立时间Tsetup和保持时间Thold都设置得比较紧,几乎刚好满足。这种IP 核没有给用户留出足够的余量,一旦用户对PCB 的制作稍有不慎,在PCB 板级违反建立时间和保持时间极有可能,造成SDRAM 的不正确访问,所以需要进行检查和修改。经过前端人员的仿真验证,代码中确实存在忽略建立时间和保持时间的问题,修改后重新在该平台进行验证,以上两个时间都能很好地满足,且有足够的余量。另外,从图中可以看出,数据线上有一些毛刺,这是由于FPGA 的I/ O 端口引脚对逻辑分析仪的接口没有很好地分配造成的,重新分配FPGA 的I/ O 端口,绝大部分毛刺都能很好地消除。
通过以上实验,说明该验证平台确实能够达到验证SOC IP 核的目的。要注意的是,当要验证各个IP模块(包括INT 中断控制器、DMA 控制器、LCD 控制器和AC97 控制器等) 之间协同工作时,烧入的代码较多,占用FPGA 资源较多,再加上需要实时运行,例如,播放PM3 实时解码过程中,时钟至少要求60 MHz ,需要工作的IP 核有总线、DMA 控制器、INT 中断控制器、AC97 控制器等,在这种情况下,最好使用Multi PointSynthesis 的综合流程和Timing driven 的综合与优化策略,使用Logic-lock 约束技术和人工干预布局布线,才能达到预期目的。
使用该平台对我们开发的SoC 的各个模块进行了验证,并在10 MHz~70 MHz 条件下与代码前(后) 仿真结果和SoC 实测结果进行了比较,结果见图9。可以看出,该FPGA 验证平台在多模块、高速情况下,性能有所下降,需进一步提高综合和布局布线技术。
评论