我做的一个用按建改变流水灯的流动速度的,可是老是有错误
//使用两位拨码开关实现8个流水灯速度调节module led_run(mclk,data_in,clk_1s,clk_2s,clk_3s,clk_4s,led_out);
input mclk;
input data_in;
output clk_1s,clk_2s,clk_3s,clk_4s;
reg count;
output led_out;
reg led_out;
reg state;
wire clk,clk_1s,clk_2s,clk_3s,clk_4s;
always @ (posedge mclk)
count=count+1;
assign clk_1s=count;
assign clk_2s=count;
assign clk_3s=count;
assign clk_4s=count;
always @ (data or data_in)
begin
case(data_in)
2'b00:
if(data_in==2'b00)
always @(posedge clk_1s)
begin
case(state)
3'b000: led_out=8'b00000001;
3'b001: led_out=8'b00000010;
3'b010: led_out=8'b00000100;
3'b011: led_out=8'b00001000;
3'b100: led_out=8'b00010000;
3'b101: led_out=8'b00100000;
3'b110: led_out=8'b01000000;
3'b111: led_out=8'b10000000;
endcase
state=state+1;
end
else
stata=state-1;
2'b01:
if(data_in==2'b00)
always @(posedge clk_2s)
begin
case(state)
3'b000: led_out=8'b00000001;
3'b001: led_out=8'b00000010;
3'b010: led_out=8'b00000100;
3'b011: led_out=8'b00001000;
3'b100: led_out=8'b00010000;
3'b101: led_out=8'b00100000;
3'b110: led_out=8'b01000000;
3'b111: led_out=8'b10000000;
endcase
state=state+1;
end
else
stata=state-1;
2'b10:
if(data_in==2'b00)
always @(posedge clk_3s)
begin
case(state)
3'b000: led_out=8'b00000001;
3'b001: led_out=8'b00000010;
3'b010: led_out=8'b00000100;
3'b011: led_out=8'b00001000;
3'b100: led_out=8'b00010000;
3'b101: led_out=8'b00100000;
3'b110: led_out=8'b01000000;
3'b111: led_out=8'b10000000;
endcase
state=state+1;
end
else
stata=state-1;
2'b11:
if(data_in==2'b00)
always @(posedge clk_4s)
begin
case(state)
3'b000: led_out=8'b00000001;
3'b001: led_out=8'b00000010;
3'b010: led_out=8'b00000100;
3'b011: led_out=8'b00001000;
3'b100: led_out=8'b00010000;
3'b101: led_out=8'b00100000;
3'b110: led_out=8'b01000000;
3'b111: led_out=8'b10000000;
endcase
state=state+1;
end
else
stata=state-1;
endcase
end
endmodule 大家帮我看看,哪里有问题?
页:
[1]