verilog三段式状态机不好使求助各位前辈指点
哪位能帮我看看,这个三段式状态机怎么不好使?COUNTER不是在每个时钟上升沿加,是自己在里面连续的加,和CLK都没关系了,这个是怎么回事,是我哪里写错了么module testchabu2(clk1,pwmout,start,reset);
input clk1,start,reset;
output pwmout;
reg pwmout;
reg StepOfPWMSend_P,StepOfPWMSend_N;
reg JVX;
reg JRX;
reg Counter;
parameter ADDTotal=4'B1000;
//************************************************
parameter
PWMSEND_IDLE=2'B00, PWMSEND_S1=2'B01,
PWMSEND_S2=2'B10, PWMSEND_S3=2'B11;
//**********************************************************************
always @(posedge clk1 or negedge reset)
if(!reset)
StepOfPWMSend_P<=PWMSEND_IDLE;
else
StepOfPWMSend_P<=StepOfPWMSend_N;
//*******************************************************
always @(StepOfPWMSend_P)
begin
StepOfPWMSend_N=PWMSEND_IDLE;
case(StepOfPWMSend_P)
PWMSEND_IDLE:begin
if(start)
begin JVX=5;JRX=0;Counter=0;StepOfPWMSend_N=PWMSEND_S1;end
else
begin JVX=5;JRX=0;Counter=0;StepOfPWMSend_N=PWMSEND_IDLE;end
end
PWMSEND_S1:begin
if(Counter>=ADDTotal)
begin
Counter=0;StepOfPWMSend_N=PWMSEND_IDLE;
end
else
begin
Counter=Counter+1;JRX=JVX+JRX;
if(JRX>=8)// or JRX<=-8)
begin
JRX=JRX-8;StepOfPWMSend_N=PWMSEND_S2;
end
else
begin
StepOfPWMSend_N=PWMSEND_S3;
end
end
end
PWMSEND_S2:StepOfPWMSend_N=PWMSEND_S1;
PWMSEND_S3:StepOfPWMSend_N=PWMSEND_S1;
endcase
end
//************************************************************
always @(posedge clk1 or negedge reset)
if(!reset)
pwmout<=0;
else
begin
pwmout<=0;
case(StepOfPWMSend_N)
PWMSEND_IDLE:pwmout<=0;
PWMSEND_S1:pwmout<=0;
PWMSEND_S2:pwmout<=1;
PWMSEND_S3:pwmout<=0;
endcase
end
endmodule 回复【楼主位】jessie9940509
-----------------------------------------------------------------------
怎么看了这么多,没有一个留言的,就没有一个帮忙么? 什么语言啊?VHDL? 回复【2楼】zyw19987
-----------------------------------------------------------------------
verilog的 回复【3楼】jessie9940509
-----------------------------------------------------------------------
为啥看了都不回呢?我都等一上午了,看样是没人管了,5555555555,都不会么?? modelsim仿真找问题 always @(StepOfPWMSend_P)
begin
StepOfPWMSend_N=PWMSEND_IDLE;
case(StepOfPWMSend_P)
PWMSEND_IDLE:begin
这里的"StepOfPWMSend_N=PWMSEND_IDLE; "是什么意思??
它好像始终在做初始化!!!
页:
[1]