module pwm4_basic (
input wire clk,
input wire rst,
input wire [3:0] duty,
output reg pwm_out
);
reg [3:0] count; // 4-bit counter
always @(posedge clk) begin
if (rst) begin
count <= 4'd0;
pwm_out <= 1'b0;
end
else begin
// increment counter and wrap at 15 -> 0
count <= count + 1'b1;
// PWM output logic
if (count < duty)
pwm_out <= 1'b1;
else
pwm_out <= 1'b0;
end
end
endmodule