|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 xiaojianhua 于 2010-7-18 21:46 编辑
在ise10.1中使用core generator 生成 fifo 核时遇到问题,望高手相助。
具体的问题如下
在ise10.1中运用Core Generator 生成fifo IP 核, 参数选择如下: common clk , block ram, first-word fall-through ,
write width 78 , write depth 16,
选用 Almost Full Flag, Almost Empty Flag,
Full threshold Assert Value 为8
Empty threshold Assert Value 为4 , 选择数据计数 5 bit
1.当第一次向FIFO 输入一个数据(wr_en只有一拍有效),data_count 为1,empty 信号变为‘0’。
2.当第二次输入一个数据后(wr_en只有一拍有效),data_count 为2, almost_empty 信号变为‘0’。
3.此时,开始对FIFO 读取数据,( rd_en连续两拍有效)。其中如图黄线所示,rd_en第一拍之后,almost_empty 信号变为‘1’。 rd_en第二拍之后,data_count 为‘0’,说明FIFO内的可供数据为0 。问题一:此时empty信号为什么仍为‘0’?
4.当再一次向FIFO 输入一个数据(wr_en只有一拍有效),data_count 为1,但是almost_empty 信号变为‘0’。问题二:为什么当data_count 为1时,almost_empty信号就变为‘0’(而如2所示data_count 为2时,almost_empty信号为‘0’)?
请问如何才能解决 上述 almost_empty 和 empty 信号的 错误时序的问题,或者如何设置FIFO参数,使得当FIFO内的可用数据为2个时(大于等于2个时),则almost_empty 或program_ empty信号为‘0’。而当FIFO内的可用数据小于2个时,则almost_empty 或program_ empty信号为‘1’。
小弟在此感谢大虾相助了
|
|