|
仿真的时序与我上传的图片时序不对应,肯定是程序出了问题,求大虾指点
module pulse(clk,reset,pulse1_uin,pulse1_lin,pulse2_uin,pusle2_lin);
input clk,reset;
output pulse1_uin,pulse1_lin,pulse2_uin,pusle2_lin;
reg pulse1_uin,pulse1_lin,pulse2_uin,pusle2_lin;
integer state,nxstate,counter;
parameter st0=0,st1=1,st2=2,st3=3,st4=4,st5=5,st6=6,st7=7;
always @(posedge clk or negedge reset)
begin
if(!reset)
begin
state=st0;
counter=0;
// nxstate=st0;
end
else
begin
counter<=counter+1;
state=nxstate;
end
end
always @(state)
begin
case(state)
st0: begin
pulse1_uin=1'b0;pulse1_lin=1'b1;
pulse2_uin=1'b0;pusle2_lin=1'b1;
if(counter==5)
nxstate=st1;
#100 nxstate=st1;
end
st1: begin
pulse1_uin=1'b0;pulse1_lin=1'b0;
pulse2_uin=1'b0;pusle2_lin=1'b1;
if(counter==10)
#100 nxstate=st2;
end
st2: begin
pulse1_uin=1'b1;pulse1_lin=1'b0;
pulse2_uin=1'b0;pusle2_lin=1'b1;
if(counter==15)
nxstate=st3;
end
st3: begin
pulse1_uin=1'b0;pulse1_lin=1'b0;
pulse2_uin=1'b0;pusle2_lin=1'b1;
if(counter==20)
#100 nxstate=st4;
end
st4: begin
pulse1_uin=1'b0;pulse1_lin=1'b1;
pulse2_uin=1'b0;pusle2_lin=1'b1;
if(counter==25)
#100 nxstate=st5;
end
st5: begin
pulse1_uin=1'b0;pulse1_lin=1'b1;
pulse2_uin=1'b0;pusle2_lin=1'b0;
if(counter==30)
#100 nxstate=st6;
end
st6: begin
pulse1_uin=1'b0;pulse1_lin=1'b1;
pulse2_uin=1'b1;pusle2_lin=1'b0;
if(counter==35)
#100 nxstate=st7;
end
st7: begin
pulse1_uin=1'b0;pulse1_lin=1'b1;
pulse2_uin=1'b0;pusle2_lin=1'b0;
if(counter==40)
begin
#100 nxstate=st0;
counter=0;
end
end
endcase
end
endmodule |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?我要注册
x
|