FPGA之花样流水灯控制模块

例子:8个灯中,硬件控制其中1个LED灯以0.5秒的速度正向点亮一次,然后逆向点亮1次,并不断循环。主:系统时钟为50MHZ

分析:首先,信号:8个灯、系统时钟clk、需要时钟0.5秒;

           实现:系统时钟分频0.5秒模块。控制灯亮一个。

module div_25M(clk_50M,CLk_2HZ)
  input clk_50M;
  output CLK_2HZ;
  reg[23:0] count;
  reg CLK_2HZ;
parameter cnt=1.25e7;
always@(posedge clk_50M)
  begin
    if(count==cnt/2-1)
      count<=0;
      CLK_2HZ<=~CLK_2HZ;
   else
      count<=count+1;
 end
endmodule

   

上述为分频模块

module led_ctrol(rst,clk)
 input   clk,rst;
 output [7:0] led;
 reg flag;
 reg [7:0] led;
 always @(posedge clk)
  begin
  if(rst)
    led<=8'b00000001;
    flag<=0;
  else if(flag==0)
       led<=led<<1;
       if(led==8'b1000000)
         flag<=1;
   else  
       led<=led>>1;
       if()  
 
 

猜你喜欢

转载自blog.csdn.net/T_J_S/article/details/83240509