在csdn的很多博客中将三段式状态机的第二段中的赋值语句也用的非阻塞赋值,如下图,此图来自于三段式有限状态机_三段式状态机_今朝无言的博客-CSDN博客。这是verilog写作不规范的一种体现,在此代码中组合逻辑用到了非阻塞赋值,仿真的时候不会出现问题,但是在上板时,状态机的跳变会异常,主要原因就是语法不规范导致编译软件在编译时会理解错代码的意思,导致上板状态机跑不全。
正确的写法应该是在组合逻辑中用阻塞赋值,如下图:
在csdn的很多博客中将三段式状态机的第二段中的赋值语句也用的非阻塞赋值,如下图,此图来自于三段式有限状态机_三段式状态机_今朝无言的博客-CSDN博客。这是verilog写作不规范的一种体现,在此代码中组合逻辑用到了非阻塞赋值,仿真的时候不会出现问题,但是在上板时,状态机的跳变会异常,主要原因就是语法不规范导致编译软件在编译时会理解错代码的意思,导致上板状态机跑不全。
正确的写法应该是在组合逻辑中用阻塞赋值,如下图: