zgy1016
驱动牛犊
驱动牛犊
  • 注册日期2003-03-18
  • 最后登录2010-09-20
  • 粉丝0
  • 关注0
  • 积分86分
  • 威望49点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:2029回复:2

在线等 9054 TARGET读写问题 急!!!

楼主#
更多 发布于:2007-01-14 19:35
  我正在使用pci9054,现在遇到一些问题,想请教一下。
   我使用C模式,target方式,连接方式是:ram <-> fpga <-> 9054 <-> PC机; ram定义为512KB,fpga中REG为4个字(32位)。
   问题1:我能用PLXMON对ram中的读写都正确,但对fpga中的reg能读,但写不进去,我想问一下,这个时序有什么特别吗? 我多次修改后,发现如果写进去了,但读出来的数据是叠加了地址高位的数据,若向偏址0X20010写入"1",读出的数据为“20001”,感觉好像是J模式了,太奇怪了。  
   问题2:我测到9054输出的ADS信号特别短,我的lclk为20MHz,但ads竟然只有10ns左右,blast为50ns~100ns,这很难理解,因为这些信号都是9054控制输出的,怎么跟时序上说得输出为一个LCLK周期有差别。


   下面是我写reg的代码(VHDL) : sPciSET,sREG0、3是fgpa定义的reg,iLW_Rn,iBLASTn,ioLD分别为9054的LW_R#,BLAST#,LD;ready 信号使用rdk-lite的verilog转vhdl的时序,您看这样操作有没有问题。  
PROCESS(ireset,s20MHz)
BEGIN
    IF(ireset = '1' ) THEN    
        sPciSET <=  X"0000001A";--(OTHERS => '0');  
        sREG0     <=  X"0000002B";--(OTHERS => '0');
        sREG1     <=  X"0000003C";--(OTHERS => '0');
        sREG2     <=  X"0000004D";--(OTHERS => '0');
        sREG3     <=  X"0000005E";--(OTHERS => '0');
    ELSIF(s20MHz 'EVENT AND s20MHz = '1') THEN    
        IF(iLW_Rn = '1' AND iBLASTn = '0'  ) THEN
            CASE (ssLA1(19 downto 2)&"00" ) IS
            WHEN X"10010" =>sPciSET <= ioLD;
            WHEN X"10020" => sREG0     <= ioLD;
            WHEN X"10030" => sREG1     <= ioLD;
            WHEN X"10040" => sREG2     <= ioLD;
            WHEN X"10050" => sREG3     <= ioLD;--X"112033AA";            
            WHEN OTHERS => NULL;
            END CASE;        
        END IF;
    END IF;
END PROCESS;
zgy1016
驱动牛犊
驱动牛犊
  • 注册日期2003-03-18
  • 最后登录2010-09-20
  • 粉丝0
  • 关注0
  • 积分86分
  • 威望49点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-01-14 23:28
自己顶一下
zgy1016
驱动牛犊
驱动牛犊
  • 注册日期2003-03-18
  • 最后登录2010-09-20
  • 粉丝0
  • 关注0
  • 积分86分
  • 威望49点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-01-15 11:15
怎么 没人回复呢!!!
游客

返回顶部