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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4068|回复: 9

[讨论] 多路选择器如何设计更好(case与3目选择操作)

[复制链接]
发表于 2017-6-15 14:54:58 | 显示全部楼层 |阅读模式

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

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

x
主要是讨论case和a?b:c操作根本综合后,在面积和timing上有何不同,哪种方式更好?

以8路选择器为例


case可设计为




  1.    always @(*) begin
  2.       case(1'b1)
  3.         sel0 : data_out = data_in0;
  4.         sel1 : data_out = data_in1;
  5.         sel2 : data_out = data_in2;
  6.         sel3 : data_out = data_in3;
  7.         sel4 : data_out = data_in4;
  8.         sel5 : data_out = data_in5;
  9.         sel6 : data_out = data_in6;
  10.         sel7 : data_out = data_in7;
  11.         default: data_out = 0;
  12.       endcase
  13.    end


复制代码




a?b:c方式可设计为





  1.    assign data_out = sel0 ? data_in0 :
  2.                      sel1 ? data_in1 :
  3.                      sel2 ? data_in2 :
  4.                      sel3 ? data_in3 :
  5.                      sel4 ? data_in4 :
  6.                      sel5 ? data_in5 :
  7.                      sel6 ? data_in6 :
  8.                      sel7 ? data_in7 : 1'b0;



复制代码




初看两者综合出来的应该是同样的电路,不知道有没有人试过?
有经验的可以来讨论讨论有没有区别?
有区别的话哪种设计更优?
或者有没有其他更好的设计方法,尤其是当数据位宽更大,sel路数更多时?

发表于 2017-6-15 20:43:37 | 显示全部楼层
case 更好一些吧;sel需要一级一级判断,就产生优先级了吧。
发表于 2017-6-16 09:50:55 | 显示全部楼层
这两个综合出来一样的,可读性case更好一些。
发表于 2017-6-16 09:58:02 | 显示全部楼层
这两个一样,都是带优先级的,不带优先级可以人肉这么写:
assign x = ({WIDTH{a_en}} & a) | ({WIDTH{b_en}} & b)...
 楼主| 发表于 2017-6-16 15:51:01 | 显示全部楼层
回复 2# 殷工

这两个其实都有优先级,都是一样的,综合出来电路应该也是一样的。
 楼主| 发表于 2017-6-16 15:53:45 | 显示全部楼层
回复 4# 南宫恨

这个就是资源用得太多了,数据位宽大的时候就不划算了。数据位宽小的时候这个还比较适用。
发表于 2017-6-16 16:07:31 | 显示全部楼层
回复 1# harry_hust 這兩個寫法,在timing and gate count ,synthesis 之後應該差不多
但是如果在case 之後加上 //parallel_case 這個 directive
case 這個寫法  timing 會變快,但是沒有priority
 楼主| 发表于 2017-6-19 17:32:45 | 显示全部楼层
回复 7# wythelin

这个建议好,可以试试,目的也是想速度更快
发表于 2017-7-10 10:34:35 | 显示全部楼层
很不错的很好的
发表于 2017-7-10 10:39:43 | 显示全部楼层
作为初学者的我都是用case的,第二种方法也很好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-20 09:29 , Processed in 0.027079 second(s), 6 queries , Gzip On, Redis On.

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