From 4b6e0102d20d9ab060ce930e4b846c8be446bb06 Mon Sep 17 00:00:00 2001 From: Vasil Zlatanov Date: Mon, 12 Dec 2016 21:51:10 +0000 Subject: public push --- part_4/ex16/pwm.v | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 part_4/ex16/pwm.v (limited to 'part_4/ex16/pwm.v') diff --git a/part_4/ex16/pwm.v b/part_4/ex16/pwm.v new file mode 100644 index 0000000..c3b34d9 --- /dev/null +++ b/part_4/ex16/pwm.v @@ -0,0 +1,25 @@ +module pwm (clk, data_in, load, pwm_out); + + input clk; // system clock + input [9:0] data_in; // input data for conversion + input load; // high pulse to load new data + output pwm_out; // PWM output + + reg [9:0] d; // internal register + reg [9:0] count; // internal 10-bit counter + reg pwm_out; + + always @ (posedge clk) + if (load == 1'b1) d <= data_in; + + initial count = 10'b0; + + always @ (posedge clk) begin + count <= count + 1'b1; + if (count > d) + pwm_out <= 1'b0; + else + pwm_out <= 1'b1; + end + +endmodule -- cgit v1.2.3-54-g00ecf