电灯分为两中,第一种纯组合逻辑实现,LED与switch开关各由16个,一一对应,可以直接pin2pin直连,通过SWITCH开关控制
另外一种就是通过时序逻辑实现,用时钟频率计数,实现LED交替闪烁
- module led_dri(
- input clk ,
- input rst ,
- output [15:0] led
- );
-
- parameter CLK_FS = 50_000;
-
-
-
- reg [15:0] cnt ;
- reg [15:0] tim ;
-
-
- wire cnt_overflow ;
- assign cnt_overflow = (cnt == CLK_FS - 1'b1) ;
-
- //clk div 1ms
- always@(posedge clk or posedge rst)
- begin
- if(rst == 1'b1)
- cnt <= 16'd0 ;
- else if(cnt_overflow)
- cnt <= 16'd0 ;
- else
- cnt <= cnt + 1'b1 ;
- end
-
- //clk div
- always@(posedge clk or posedge rst)
- begin
- if(rst == 1'b1)
- tim <= 16'd0 ;
- else if(tim >= 16'h2000)
- tim <= 16'd0 ;
- else
- tim <= tim + 1'b1 ;
- end
-
- assign led[0] = tim[15] ? 1'b1 : 1'b0;
- assign led[1] = tim[14] ? 1'b1 : 1'b0;
- assign led[2] = tim[13] ? 1'b1 : 1'b0;
- assign led[3] = tim[12] ? 1'b1 : 1'b0;
-
- assign led[15:4] = (tim <= 16'h1000) ? 12'h000 : 12'hfff ;
-
- endmodule
-
两种功能都比较简单,是否实现LED的闪烁,简单验证单板基本功能。
|