取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
sdersder
Explorer
Explorer
882 次查看
注册日期: ‎10-23-2018

standard FIFO 的 full empty 一直为高

工程中使用了不同位宽的fifo,配置为独立时钟,所有的fifo引入的复位信号相同,但是有一个fifo的 full 和empty信号在复位完成之后还一直为高。

此外:使用这个fifo 的文件被调用了两次,但是仅有一个链路的fifo full和empty信号全为高(如下图只有link2 的fifo_80b 在复位完成之后 full 和 empty信号依旧为高)。

1.png

 

 

我采用了几种方式(复位fifo的ip,重新生成;删除fifo,重新配置;fifo 的ip模式改为global)均不能解决该问题。

最终直接将fifo的复位信号长置为0,解决该问题,但是这个方法并不可取!

请问关于standard fifo v13.2,使用中存在full 和 empty均为高的现象原因是什么?

谢谢。

0 项奖励
9 回复数
drjohnsmith
Teacher
Teacher
868 次查看
注册日期: ‎07-09-2009

can you share the simulation where the full and empty are both true at the same ?

In addition, different types of FIFO have different IO pin names / functions

   Do I understand that you have tried different types of FIFO , I don't think all of the support reset, 

Remember that the Rd and Wr clock need to be constant, 

    they can not be  gated, 

The internal state machine that generates the flags, runs off the rd and wr clock,

      so if a clock is stopped, the flags "lock"

 

I also see your reading constantly , 

  what happens when the fifo is empty and you read ?

   

It sounds that as you have one fifo that works, and one that doesn't, you need to trace down the control signals.

 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 项奖励
Shuanzhu
Participant
Participant
831 次查看
注册日期: ‎07-07-2020

把fifo的信号拉长试一下,感觉是你的复位信号的有效时间太短了

0 项奖励
sdersder
Explorer
Explorer
804 次查看
注册日期: ‎10-23-2018

把fifo的信号拉长是指在ila观察的时候观察时间吗?我用ila触发过很多次,并且也有很长时间在返回ila观察full信号,一直为高。
我的复位信号,每一次触发都有1s的定时。

0 项奖励
Love24
Explorer
Explorer
800 次查看
注册日期: ‎10-22-2020

你配置的是异步复位还是同步复位,异步复位就不存在复位脉冲太短的问题。另外,你有没有抓复位有效期间的full信号波形,看看复位有效期间full信号的值,配置fifo IP时,full flag reset value 一般都是0。其次,你的写使能和读使能给到fifo时是否做了逻辑,写使能要在非满时给,读使能要在非空时给。

0 项奖励
sdersder
Explorer
Explorer
744 次查看
注册日期: ‎10-23-2018

设置的为异步fifo,配置界面如下:

3.png

 

 

 

 

 

 

关于读使能就是在非空下操作的,代码如下:

2.png

 

 

 

 

 

 

 

 

 

 

 

ila观察界面:

1.png

0 项奖励
Love24
Explorer
Explorer
725 次查看
注册日期: ‎10-22-2020

full flag reset value 配置成0试试。

0 项奖励
sdersder
Explorer
Explorer
682 次查看
注册日期: ‎10-23-2018

这么做了以后,full信号就是长为0了,但是fifo还是不能正常写入(写使能和数据输入,数据不能被写入fifo);

本质上这么做和full复位值为1在fifo功能上没有区别。

0 项奖励
Love24
Explorer
Explorer
676 次查看
注册日期: ‎10-22-2020

没理解你意思。fifo的full信号为0,为啥不能写入数据?非满就可以写啊。

0 项奖励
junhawk
Scholar
Scholar
638 次查看
注册日期: ‎05-29-2018

你复位信号给错了,这是高有效复位,使用时给0就对了,给1就一直复位,当然是empty和full为高。

0 项奖励