if ...else...条件执行,如果都满足,执行第一个 ?
请教,如下所示always@(posedge clk_ref or negedge rst_n)
begin
if(!rst_n)
else if(init_done == 1'b1)
begin
if(条件1)
else if(条件2)
else
end
else
end
如果条件1 和条件2都满足的话,先执行条件1,而不执行条件2吧 ?
下个周期 如果条件1不满足,才去检验条件2是否 满足?? 是的。。。。。。。。。。 先检验条件1,不满足时再检验条件2,按顺序执行。 坐听~ 任何一个运行周期,总是先检测条件1是否满足,若满足,则执行;若不满足,继续检测条件2是否满足,只有当条件1和条件2均不满足时,执行else语句。 优先前一个判断 必须优先第一个条件 判断了第一个就不去判断第二个了。除非if语句断掉,进入下一个平行语句
如if ()
else if()
if(),,, 还没见过自相矛盾的if else,,
如果你不吃饭,就不能上论坛?哈哈。
这个是个标准长度的尾巴,你能看到这个尾巴说明你的浏览器是正常的。欢迎光临我的淘宝店。 顺序判断,满足执行条件,然后break了 优先执行第一个满足条件 测试一下不就知道了? 前面满足了,后面就不会再判断了 楼主,无论在什么语言(包括自然语言和编程语言)中,if和else都是互斥的,某些条件满足了if,那它一定不满足else。语文和逻辑要加强啊。 任何一个运行周期,总是先检测条件1是否满足,若满足,则执行;若不满足,继续检测条件2是否满足,只有当条件1和条件2均不满足时,执行else语句.同意这一条 楼主用FPGA就不要再用写C语言的顺序思想了吧,你的这几句话写的是一个多路选择器,你需要明白将来综合出来的电路的是什么样子,然后就自然很清楚输出结果,我在网上找了个图片供参考:
先第一个条件,满足后不检测其它条件 只执行1,我也碰到过 有时脑筋短路,真的会被这个搞蒙的.尤其是嵌套多了,这时我一般会跑到的洗手间去吸一支烟,慢慢想. 对的,1成立就不会判断2了 if成立了else就不再判断执行,否则才会else下去 条件1不满足才去 else 检查 条件2, 条件1满足了就只执行 else 之前的语句。 都满足肯定进第一个 条件1和2都成立的话,永远不会执行条件2! 是的 自上而下执行的 这个不同情况下调试一下就很清楚了。 如果是case语句呢,多个case间条件有重叠,并且每个case都带break,那怎么判断 case带break?
任意一个时刻(组合逻辑)或者时钟沿(时序逻辑)输入只能是一种状态, 当前哪个状态成立就进入对应的分支, 这一点if...else...和case是一样的, 不同之处是if...else...分优先级而case不分. if只要满足,else就不执行了!这个其实很好验证,随便找个编译器,C语言证明一下就ok了~我前两天也是有同样的困惑~ 楼主应该找本C语言基础的书好好看看。 选择语句的条件判断语句是唯一的,要是重复了,只能说明你程序有问题 是是是是 必须第一个 可以看看综合出来的rtl视图,你马上就明白了 必须第一个执行啊 执行第一个啊 这个还真是的,,,条件满足,执行了语句,这个IF就算完成了。
从上到下第一个满足条件的就结束 嗯嗯。。,, 过来看看 二选一,条件为真就不执行下面的 请仔细看看C语言基础教程 begin end 顺序块 谢谢,知道了 if成立了else就不再判断执行,否则才会执行else。 对的,else的逻辑就是否定条件1。 else if( 条件2) 就相当于if( (!条件1)&(条件2) )。是绝对互拆的。if和else两个语句不可能同时成立的。 满足第一个就不会执行第二个 问这个,逻辑上问题,如果85分,良好,否则,如果60分以上,及格,否则,不及格。86分,肯定给良好呗。 if 语句 与 if 语句是并行的
if ,else if,else if,else 是顺序的
页:
[1]