FPGA点灯

来源:互联网 发布:淘宝怎么打假手机 编辑:程序博客网 时间:2024/04/30 19:55

自己学FPGA也是有一段时间,乱玩,自己看,都说FPGA很自由,我也是现在才感觉到,是不是应该叫后知后觉。。。刚开始玩很不喜欢verilog,虽然说是思想一样,可是表达出来感觉完全不是那个事。。。。自己慢慢玩到了nios,自己也没有系统的学,基本上是走到就学到哪,只想自己看到的东西,实现方法完全没有多考虑了。。。现在算是有点点自己的想法了,就开始一点点的来做好。

FPGA这个东西啊,是个积木,时钟对它来说是个很重要的东西,你要是简单的看就很简单,复杂的看就很复杂,呵呵,对于我个人就简单的看吧。。。。深入了头疼。

一般FPGA开发板都是50Mhz的有源晶振。执行速度指令速度大概的估算就是1/50Mhz =0.02us=0.00002ms= 0.00000002s (应该是吧,反正指令周期,机器周期我就没怎么深究过),哈哈哈哈哈哈。。。。。

人的眼睛识别 LED 的效果又有限,所以就只好LED闪速时间延长点。初步定在500ms吧,这样就是要有(500*1000)us。。。相对于FPGA就要进行25000000次计数,这里的计数相当于单片机里面的for循环延时.




上代码:

module led_dis
(
input clk,reset,
output reg led
);


reg [25:0]led_cnt;


parameter Delay_500ms = 2500_0000;


always @(posedge clk or negedge reset)
begin
if(!reset)
led_cnt <= 26'd0;
else 
if(led_cnt == Delay_500ms)
begin
led_cnt <= 26'd0;
led <= ~led;
end
else 
led_cnt <= led_cnt + 1'b1;
end


endmodule



原创粉丝点击