|
本帖最后由 fpgaw 于 2010-7-12 12:26 编辑
module sled (seg , sl , clock); //定义模块结构
output [7:0] seg; //定义数码管段输出引脚
output [3:0] sl; //定义数码管选择输出引脚
input clock; //定义输入时钟引脚
reg [7:0] seg_reg; //定义数码管段输出寄存器
reg [3:0] sl_reg; //定义数码管选择输出寄存器
reg [3:0] disp_dat; //定义显示数据寄存器
reg [7:0] count; //定义计数器寄存器
always @(posedge clock) //定义clock信号下降沿触发
begin
count=count+1; //计数器值加1
end
always
begin
sl_reg=4'b0000;
end
always @(count[4]) //定义显示数据触发事件
begin
disp_dat = count[7:4]; //显示个位数值
end
always @(disp_dat) //显示译码输出
begin
case (disp_dat) //选择输出数据
4'h0: seg_reg = 8'hc0; //显示0
4'h1: seg_reg = 8'hf9; //显示1
4'h2: seg_reg = 8'ha4; //显示2
4'h3: seg_reg = 8'hb0; //显示3
4'h4: seg_reg = 8'h99; //显示4
4'h5: seg_reg = 8'h92; //显示5
4'h6: seg_reg = 8'h82; //显示6
4'h7: seg_reg = 8'hf8; //显示7
4'h8: seg_reg = 8'h80; //显示8
4'h9: seg_reg = 8'h90; //显示9
4'ha: seg_reg = 8'h88; //显示a
4'hb: seg_reg = 8'h83; //显示b
4'hc: seg_reg = 8'hc6; //显示c
4'hd: seg_reg = 8'ha1; //显示d
4'he: seg_reg = 8'h86; //显示e
4'hf: seg_reg = 8'h8e; //显示f
endcase
end
assign seg=seg_reg; //输出数码管译码结果
assign sl=sl_reg; //输出数码管选择
endmodule
对于这段程序有个问题:寄存器count是一个8位的寄存器,当它计数满以后,即FF后,程序还能运行吗?为什么 |
|