冒险武者 发表于 2022-4-10 22:32

安路SparkRoad基本功能电灯

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

<p>&nbsp;</p>

<pre>
<code>assign led = switch;</code></pre>

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

<p>&nbsp;</p>

<pre>
<code>module led_dri(
input    clk   ,
input    rst   ,
output    led
);
//parameter define
parameter   CLK_FS= 50_000; //1ms

//regdefine
//reg       led;
reg       cnt;
reg       tim;

//wire defien
wirecnt_overflow ;
assign cnt_overflow = (cnt == CLK_FS - 1'b1) ;

//clk div1ms
always@(posedge clk or posedge rst)
begin
   if(rst == 1'b1)
   cnt&lt;=   16'd0;
   else if(cnt_overflow)
   cnt&lt;=   16'd0;
   else
   cnt&lt;=cnt+ 1'b1;
end

//clk div
always@(posedge clk or posedge rst)
begin
   if(rst == 1'b1)
   tim&lt;=   16'd0;
   else if(tim &gt;= 16'h2000)
   tim&lt;=   16'd0;
   else
   tim&lt;=tim+ 1'b1;
end

assign led=tim ? 1'b1 : 1'b0;
assign led=tim ? 1'b1 : 1'b0;
assign led=tim ? 1'b1 : 1'b0;
assign led=tim ? 1'b1 : 1'b0;

assign led =(tim &lt;= 16'h1000) ? 12'h000 : 12'hfff ;

endmodule
</code></pre>

<p>&nbsp;</p>

<p>两种功能都比较简单,是否实现LED的闪烁,简单验证单板基本功能。</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

lugl4313820 发表于 2022-4-11 06:36

功能实现了,虽然我还没有入门FPGA,只能给你加油,来占个沙发。

Fred_1977 发表于 2022-4-11 09:11

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

nmg 发表于 2022-4-11 10:07

<p>配个代码实现效果gif 就更好了</p>

littleshrimp 发表于 2022-4-11 10:33

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

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

Fred_1977 发表于 2022-4-11 11:21

<p>谢谢提醒!</p>
页: [1]
查看完整版本: 安路SparkRoad基本功能电灯