XINTF地址问题

2019-03-26 16:25发布

我的XINTF地址总线20根都使用了,但是分高10根(XA19~XA10)和低10根(XA9~XA0)来使用的。现在我遇到个这样的问题,我在和CPLD连接的时候,使用高10根(XA19~XA10)地址线,DSP访问地址从0x4000开始,当CPLD判断地址的时候,收到的地址应该是0x010,请问对不对,相当于丢掉了低10位。所以地址由0x4000变成了0x010,请问这样理解是不是对的,同时这样在数据读写的时候地址能不能对应上。所以我CPLD判断地址的时候直接判断,when “0001000000”   => XD<="01010101';,我的数据总线是采用的高8位(XD15~XD8),所以发送来8位,不知道这样描述,DSP读地址0x4000的时候是否正确,反正我尝试过读取数据,
CPLD 的发送数据程序是这样的:
process(PRSTD,XZCS0,XRD)
begin
  if(PRSTD ='0')then
    XD <="ZZZZZZZZ";
  else
  if (XZCS0 ='0')then
      if (XRD ='0' )then
      case XA is
  when "0000010001"=>   XD<="10101010";
    when "0000010010"=>    XD<="01010101";
                     
  when  others => XD <="ZZZZZZZZ";
      end case;
      end if;
      else
      XD <= "ZZZZZZZZ";
    end if;
  end if;
end process;
DSP读取数据的语句是:
Uint16 *addr;
Uint32  Message0,Message1;
addr=(Uint16*)(0x4400);
Message0=*addr;
addr=(Uint16*)(0x4800);
Message1=*addr;
XBus.XintfL=Message0;
XBus.XintfH=Message1;
结果读到的数据在memory中看到是0x4000地址的数据,但是问题出现了,0x4000的数据初始化之后是0xffff;读出来就是0xffff;而不是CPLD发送的数据,请问这是那个地方出现问题了。
一,是不是CPLD需要确定在CLK的上升沿还是下降沿开始读取?二、还是DSP本身访问的地址和CPLD发送的地址就没有对应好。
请教各位有经验的前辈们指点指点迷津。谢谢了! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
nealfei
1楼-- · 2019-03-27 03:08
 精彩回答 2  元偷偷看……

一周热门 更多>