FPGA与嵌入式CPU的Local Bus接口调试

Local Bus总线又称为CPU总线,根据高低位地址线序的差异,又可分为Motorola CPU总线和Intel CPU总线。古老的CS51单片机就是Intel CPU总线的典型代表,而我们常用的Power PC就是Motorola CPU总线架构,它是从60X总线衍变过来的(60X总线支持64、32、16、8四种可选位宽模式)。本文以一款Power PC CPU通过Local Bus读写FPGA内部寄存器或RAM以及中断响应为例,为大家介绍开发过程中的注意事项。

记得在HINOC1.0的时候,FPGA样机上采用Intel XScale PXA270(ARM CPU)芯片与FPGA芯片互连,采用的接口时序就是Local Bus总线的时序,该时序与CPU与外挂异步SRAM接口时序一样,这样HINOC芯片就可以看做是ARM CPU的一个外设,可以分配可配置的寄存器或RAM等访问空间。具体时序图如下图所示,总线包括地址、片选、读/写信号,下图是简单的读时序。注意,所谓异步,就是CPU接口总线与FPGA相应接口是不同步的,也就是CPU送给FPGA的信号中不包括时钟信号,FPGA需要通过自己内部的时钟信号去采CPU接口的地址、数据等信号,同步后才能使用。如下图中的CPU读FPGA时序,CPU给出度地址和读控制信号后,等待tAA时间后才能从数据总线上取到正确的有效的数据,这个tAA时间长短是可以通过设置PXA270中的寄存器来进行调整的。

猜你喜欢

转载自blog.csdn.net/qq_43416206/article/details/131335614