在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4780|回复: 21

请教设计中遇到的一个问题

[复制链接]
发表于 2007-3-7 09:59:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
在设计中遇到一个问题:
一个信号长期有效,在写入fifo时只写入一次,只有当从FIFO 中读出该信号后才恢复对该信号的采样,即可以再往FIFO中写入,怎样才能实现?
发表于 2007-3-7 12:23:30 | 显示全部楼层


原帖由 txmfxf 于 2007-3-7 09:59 发表
在设计中遇到一个问题:
一个信号长期有效,在写入FIFO时只写入一次,只有当从FIFO 中读出该信号后才恢复对该信号的采样,即可以再往FIFO中写入,怎样才能实现?


检测写使能信号的上升沿,用检测结果使能fifo的写入
发表于 2007-3-7 13:49:37 | 显示全部楼层
应该是检测读使能信号的上升沿吧?

关键是你为什么要把一个信号弄到FIFO里面呢?只要一个DFF就好了,串到FIFO里面去做什么?
 楼主| 发表于 2007-3-7 15:47:17 | 显示全部楼层
谢谢各位能回答我的问题!
我想设计的是PCI总线的仲裁器,现在PCI总线的仲裁器用的都是循环优先级算法,我想实现一种循环优先级和时间优先相结合的算法,思路是:在每一个时钟的上升沿采样各个申请,如果只有一个申请则写入FIFO ,如果有多个申请则按循环优先级判断后写入FIFO,因为FIFO是一种先进先出,这样就实现了可按申请时间先后次序授权使用总线。但按照PCI总线时序,某个设备的请求只能在授权该设备后才能撤消,因此在我所要实现的这种仲裁器中会出现在某个设备的请求没有撤消前不止一次写入FIFO,(这在使用循环优先级算法中不存在这种情况),我只希望在申请撤消前只写一次,怎样才能实现?
也不知叙述清楚了没?这个问题困绕了我好久,希望各位能帮我解决!
发表于 2007-3-7 16:30:43 | 显示全部楼层
最好用状态机来实现,不建议采用fifo
 楼主| 发表于 2007-3-7 16:45:55 | 显示全部楼层
现在所用仲裁算法——循环优先算法就是用状态机实现的,可我要实现这种功能的仲裁器,单纯用状态机可能实现不了,但可以用FIFO来实现,请大侠帮我想一下我所遇到的困难。
头像被屏蔽
发表于 2007-3-7 18:03:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2007-3-7 19:40:54 | 显示全部楼层
非常感谢!可我用的是VHDL,FOR能否写一个VHDL的,再次感谢!
发表于 2007-3-7 20:26:14 | 显示全部楼层


原帖由 txmfxf 于 2007-3-7 16:45 发表
现在所用仲裁算法——循环优先算法就是用状态机实现的,可我要实现这种功能的仲裁器,单纯用状态机可能实现不了,但可以用FIFO来实现,请大侠帮我想一下我所遇到的困难。

1.JPG
发表于 2007-3-7 20:32:04 | 显示全部楼层
如上图所示:
将req用时钟延迟一拍。然后比较req和req_dly是否相等,比较结果用cmp_res表示。由于cmp——res上可能有不少毛刺,所以对
cmp——res采样得cmp——res——dly。这个信号在每次req变化的时候才会出现而且宽度等于一个clk cycle。用这个信号作为fifo的写使能信号,可以保证每个req只写入fifo一次。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-6-29 17:55 , Processed in 0.197092 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表