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

标题: valid 与ready 握手机制的分支逻辑 [打印本页]

作者: ll_ago    时间: 2022-9-21 18:49
标题: valid 与ready 握手机制的分支逻辑
做过valid 与ready握手机制的打拍逻辑,闲暇无聊的时候尝试做下其分支逻辑,mux和dmux,感觉不是太好做,有没有大佬做过,给讲解下思路呢 ?我的困惑是一不小心,就生成了latch电路 。
比如两个输入端口,交替优先级输出在输出端口上,接口如下:
module  vld_rdy_mux
(
//输入端口1
input                    din1_vld      ,
input       [7:0]      din1            ,
output  logic          din1_rdy      ,
//输入端口2
input                   din2_vld       ,
input      [7:0]      din2             ,
output  logic         din2_rdy       ,

//输出端口
output  logic         dout_vld      ,
output  logic [7:0]  dout           ,
input                     dout_rdy
);


作者: 大力哥    时间: 2022-9-21 19:34
按照楼主的想法,其实这就是rr仲裁。思路:内部加个1bit寄存器,表示仲裁状态即可
作者: ll_ago    时间: 2022-9-22 09:21


   
大力哥 发表于 2022-9-21 19:34
按照楼主的想法,其实这就是rr仲裁。思路:内部加个1bit寄存器,表示仲裁状态即可 ...


感谢回复,你尝试写一下就知道问题在哪,关键不在于rr仲裁,而在于两个输入端口的ready 逻辑生成,乍一看就是一个Mux2,实际写起来完全不是那么回事

作者: 大力哥    时间: 2022-9-22 19:46


   
ll_ago 发表于 2022-9-22 09:21
感谢回复,你尝试写一下就知道问题在哪,关键不在于rr仲裁,而在于两个输入端口的ready 逻辑生成,乍一看 ...


没有理解到具体复杂在哪,能把您的代码贴出来吗?

作者: ll_ago    时间: 2022-9-23 14:19
本帖最后由 ll_ago 于 2022-9-23 14:48 编辑


( , 下载次数: 83 )
( , 下载次数: 86 )
( , 下载次数: 77 ) ( , 下载次数: 81 ) ( , 下载次数: 77 )



作者: ll_ago    时间: 2022-9-23 14:22
本帖最后由 ll_ago 于 2022-9-23 14:24 编辑


   
大力哥 发表于 2022-9-22 19:46
没有理解到具体复杂在哪,能把您的代码贴出来吗?


代码见楼上贴图,主要是中间的data1_in_rdy 和data2_in_rdy的逻辑,只能用NS和组合逻辑来赋值,要不然就会出现切换的异常,但用NS状态和组合逻辑,我总是担心出现一些意想不到的问题。

作者: Ronnie_Qiu    时间: 2022-9-23 15:07
用组合逻辑没问题呀
作者: ll_ago    时间: 2022-9-23 16:40


   
Ronnie_Qiu 发表于 2022-9-23 15:07
用组合逻辑没问题呀


有没有更好的方法? 貌似ready 信号只能用组合逻辑从最后一级,一级一级的反馈到输入端口,如果中间级数较多,担心这部分的时序。
作者: Ronnie_Qiu    时间: 2022-9-23 16:59
似乎还是组合逻辑直接Mux2送回去比较好,不然要对ready信号打拍,比较麻烦
https://blog.csdn.net/iNostory/a ... 1001.2014.3001.5502




欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/) Powered by Discuz! X3.5