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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5282|回复: 18

[求助] 请教if 和case语句,硬件消耗有区别么?

[复制链接]
发表于 2012-2-24 17:16:53 | 显示全部楼层 |阅读模式

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

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

x
请教if 和case语句,硬件消耗有区别么?

if(
    (i_haddr[11:0]!=12'h000)&(i_haddr[11:0]!=12'h004)&(i_haddr[11:0]!=12'h008)&(i_haddr[11:0]!=12'h00C)&(i_haddr[11:0]!=12'h010))
        error   <= 1'b1;
else
        error   <= 1'b0;
end


//    case(i_haddr[11:0])
//    (12'h000),(12'h004),(12'h008),(12'h00C),(12'h010),(12'h83c): error <=  #UDLY 1'b0;
//    default  : error <= #UDLY 1'b1;
//    endcase
发表于 2012-2-25 20:09:46 | 显示全部楼层
取决于综合器
发表于 2012-2-27 20:59:52 | 显示全部楼层
没有任何区别,就是消耗掉两个ALM,现在综合器没有那么弱智
发表于 2012-2-27 21:28:09 | 显示全部楼层
回复 3# fuyaolong
你是指的fpga吧,能不能试试dc和rc.我没试过,随意给不出答案.
发表于 2012-3-2 09:55:52 | 显示全部楼层
if一般带有优先级,硬件消耗多
case一般没有优先级,硬件消耗少
现在综合工具差不多可以识别是否需要优先级,然后调整电路结构。很多原本条件相异,根本不需要优先级的
发表于 2012-3-3 12:42:23 | 显示全部楼层
沒差別
发表于 2012-3-10 00:42:47 | 显示全部楼层
fpga没试过,不晓得。
ASIC肯定是有差别的,理由5楼已讲。
只是你这个例子有点特殊,只有1层条件,肯定是互斥的,可能合出来还真没有区别。
如果你要追根究底,写个8层if else,和8个分支的case,就一定有区别了。
发表于 2012-3-10 19:01:31 | 显示全部楼层
赫赫,if和case主要牵扯到优先级的问题,确实和综合器想关。
假定综合器只做map和cell size的调整,不做逻辑结构的调整,那么有一种方式最节省, 就是输入有优先届,并用if的顺序来体现这个优先级。
个人建议写代码的时候就想着逻辑实现,而不要指望综合器的优化能力,所谓靠tool不如靠己。
发表于 2012-3-10 21:05:52 | 显示全部楼层
学习了~~
发表于 2012-3-10 21:09:06 | 显示全部楼层
学习了~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-13 14:23 , Processed in 0.043215 second(s), 10 queries , Gzip On, MemCached On.

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