EDK在软件往自定义IP核MY_ip中的寄存器slv_reg0()写数据时,存在一个大小端的问题。
也就是:EDK中写MY_ip_mWrite(BaseAdress,OFFSET,0x00000001)时,从硬件的Vreilog的user_logic看来,他的slv_reg0(31)=1,其他的数据位均为0,即0x80000000。这是因为EDK在从总线到IP核寄存器的过程中自动实现了一个位数的反转。
如果我们将slv_regreverse(i)=slv_reg0(31-i),则slv_regreverse()中的数据位与我EDK中的位数完全一致,我写0x00000001,slv_regreverse=0x00000001。