循环显示控制器的设计(用quartusII)

2025-05-13 08:51:24
推荐回答(1个)
回答1:

module led_flow(clk,right,left,all_on,all_off,out);
input clk;
input right;
input left;
input all_on;
input all_off;
output[7:0] out;

reg[26:0] counter; //state machine
reg[7:0] out;
always @(posedge clk)
begin
if(right)
begin
counter<=counter+1;
case(counter[26:24])
3'b000:out<=8'b00000001;
3'b001:out<=8'b00000010;
3'b010:out<=8'b00000100;
3'b011:out<=8'b00001000;
3'b100:out<=8'b00010000;
3'b101:out<=8'b00100000;
3'b110:out<=8'b01000000;
3'b111:out<=8'b10000000;
endcase
end
else if(left)
begin
counter<=counter+1;
case(counter[26:24])
3'b000:out<=8'b10000000;
3'b001:out<=8'b01000000;
3'b010:out<=8'b00100000;
3'b011:out<=8'b00010000;
3'b100:out<=8'b00001000;
3'b101:out<=8'b00000100;
3'b110:out<=8'b00000010;
3'b111:out<=8'b00000001;
endcase
end
else if(all_on)
begin
counter<=0;
out<=8'b11111111;
end
else if(all_off)
begin
counter<=0;
out<=8'b00000000;
end
end
endmodule
这是按你的要求刚刚写的,希望对你有点帮助。