FPGA_计数与点灯_奇分频

一 理论

分频器,分为偶数分频,奇数分频,和计数器非常类似。分频器就是把输入信号频率变成倍数低于输入频率的输出信号。

二 电路

开发板:

  输出信号输出至开发板拓展io口,使用示波器显示波形,检测信号频率。

三 信号

框图:

FPGA_计数与点灯_奇分频_第1张图片

波形图:

FPGA_计数与点灯_奇分频_第2张图片

四 代码

module divider_six
(
  input wire sys_clk,
  input wire sys_rst_n,
 
  output wire clk_out
);
 
reg [2:0] cnt;//定义中间变量。
reg       clk_1;
reg       clk_2;//信号1bit

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

always@(posedge sys_clk or negedge sys_rst_n)//上升沿采样。
   if(sys_rst_n==1'b0)//异步复位.
        clk_1<=1'b0;//赋初值。
     else      if(cnt==3'd2)
        clk_1<=1'b1;//取高电平。
     else      if(cnt==3'd4)
        clk_1<=1'b0;//取低电平。
     else      
        clk_1=clk_1;//保持。

always@(nesedge sys_clk or negedge sys_rst_n)//下降沿采样。
   if(sys_rst_n==1'b0)//异步复位。
        clk_2<=1'b0;//赋初值。
     else      if(cnt==3'd2)
        clk_2<=1'b1;//取高电平。
     else      if(cnt==3'd4)
        clk_2<=1'b0;//取低电平。
     else      
        clk_2=clk_2;//保持。


assign clk_out=(clk_1,clk_2);//相与运算。

endmodule

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