首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

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) 的使用需求,所以大多数SoC都在片内集成了存储器控制器(我们开发的SoC 的片外存储器控制器称为EMI) ,所以该验证平台上设计了以上4 种存储器, 用以验证该EMI IP 核。由于ARM7TDMI 核除了可以实现32 位访问存储器的方式外,也可以支持16 位访存方式,所以,通过在控制线上设置软件可配置的开关实现了3 种数据宽度的访存方式,即8 位(byte) 、16 位(half word) 和32 位(word) 的访存方式。
  验证平台的调试和检验
  当该系统中的各个模块在PCB 上调试成功后,该验证平台能否很好地验证SoC 的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 所示。

    图6  预充电、自刷新   

  从图6 中tr 线处的时序看出,上电后满足预充电命令的要求,紧接着是8 个自刷新命令,最后是模式寄存器的设置,命令字为020H( 00100000B) ,即CASLatency 设置为2 个时钟周期, Addressing Mode 为Sequential 模式, Burst Length 为1 个数据访问模式,模式设置命令通过地址线a02a9 发出,如图7 所示。

    图7  模式设置   

  将该SDRAM的地址映射成为从30000000 的地址空间开始的地址,利用SDRAM驱动程序(协同调试时,应通过实时操作系统进行SDRAM 的读写) , 向以30000000 开始的地址空间连续写入300 个从数据0 递增到299 的数,截取中间一段波形如图8 所示。图6~图8 中各信号如下:clk 为同步时钟,图中是10 MHz ;cse 为EMI 的8 个片选信号之一,即SDRAM的片选信号cs;ras 和cas 为SDRAM 的控制信号;we 为SDRAM 的读写控制信号;bank021 为SDRAM 的4 个bank 选择控制信号;sd10 为既是SDRAM 的控制信号又是地址信号a10;a0211 为不包括a10 的地址信号;dqm021 为字节选择信号;d027 为低位数据线。
继承事业,薪火相传
返回列表