verilog hdl中的case default
可以的.
可以,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
这样表达了什么意思
