Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module pwm_c(clk,value,PWM_out,counter);
- input clk;
- input [3:0] value;
- output PWM_out;
- reg PWM_out;
- output reg [3:0]counter;
- parameter rst=1;
- always@(posedge clk)
- begin
- if(!rst)
- counter <= 4'd0;
- else
- counter <= counter + 4'd1;
- end
- always@(counter or value)
- begin
- if(value == 4'd0)
- PWM_out = 1'b0;
- else if(value == 4'd1)
- PWM_out = (counter >=4'd1) ? 1'b0:1'b1;
- else if(value == 4'd2)
- PWM_out = (counter >=4'd2) ? 1'b0:1'b1;
- else if(value == 4'd3)
- PWM_out = (counter >= 4'd3) ? 1'b0:1'b1;
- else if(value == 4'd4)
- PWM_out = (counter >= 4'd4) ? 1'b0:1'b1;
- else if(value == 4'd5)
- PWM_out = (counter >= 4'd5) ? 1'b0:1'b1;
- else if(value == 4'd6)
- PWM_out = (counter >= 4'd6) ? 1'b0:1'b1;
- else if(value == 4'd7)
- PWM_out = (counter >= 4'd7) ? 1'b0:1'b1;
- else if(value == 4'd8)
- PWM_out = (counter >= 4'd8) ? 1'b0:1'b1;
- else if(value == 4'd9)
- PWM_out = (counter >= 4'd9) ? 1'b0:1'b1;
- else if(value == 4'd10)
- PWM_out = (counter >= 4'd10) ? 1'b0:1'b1;
- else if(value == 4'd11)
- PWM_out = (counter >= 4'd11) ? 1'b0:1'b1;
- else if(value == 4'd12)
- PWM_out = (counter >= 4'd12) ? 1'b0:1'b1;
- else if(value == 4'd13)
- PWM_out = (counter >= 4'd13) ? 1'b0:1'b1;
- else if(value == 4'd14)
- PWM_out = (counter >= 4'd14) ? 1'b0:1'b1;
- else if(value == 4'd15)
- PWM_out = (counter >= 4'd15) ? 1'b0:1'b1;
- else
- PWM_out = 1'b0;
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement