verilog 初试牛刀
//'define ADDFUN
module verilog_multf(clk,speaker,key,value,which,led);
input clk;
input [5:1]key;///按键引脚
output speaker;//输出扬声器控制引脚
output [7:0] value;///数码管的值
output [7:0] which;///数码管的选通信号
output [7:0] led;////流水灯
reg [7:0] val_arr[8];///用来记录各个数码管里面的值
reg [7:0] shuma_chance=0;///此时显示那个数码通道
reg [7:0] reg_led=8'b1111_1111;///LED流水灯的记录信息
reg [25:0] count=0;///用来分频的计数值
reg [7:0] shuma_value=0;
reg [7:0] dis_value=0;
reg speaker;
wire fre_200,fre_250;
always@(posedge clk)////分频
begin
count<=count+1;
end
assign led=reg_led;
assign fre_200=count[24];
assign fre_250=count[25];
always@(fre_250)////流水灯
begin
case(reg_led)
8'b0000_0001:reg_led<=8'b0000_0010;
8'b0000_0010:reg_led<=8'b0000_0100;
8'b0000_0100:reg_led<=8'b0000_1000;
8'b0000_1000:reg_led<=8'b0001_0000;
8'b0001_0000:reg_led<=8'b0010_0000;
8'b0010_0000:reg_led<=8'b0100_0000;
8'b0100_0000:reg_led<=8'b1000_0000;
8'b1000_0000:reg_led<=8'b0000_0001;
default reg_led<=8'b0000_0001;
endcase
end
endmodule
后面的流水灯在板子上跑一直不对,我一个同学说我是的流水灯设计是用的组合逻辑,是用的C语言的思维写的,我不明白,怎么才能设计成时序逻辑?我就是想每次分频后的时钟过来,然后流水灯动一下