微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog hdl中的case default

verilog hdl中的case default

时间:10-02 整理:3721RD 点击:
verilog hdl中的case   default要执行的语句, 是不是可以什么都不做呀?记得在C语言中这样的, 不知道这里可以不可以,还没看到过。

可以的.

可以,vhdl里有null语句,verilog应该也有类似的语句,但我不知道。查一下书就知道了。

我们公司的规则是要加, 有时不加也可以的

verilogHDL中,case的default当然可以什么都不作,但是要看是组合逻辑还是时序逻辑。
如果是组合逻辑,如
always @ (a)
case (a)
2'b00: b = 1;
2'b01: b = 2;
default:;
endcase
这样的话就不成了,综合会生成latch(锁存器),设计中除了一些特殊的地方,不允许这样设计的。
如果是时序逻辑的话,就没有什么了。
建议还是将default状态写上,特别是写状态机的时候,因为一旦出现意外,状态机不能死掉,要能够回去的。

什么都不作,直接不写出来不就行了。

各位用的开发软件是那个

default语句只是增加防范措施,以防有没有考虑到得状态发生,一般给初始化时候的值,可以不加,加上可以防止出现锁存器

synplify中是默认不综合default选项的,必须约束才综合

很好

write RTL referring to synthisizable style.

我觉得,一定要有事做才行

5楼正解

no, you have to

什么都不做你写default干什么?

5楼正解。但需要注意的是不能用软件的思维来考虑硬件。

正解,如果不加就会综合为锁存器,状态机可能死循环,所以一定是要加的。

什么都不写和不写default这一句是一样的结果

既然是default
还是明确赋个值比较好

一般不用加,加上好看,也不会提示出错。可以加上进行一些错误情况的调整

yes. its ok

学习了,5楼讲的很好!解惑了。

full_case

弱弱的问一句,为什么不加default,综合的时候会产生latch?

5楼的分析的较清楚,学习了!

很多人都看不清题目就在那里回答啊~
LZ问的是写了
default:
但是后面没有执行语句。不是要不要写default的问题。
我也举得后面没有执行语句和不写貌似是一个效果啊。
另外,回复24楼,因为组合逻辑无法存储数据,不加default默认保持前一个状态值,那就需要锁存器(lanch)来锁数据。

要生成锁存器

应该可以,我就是经常这样写的。



    能不能给举个例子详细说说锁存器到底是如何形成的呢?

always @(*)
  begin
    case(r_psel_int)
      default : apb_trans_ver = 1'b0;
    endcase
  end
这样表达了什么意思

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top