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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6409|回复: 12

[求助] verilog设计遇到的问题,请大牛指导

[复制链接]
发表于 2013-7-14 23:14:04 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 gjb649666926 于 2013-7-14 23:16 编辑

求助。。。
    最近在写一个verilog代码,涉及到两个fifo,fifo的一端分别用来接收读命令和写命令,两个fifo是相互独立的,fifo的另一端用来取出读或者写命令,然后执行相应的命令,但每次只能执行一条命令。
    现在遇到的瓶颈就是,如何去控制取读命令被取出的顺序来达到读写命令被取出来的顺序相对均衡?也就是不会造成一直取读命令而压着写命令,或者一直取写命令而压着读命令。
    我一开始想到的是给fifo设定相应的阈值,后来想想也不完善,,,
    希望各位高手,版主,大牛,强人给予指导和提示,不胜感激。
发表于 2013-7-16 15:12:56 | 显示全部楼层
回复 17# gjb649666926


   修改了一下避免了其中一个fifo空的时候浪费时间等待,直接跳转到另一状态
 楼主| 发表于 2013-7-15 23:41:49 | 显示全部楼层
回复 16# hiloco


    多谢,这个仲裁方法看起来还算合理,我可以参考参考
发表于 2013-7-15 23:04:49 | 显示全部楼层
本帖最后由 hiloco 于 2013-7-16 15:14 编辑

看看这样满足你的要求不

每当执行电路空闲的时候启动一次仲裁,

case(current_state)
READ: if ((rdcnt==`RD_TH)&&(wrop_fifoemp==0))
                next_state = WRITE;
           else if ((rdop_fifoemp==1)&&(wrop_fifoemp==0))
                next_state =WRITE;           else
                next_state =READ;
WRITE: if ((wrcnt==`WR_TH)&&(rdop_fifoemp==0))
                next_state =READ;
             else if ((wrop_fifoemp==1)&&(rdop_fifoemp==0))
                next_state = READ;
             else
                next_state =WRITE;
....................

`RD_TH和 `WR_TH 就是权重,如果两个fifo都非空那个,就会按照这个比例来执行
其他自己看着办吧
 楼主| 发表于 2013-7-15 19:40:26 | 显示全部楼层
回复 13# chen851112


        非常感谢你的解答,不过你可能还没有完全理解我的意思。
    希望能和你继续深入讨论,我的qq,649666926,希望能加你好友!
 楼主| 发表于 2013-7-15 19:38:26 | 显示全部楼层
回复 13# chen851112


        非常感谢你的解答,不过你可能还没有完全理解我的意思。
    希望能和你继续深入讨论,我的qq,649666926,希望能加你好友!
发表于 2013-7-15 13:37:14 | 显示全部楼层
看读写命令的比例,用权重仲裁的方式
 楼主| 发表于 2013-7-15 13:18:21 | 显示全部楼层
回复 4# wide_road


    我现在遇到的难点就是怎样去安排读写命令执行的顺序。。。。采能使得读写命令的执行看起来比较均衡。。。
    补充一下我这个设计的结构:涉及到两个fifo,分别是wfifo和rfifo,
                                        wfifo的一端用来push进write命令,另一端pop出write命令用来执行;
                                        rfifo的一端用来push进read命令,另一端pop出read命令用来执行;
                                        两个fifo的进命令的那端可以任意的push命令进去,只要fifo没满。
 楼主| 发表于 2013-7-15 13:11:04 | 显示全部楼层
回复 6# neoitachi


    轮训我试过了,达不到要求,而且轮训的话不能够做到读写优先级一样,设计的基本要求是读优先级比写优先级高,然后还不能让读一直压着写,同事也不能让写一直压着读
 楼主| 发表于 2013-7-15 12:50:22 | 显示全部楼层
回复 3# chen851112

能不能详细一点?我现在就是需要一个比较合理的pop出读写命令的规则,从而使得两个fifo里面的读写命令能够比较均衡地被取出
发表于 2013-7-15 12:13:04 | 显示全部楼层
最简单的方法就是轮询,谁都不会漏。但没有优先级。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-7-3 07:42 , Processed in 0.038834 second(s), 9 queries , Gzip On, MemCached On.

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