例如,必须显示0,2,4,0,2,4 ..我使用8段的输出 - 不太重要。
output reg [7:0] data
always @ (*) begin
case
1:data= 8'b00000011; //number 0
2:data= 8'b00100101; //number 2
3:data= 8'b10011001; //number 4
default:data=8'b00000011;
endcase
end
柜台:
input clock,
input reset,
output [7:0] out
reg [31:0] counter;
always @ (posedge clock) begin
if(reset==1) counter <= 0;
else counter <= counter + 1;
end
我的问题是我可以增加案例值而不是计数器吗? 喜欢:
always @ (posedge clock) begin
if(reset==1) case <= 1;
else case <= case + 1;
if(case==3) reset<=1;
end
如果没有,那我该怎么做?
答案 0 :(得分:3)
您的个案陈述错误。它应该根据计数器值进行选择:
always @ (*) begin
case(counter)
1: data= 8'b00000011; //number 0
2: data= 8'b00100101; //number 2
3: data= 8'b10011001; //number 4
default:data=8'b00000011;
endcase
end
你的柜台应该是:
always @ (posedge clock) begin
if(reset==1 || counter == 3) counter <= 1;
else counter <= counter + 1;
end
请注意,case
是一个关键字。你不能在表达式中使用它。