//切换数码管段选 always @(posedge clk or negedge rst_n) begin if (!rst_n) begin seg_flag<=0; end else begin case (sel) 6'b111_110: begin seg_flag<=dout_time[19:18]; dot<=1'b1;end //小时 十位 6'b111_101: begin seg_flag<=dout_time[17:14]; dot<=1'b0;end //小时 个位 6'b111_011: begin seg_flag<=dout_time[13:11]; dot<=1'b1;end //分钟 十位 6'b110_111: begin seg_flag<=dout_time[10:7]; dot<=1'b0;end //分钟 个位 6'b101_111: begin seg_flag<=dout_time[6:4]; dot<=1'b1;end //秒 十位 6'b011_111: begin seg_flag<=dout_time[3:0]; dot<=1'b1;end //秒 个位 default :seg_flag<=0; endcase end end
时间: 2024-03-07 15:53:11 浏览: 76
动态数码管,时分秒,外部中断,数码管的位选和段选。
5星 · 资源好评率100%
这段代码是一个 Verilog HDL 的模块,用于控制数码管的显示。模块的输入包括时钟信号 clk、复位信号 rst_n、选择信号 sel,和时钟周期内的数据 dout_time。其中,sel 用于选择需要显示的数据,dout_time 包含了需要显示的具体数值。在模块内部,使用了 case 语句根据 sel 的值选择需要显示的数据,然后将数据送到数码管的段选信号中。同时,还控制了数码管小数点的显示。
阅读全文