阅读:2100回复:2
在线等 9054 TARGET读写问题 急!!!
我正在使用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; |
|
沙发#
发布于:2007-01-14 23:28
自己顶一下
|
|
板凳#
发布于:2007-01-15 11:15
怎么 没人回复呢!!!
|
|