Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. module pwm_c(clk,value,PWM_out,counter);
  2. input clk;
  3. input [3:0] value;
  4. output PWM_out;
  5. reg PWM_out;
  6.  
  7. output reg [3:0]counter;
  8.  
  9. parameter rst=1;
  10.  
  11. always@(posedge clk)
  12. begin
  13. if(!rst)
  14. counter <= 4'd0;
  15. else
  16. counter <= counter + 4'd1;
  17. end
  18.  
  19. always@(counter or value)
  20. begin
  21. if(value == 4'd0)
  22. PWM_out = 1'b0;
  23. else if(value == 4'd1)
  24. PWM_out = (counter >=4'd1) ? 1'b0:1'b1;
  25. else if(value == 4'd2)
  26. PWM_out = (counter >=4'd2) ? 1'b0:1'b1;
  27. else if(value == 4'd3)
  28. PWM_out = (counter >= 4'd3) ? 1'b0:1'b1;
  29. else if(value == 4'd4)
  30. PWM_out = (counter >= 4'd4) ? 1'b0:1'b1;
  31.  
  32. else if(value == 4'd5)
  33. PWM_out = (counter >= 4'd5) ? 1'b0:1'b1;
  34. else if(value == 4'd6)
  35. PWM_out = (counter >= 4'd6) ? 1'b0:1'b1;
  36. else if(value == 4'd7)
  37. PWM_out = (counter >= 4'd7) ? 1'b0:1'b1;
  38. else if(value == 4'd8)
  39. PWM_out = (counter >= 4'd8) ? 1'b0:1'b1;
  40.  
  41.  
  42. else if(value == 4'd9)
  43. PWM_out = (counter >= 4'd9) ? 1'b0:1'b1;
  44. else if(value == 4'd10)
  45. PWM_out = (counter >= 4'd10) ? 1'b0:1'b1;
  46. else if(value == 4'd11)
  47. PWM_out = (counter >= 4'd11) ? 1'b0:1'b1;
  48. else if(value == 4'd12)
  49. PWM_out = (counter >= 4'd12) ? 1'b0:1'b1;
  50.  
  51. else if(value == 4'd13)
  52. PWM_out = (counter >= 4'd13) ? 1'b0:1'b1;
  53. else if(value == 4'd14)
  54. PWM_out = (counter >= 4'd14) ? 1'b0:1'b1;
  55. else if(value == 4'd15)
  56. PWM_out = (counter >= 4'd15) ? 1'b0:1'b1;
  57.  
  58.  
  59. else
  60. PWM_out = 1'b0;
  61. end
  62.  
  63. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement