[其他芯片] 安路SparkRoad基本功能电灯

冒险武者   2022-4-10 22:32 楼主

电灯分为两中,第一种纯组合逻辑实现,LED与switch开关各由16个,一一对应,可以直接pin2pin直连,通过SWITCH开关控制

 

assign led = switch;

另外一种就是通过时序逻辑实现,用时钟频率计数,实现LED交替闪烁

 

module led_dri(
input    clk   ,
input    rst   ,
output   [15:0] led
);
//parameter define
parameter   CLK_FS  = 50_000; //1ms

//reg  define
//reg    [15:0]   led  ;
reg    [15:0]   cnt  ;
reg    [15:0]   tim  ;

//wire defien 
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的闪烁,简单验证单板基本功能。

 

 

 

回复评论 (5)

功能实现了,虽然我还没有入门FPGA,只能给你加油,来占个沙发。
点赞  2022-4-11 06:36

我也刚入门FPGA,给你加油,正在学按键如何消抖,努力中。。。。

点赞  2022-4-11 09:11

4楼 nmg 

配个代码实现效果gif 就更好了

点赞  2022-4-11 10:07
引用: Fred_1977 发表于 2022-4-11 09:11 我也刚入门FPGA,给你加油,正在学按键如何消抖,努力中。。。。

按键消抖正点原子和黑金好像有例程可以借鉴一下

点赞  2022-4-11 10:33

谢谢提醒!

点赞  2022-4-11 11:21
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复