EPI的16位主机总线模式配置问题

诸君,在FPGA上做了一个16位读写的SRAM模块,然后通过F28M35的M3的EPIHB16与之进行数据交换,EPI配置如下:

    SetPortControl();/*配置EPI的引脚*/
    /*Use EPI31 like GPIO and connect it to A20 pin of Memory.*/
    GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE, GPIO_PIN_7);
    GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_7, GPIO_PIN_7);   
    EPIModeSet(EPI0_BASE, EPI_MODE_HB16);/*Set 16 Bit HostBus mode*/
    EPIDividerSet(EPI0_BASE, 0x0);/*Set clock divider to 0 . EPI时钟与系统时钟相同(75MHz)*/
    EPIConfigHB16Set(EPI0_BASE, (EPI_HB16_MODE_ADDEMUX | EPI_HB16_WRWAIT_1 | EPI_HB16_RDWAIT_2), 0);
    EPIAddressMapSet(EPI0_BASE, (EPI_ADDR_CODE_SIZE_16MB | EPI_ADDR_RAM_SIZE_64KB | EPI_ADDR_RAM_BASE_6) );
    HWREG(EPI0_BASE + EPI_O_HB16CFG2) = 0x01000000;/*bit31字访问模式:0禁用1启用  现设为禁用*/

管脚配置是根据器件手册里面HB16不复用配置的。

然后现在的情况就是,从Quartus的SignalTap观察DSP送给FPGA的信号,16位数据总线给出来的数据是正确的,CS、WE、RE也是正常的,但12位地址总线存在一个循环右移一位的问题,就是如果往0x008地址写数据的话,SignalTap看到的地址总线是0x004;如果往0x005地址写数据的话,地址会分成两次发送,先是发0x002,再发0x001,数据也被分割成高位和低位了。

如果对直接映射的地址进行左移一位再读写,如:

SRAM_ps = (int16 *)(0x60000000+(Addr_W<<1));

那么读写都正常了,SignalTap观测到的波形信号也是正常的16位地址和12位数据,与发下去的数据与地址一致。

请问是哪里配置出问题了呢?望赐教。