新闻中心

EEPW首页>嵌入式系统>设计应用> 一种基于ARM内核SoC的FPGA 验证环境设计方法

一种基于ARM内核SoC的FPGA 验证环境设计方法

作者: 时间:2012-11-13 来源:网络 收藏


时钟信号电路的设计时钟电路如图3 所示。

ARM7TDMI 核有2 个时钟:存储器时钟MCLK 和内部TCK产生的时钟DCLK。在正常操作期间,内核由MCLK 供给时钟, 内部逻辑保持DCLK 为低。当ARM7TDMI 核处于调试状态(nWAIT 必须为高) 时,内核在TAP 状态机控制下由DCLK供给时钟,且MCLK可以自由运行。所选时钟在信号ECLK上输出,以便外部系统使用。在监控模式下,内核由MCLK供给时钟,且不使用DCLK。所以,首先应供给存储器时钟MCLK。由于该系统除了拥有ARM7TDMI 核外,还包括电源管理模块、复位管理模块、状态和控制寄存器等,应当额外供给时钟MCLK1 和MCLK2。用以验证可复用IP 的芯片APEX20K,也需要提供至少2 个时钟(FP2GA2CLK1 和2CLK2);用做配置芯片的PLD 也需要提供一个时钟(PLD2CLK) ;各个和整个电路设计都采用全局时钟控制方式,所有的时钟都是由ICS525201 芯片产生,该芯片是一种可调时钟芯片。

图3  时钟电路

时钟频率f CLK用下式调节:

式中:f i 为输入频率;v 为4~511 中的自然数;r 为0~127 中的自然数;OD 值由S[0 ,1 ,2 ]的3 位决定,S2S1S0的组合为:000 对应十进制10 ,001 对应2 ,010 对应8 ,011 对应4 ,100 对应5 ,101 对应7 ,110 对应9 ,111 对应6。注意:时钟电路的频率调节最终通过驱动软件进行各个参数的配置,在FPGA 内应有相应的配置寄存器,同样,下面的复位控制模块也应有复位配置。

复位电路的设计
复位信号包括接口模块中的外部硬件按键复位信号reset 、上电复位信号power on reset 、联合测试访问专家组(JTAG) 复位信号nTRST 和软件调试复位信号nSRST。以上几个信号都是必须的常用复位信号,但ARM7TDMI 核只提供了两个复位信号接口reset 和nTRST ,为此,以上4 个信号必须加入适当的逻辑电路使其最终形成2 个复位信号,复位信号通路必须满足复位时序要求且与时钟信号通路一样越短越好。

JTAG链的设计
通过ARM处理器内的JTAG测试接口,可对整个系统进行探测和配置。使用Altera 公司的QUARTUSII软件对APEX20K器件进行配置时,JTAG链是其中的一条重要配置通路。因此,JTAG链的设计十分重要,其主要设计任务是对FPGA 内的JTAG链与ARM 处理器内的JTAG测试接口进行匹配连接,形成一个统一的JTAG链,它主要包括TCK、RTCK、TDI、TDO 、TMS 和FPGA 配置成功(DONE) ,以及调试请求(DBGRQ) 应答信号(DBGACK) 、系统复位(SRST) 和测试复位(TRST)等信号,其中时钟信号TCK和RTCK通路应当设计得越短越好。至于使用JTAG模式对器件进行编程和配置,可依据参考文献[ 1 ]第5 章进行设计。JTAG数据通路在配置和调试时各不相同,在设计时应当选择几乎无导通电阻的多路选择器对该信号作出合理的分配,对FPGA 器件进行配置和调试时,JTAG数据通路分别如图4、图5 所示。

图4  配置时JTAG数据通路

图5  调试时JTAG数据通路

存储器电路的设计
ARM7TDMI 核虽给出了存储器接口信号,但这些信号对存储器的访问是单一有限、扩展极为不方便的,不能适应不同用户对多种存储器系统( Flash、NANDFlash、SRAM 和SDRAM) 的使用需求,所以大多数都在片内集成了存储器控制器(我们开发的的片外存储器控制器称为EMI) ,所以该验证平台上设计了以上4 种存储器, 用以验证该EMI IP 核。由于ARM7TDMI 核除了可以实现32 位访问存储器的方式外,也可以支持16 位访存方式,所以,通过在控制线上设置软件可配置的开关实现了3 种数据宽度的访存方式,即8 位(byte) 、16 位(half word) 和32 位(word) 的访存方式。

验证平台的调试和检验

当该系统中的各个模块在PCB 上调试成功后,该验证平台能否很好地验证的IP 核的开发呢? 我们将已经成熟的AMBA 总线IP 核的Verilog 代码,通过Synplify 综合,利用Altera 公司的QUARTUS Ⅱ软件作布局布线,烧入APEX20K1500E ,再用同样方式将新开发的EMI IP 核的Verilog 代码烧入该FPGA(注意:在该过程中有很多综合和布局布线技巧) ,将其中的SDRAM控制器作为验证示例,选取其中最简单的访问方式,来验证该平台能否使用。该验证平台中使用的SDRAM型号为W981216BH26。上电后,首先要对所有内存区(bank) 预充电,经8 个自刷新周期后需要设置访问模式,即编程模式寄存器。以上3 个过程要求如下:
a) 预充电命令的发出要求:在时钟周期的上升沿处CS、RAS、WE 为低,CAS 为高。
b) 自刷新命令的发出要求:在时钟周期的上升沿处CS、RAS、CAS 和CKE 保持低,WE 为高。
c) 模式寄存器的激活:在时钟的上升沿处RAS、CAS、CS 和WE 为低。

刚开始时,外部端口根本不能出现有用的波形,通过AMBA 总线的一些控制线能够正确地引出,从而排除了该验证平台原理的正确性和PCB 上的硬件可靠性的疑问,再将内部状态机的各个信号采出进行分析后,发现状态机设计得不能工作,经过修改代码后,重新采集端口信号如图6 所示。


关键词:ARM内核SoCFPGA

评论


相关推荐

技术专区

关闭