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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: MohanGrace

[求助] verilog中if else和case语句有什么区别?

[复制链接]
发表于 2016-7-29 12:53:15 | 显示全部楼层
回复 7# 落日余晖

有道理
发表于 2016-7-31 01:07:19 | 显示全部楼层
if else有优先级,而case没有
发表于 2016-7-31 23:52:12 | 显示全部楼层
一个有优先级一个无优先级,带来的问题可能就是优先级时序较差。不过现在的工具越来越强大,综合出来的可能没有区别。
发表于 2016-9-5 19:01:59 | 显示全部楼层
请问case能两个分支同时满足吗,比如下面的语法:
always@(posedge clk)
  case(1'b1)
    sel[0]:m=a;
    sel[1]:n=b;
    sel[2]=c;
    default: ;
  endcase
endmodule

当sel[0] ,sel[1]都为1时,要求两个语句都执行,case有这功能吗。

实际就是实现下面的功能,能否用case实现。
always@(posedge clk)
begin
    if(sel[0]) m=a;
     if(sel[1]) n=b;
     if(sel[2]) o=c;
end
endmodule
发表于 2016-9-5 21:20:59 | 显示全部楼层


不能。没有。
因为case有优先级,击中一个就退出了。
发表于 2022-7-5 12:15:44 | 显示全部楼层
学习了,这个感觉还是蛮重要的
发表于 2022-7-19 00:25:12 | 显示全部楼层
大家在有些逻辑上偶尔会纠结使用if-else还是case吗?这个应该如何做决定呢?
发表于 2023-1-13 18:47:45 | 显示全部楼层
建议哪个代码写出来好看就用哪个? 别考虑那么多,DC 会根据你的timing 情况,帮你做最优综合
发表于 2023-1-16 15:37:05 | 显示全部楼层
和c语言一样的啊,多分支判断就用case啊
发表于 2023-1-17 16:22:22 | 显示全部楼层
理论上if-else来描述有优先级的电路,case用来描速并行电路。
但是呢,实际上杠精们有时候if-else确实描速了一个并行电路,case描速了一个有优先级的电路,两种描速方式可能描速了同一个电路。
所以到底选哪种合适呢?
其实一般情况下,条件比较单一,一般选case;
条件比较复杂,或明显具有优先等级的,一般选if-else;
综合器会根据代码综合出适合的电路,个人认为,不用太多杠这个东西吧,纯属根据描速需求来定要用哪个结构。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-18 01:51 , Processed in 0.021515 second(s), 7 queries , Gzip On, Redis On.

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