注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
nealfei的个人空间 https://home.eeworld.com.cn/space-uid-398050.html [收藏] [复制] [分享] [RSS]
日志

XINTF地址问题

已有 2563 次阅读2012-8-31 21: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发送的地址就没有对应好。
请教各位有经验的前辈们指点指点迷津。谢谢了!
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章