在verilog中为什么能用case语句尽量不用if语句?

RT... RT 展开
 我来答
sina4321
推荐于2017-11-28 · TA获得超过1479个赞
知道小有建树答主
回答量:474
采纳率:100%
帮助的人:539万
展开全部
首先从软件角度考虑
if加若干个else if可以组成一个与case类似的功能
但需要注意的是if-else if是有优先级的,也就是第一个if不成立的话,才判断第二个else if
那么问题就来了,如果这个if组合里有10个else if条件,那么逻辑就需要做一个在一个时钟周期内能判断10个条件的硬件电路来,这样是不明智也是不合理的,比较容易造成时序不满足

虽然说if有这样的缺点,但它的优点是每个else if都可以判断不同的条件,比较灵活

一般来说,如果判断的条件只是一个向量的不同值,那么case是最合适的

如果判断的条件是许多不同的向量或者变量,那么if还是比较合适的
当然也可以选择case和if的组合,这样灵活性和时序都比较好
gangle2008
2011-09-05 · TA获得超过114个赞
知道答主
回答量:69
采纳率:100%
帮助的人:46.2万
展开全部
case语句在编译成硬件电路后,各个分支之间是平行的,优先级是相同的;
if语句则具有优先级。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式