一个关于verilog 状态机的问题程序,综合的时候出了点错误,希望各位可以帮忙解决下问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个关于verilog 状态机的问题程序,综合的时候出了点错误,希望各位可以帮忙解决下问题相关的知识,希望对你有一定的参考价值。

module Status_Machine(
Clk_In,Reaset,
Effect_0,Effect_1,
Status,Clk_Out
);

input Clk_In,Reaset;output Status,Effect_0,Effect_1,Clk_Out;
reg [1:0] status;
reg [1:0] Effect_0;
reg [7:0] Effect_1;
reg [3:0] Cunt;
reg Clk_Out;

parameter LED = 2'b01, Digital_tube = 2'b10;
always @ (posedge Clk_In)
begin
Cunt <=Cunt+1;
if (Cunt<4'b1001)
Clk_Out <= 1'b0;
else
begin
Clk_Out <=1'b1;
Cunt <=4'b0000;
end
end
always @ (posedge Clk_Out)
if (!Reaset)
begin
Status <= LED;
end
else
begin
case(Status)
LED :
begin
Status <=Digital_tube;
Effect_0 <= 2'b11;
end
Digital_tube:
begin
Status <= LED;
Effect_1 <= 8'b01111111;
end
default :
begin
Effect_0 <= 2'b11;
Effect_1 <=8'b01111111;
end
endcase
end
endmodule

个人觉得在分频程序和状态机状态调用程序上无错误,倒是一到赋值就有错了
Error (10137): Verilog HDL Procedural Assignment error at Status_Machine.v(34): object "Status" on left-hand side of assignment must have a variable data type

状态机使用的是Status跟你定义的reg [1:0] status第一个字母大小写不一样~~ 参考技术A reg [1:0] status; 大小写错误,应该是 reg [1:0] Status; 参考技术B 早知道先看下楼上的了,先看了一分钟... 参考技术C case(Status)改成case(status)

以上是关于一个关于verilog 状态机的问题程序,综合的时候出了点错误,希望各位可以帮忙解决下问题的主要内容,如果未能解决你的问题,请参考以下文章

是关于verilog状态机的问题 在always 时钟块的一个状态中,系统如何运行阻塞赋值? 代码如下:

怎么定义Verilog状态机每个状态执行啥动作?

verilog的one hot究竟是啥意思啊?

verilog之状态机

Verilog学习笔记设计和验证篇...............同步有限状态机的指导原则

verilog中的default应该赋什么样的值