FPGA|CPLD|ASIC论坛
直播中

187kd

5年用户 3经验值
擅长:可编程逻辑 处理器/DSP
私信 关注
[问答]

状态机设计问题

状态机设计中
always @(*) begin
next = 2'bx;
case (state)
idle: next=s1;
s1: next=s2;
s2: next=idle;
end
以上代码先给next赋默认值2'bx的作用是什么?case应该加一个default语句吗?还是默认值就相当于default?

回帖(2)

卿小小_9e6

2021-10-8 09:50:53
//------状态机要结合所有代码来看。
1.next赋默认值2'bx。这样写不太规范,x是不定值(仿真是x,实际运行通常是0),建议赋初始值为特定值或者2'b00.
2.通常情况下,建议case添加default语句。如果所写代码已经考虑所有情况(简单的状态机),可以不添加。在调试阶段,case语句的default可以用来辅助定位问题(default可以指定为想要调试的状态)。
举报

dlutccj

2021-12-28 17:23:21
默认值相当于default
举报

更多回帖

发帖
×
20
完善资料,
赚取积分