FPGA_计数与点灯_计数器

一 理论 

数字系统中,如,计算机的控制器,运算器,数字仪器,均存在计数器,其主要是对脉冲的个数进行计数,以实现测量,计数和控制的功能,同时兼有分频的功能。

二 电路

开发板:

            使用fpga开发板上led灯。

            计数控制led灯在1秒内亮灭,如此反复。

原理图:

           led灯低电平控制下处于点亮状态。

三 信号

框图:

FPGA_计数与点灯_计数器_第1张图片

波形图(简易,仅理解原理):

FPGA_计数与点灯_计数器_第2张图片

计数器,存在计数与清零功能,当计数器取中值与最大值时,输出信号取反,其他时间,保持不变。

四 代码

module counter
#(
  parameter CNT_MAX=25'd24_999_999,
)//例化时,可传参。
(
  input wire sys_clk,
  input wire sys_rst_n,

  output reg led_out
);

reg [24:0] cnt;//定义中间变量。

always@(posedge sys_clk or negedge sys_rst_n)
   if(sys_rst_n==1'b0)//异步复位。
       cnt<=25'd0;//赋初值。
   else   if(cnt == CNT_MAX)
       cnt<=25'd0;//清零。
   else  
       cnt <= cnt + 25'd1;//计数。

always@(posedge sys_clk or negedge sys_rst_n)
   if(sys_rst_n==1'b0)//异步复位。
        led_out<=1'b0;//赋初值。
     else      if(cnt==CNT_MAX)
        led_out<=~led_out;//取反。
     else
        led_out<=led_out;//保持。

endmodule

你可能感兴趣的:(fpga,fpga开发,学习,图像处理,fpga,信号处理,系统架构)