helloxieyu
驱动牛犊
驱动牛犊
  • 注册日期2005-04-10
  • 最后登录2011-05-25
  • 粉丝0
  • 关注0
  • 积分820分
  • 威望83点
  • 贡献值0点
  • 好评度83点
  • 原创分0分
  • 专家分0分
阅读:2403回复:10

68013 slavefifo满标志flagb异常的问题----高手请进

楼主#
更多 发布于:2007-05-10 10:22
同步写入时,控制面板不读的情况下,我的满标志flagb在slwr<='0'时不正常,按理满标志应该一直为'0'(满)有效才对,可是视波器显示
是有高有低,而且是高占多数,而改为slwr<=not fullflag则一切正常,控制面板不读的时候flagb常为'0'
各位老大到底是怎么回事啊?slwr<='0'就是一直写入fifo,应该一直满才对啊?
另外,半满标志如何定义啊?小第一直找不到?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-05-11 13:14
看的我晕乎。。
slwr可以设置极性
flag也可以设置极性
具体参考技术参考第15章,寄存器中的第5节的PINFLAGSAB,PINFLAGSCD,FIFOPINPOLAR
找不到就稀奇了。。
helloxieyu
驱动牛犊
驱动牛犊
  • 注册日期2005-04-10
  • 最后登录2011-05-25
  • 粉丝0
  • 关注0
  • 积分820分
  • 威望83点
  • 贡献值0点
  • 好评度83点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-05-11 15:05
巨牛兄:我的意思是slwr低有效时是不是满标识也一直低有效,按理由应该是的,可是结果确是经常出现高(不知为何).
默认情况下slwr和flagb当然是高有效啦,这个我知道,
helloxieyu
驱动牛犊
驱动牛犊
  • 注册日期2005-04-10
  • 最后登录2011-05-25
  • 粉丝0
  • 关注0
  • 积分820分
  • 威望83点
  • 贡献值0点
  • 好评度83点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-05-11 19:08
PKTEND<='1';      
SLOE<='1' ;
SLRD<='1';        
fifoAdd<="10"; --端点6

process(IFCLK)  --48M的IFCLK
begin
    if IFCLK'event and IFCLK='1'then
    if fullflag='1'then        --fifo不满时计数器++
        dataCount<=dataCount+1;        
    end if;
    end if;
end process;
FD(7 downto 0)<=dataCount(7 downto 0); --FD的低8位

----------------------------------以上代码对应第一副图--------------------------------------------------
----------------------------以下代码是把SLWR放在时钟里,对应第二副图-----------------------------
process(IFCLK)  --48M的IFCLK
begin
    if IFCLK'event and IFCLK='1'then
        SLWR<= not fullflag;    
    end if;
end process;

  
PKTEND<='1';      
SLOE<='1' ;
SLRD<='1';        
fifoAdd<="10"; --端点6

process(IFCLK)  --48M的IFCLK
begin
    if IFCLK'event and IFCLK='1'then
    if fullflag='1'then        --fifo不满时计数器++
        dataCount<=dataCount+1;        
    end if;
    end if;
end process;
FD(7 downto 0)<=dataCount(7 downto 0); --FD的低8位
helloxieyu
驱动牛犊
驱动牛犊
  • 注册日期2005-04-10
  • 最后登录2011-05-25
  • 粉丝0
  • 关注0
  • 积分820分
  • 威望83点
  • 贡献值0点
  • 好评度83点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-05-11 19:22
第二副图明显漏数据了,就因为用了
process(IFCLK) --48M的IFCLK
  begin
  if IFCLK'event and IFCLK='1'then
    SLWR<= not fullflag;  
  end if;
end process;
不知道为何用slwr跟时钟同步反而会漏数据??
用示波器观察满标志flagb的结果:
SLWR<= not fullflag 不在时钟里的话,软件端又不读的话,flagb一直为'0',即一直为满,很正常,所以第一副图没漏数据。

SLWR<= not fullflag 在时钟里的话,软件端又不读的话,flagb有高有低,不正常,所以第二副图漏数据。

还有,将SLWR<='0'的话flagb也是有高有低,不正常

不知大家看懂我要问什么没有?我就是想知道明明是SLWR接地fifo已经写满了,为何flagb还会出现非满的情况?!!!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-05-14 09:34
你第一幅图像也丢数据了,只是可能丢的比较有规律,比如取了前一幅的前半部分和后一幅的前半部分拼成的数据
第2幅不过是取了前一幅的中间部分和后一幅的中间部分拼成的,没什么区别
不管同步不同步,读数据的时候一定不能让端点满了,否则数据必然丢失
helloxieyu
驱动牛犊
驱动牛犊
  • 注册日期2005-04-10
  • 最后登录2011-05-25
  • 粉丝0
  • 关注0
  • 积分820分
  • 威望83点
  • 贡献值0点
  • 好评度83点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-05-14 11:39
jinghuiren兄,我第一副图没有丢数,是很完整的一副256灰阶图,另外我用控制面板读过,当前读出的第512个数跟下一次读出的第一个数是连在一起的,当然同一512字节里的数也是连在一起的。

jinghuiren兄:你在写fifo时是不是用满标志来判断,不满时则写入,满时则写无效,那么你的这句逻辑是不是
SLWR<=NOT FullFlag;或者是SLWR<=NOT FullFlag when (符合你的条件);第一种逻辑表达方式不会漏数,第二种则经常在不该写入时也写入了,不知是不是我的68013芯片有问题造成的?

另外,你在回复我的短消息中说在slavefifo模式下,slwr接地后软件端没有读数的情况下是常满的,可是我测试的结果是:即使slwr接地,满标志在软件端没有读数的情况下也经常不满,难道是我的芯片坏了?你确实试过将slwr接地并观察到满标志为常满么??
helloxieyu
驱动牛犊
驱动牛犊
  • 注册日期2005-04-10
  • 最后登录2011-05-25
  • 粉丝0
  • 关注0
  • 积分820分
  • 威望83点
  • 贡献值0点
  • 好评度83点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-05-14 16:40
满标识满后,如果slwr在接低一段时间,满标识会不会变为非满(在软件端不读走数据的情况下)??
kiwkow
驱动牛犊
驱动牛犊
  • 注册日期2006-12-24
  • 最后登录2007-08-23
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望8点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-05-14 16:53
我出现的问题也可能是这样,所以在两次去数据之间出现丢数据的现象
驱网无线,快乐无限
helloxieyu
驱动牛犊
驱动牛犊
  • 注册日期2005-04-10
  • 最后登录2011-05-25
  • 粉丝0
  • 关注0
  • 积分820分
  • 威望83点
  • 贡献值0点
  • 好评度83点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-05-14 20:39
我试过将电路板上电后等待6秒后史slwr保持2048个ifclk周期的低电平,然后恢复高电平,可是满标志始终没满,而且控制面板读512*2个字节就再也读不出了??
史slwr保持4096个ifclk周期(或更长时间)的低电平也一样,到底为什么???
kiwkow
驱动牛犊
驱动牛犊
  • 注册日期2006-12-24
  • 最后登录2007-08-23
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望8点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-05-14 22:10
我现在怀疑可能还是时序的问题,回头再看时序
驱网无线,快乐无限
游客

返回顶部