这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » FPGA产生PWM例程

共8条 1/1 1 跳转至

FPGA产生PWM例程

助工
2012-12-09 22:09:27     打赏

请师兄师弟们上传用FPGA产生PWM信号控制LED明暗的例程,最好加上注析,不胜感激....




关键词: 产生     例程    

助工
2012-12-09 22:10:10     打赏
2楼
求解...

高工
2012-12-10 08:29:09     打赏
3楼
额~~够直接的,至少先把你自己做了那些努力说一下吧~

高工
2012-12-10 10:15:33     打赏
4楼
产生pwm?可以用param参数吧?

助工
2012-12-10 22:39:15     打赏
5楼

 

module Led( clk, rst_n, out );
  
  input clk, rst_n;
  output out;
  
  reg[5:0] out;
  reg[15:0] count, pwm; //周期,脉宽
  
// PWM周期数累加  
  always @(posedge clk or negedge rst_n)
  begin
   if(!rst_n)
   begin count <= 16'h0; end
   else
   begin count <= count + 1'b1; end    
  end
   
  always @(posedge clk or negedge rst_n)   
  begin
   if(!rst_n)
   begin out <= 6'h3f; end
   else
   begin
    if(count[15] == 1) //周期数清0
     count <= 16'h0;
    else
    begin
     if(count < pwm)
      out <= 6'h3f;
     else
      out <= 6'h00;
    end
   end
  end
  
  always @(posedge count[14] or rst_n)
  begin
   if(!rst_n)
   begin pwm <= 16'h0; end
   else
   begin
    pwm <= pwm + 1'b1;
    if(pwm[13] == 1)
    begin
     pwm <= 16'h0;
    end
   end
  end
  
endmodule


助工
2012-12-10 22:40:50     打赏
6楼
无法编辑通过,有没有更好的例程,谢谢...

助工
2012-12-10 22:41:56     打赏
7楼

 

module Led( clk, rst_n, out );
  
  input clk, rst_n;
  output out;
  
  reg[5:0] out;
  reg[15:0] count, pwm; //周期,脉宽
  
// PWM周期数累加  
  always @(posedge clk or negedge rst_n)
  begin
   if(!rst_n)
   begin count <= 16'h0; end
   else
   begin count <= count + 1'b1; end    
  end
   
  always @(posedge clk or negedge rst_n)   
  begin
   if(!rst_n)
   begin out <= 6'h3f; end
   else
   begin
    if(count[15] == 1) //周期数清0
     count <= 16'h0;
    else
    begin
     if(count < pwm)
      out <= 6'h3f;
     else
      out <= 6'h00;
    end
   end
  end
  
  always @(posedge count[14] or rst_n)
  begin
   if(!rst_n)
   begin pwm <= 16'h0; end
   else
   begin
    pwm <= pwm + 1'b1;
    if(pwm[13] == 1)
    begin
     pwm <= 16'h0;
    end
   end
  end
  
endmodule 



无法编译,或有没有更好的例程,谢谢...


高工
2012-12-11 06:58:46     打赏
8楼
在两个always更新了count值。没有程序提供,谢谢

共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]