`timescale 1ns / 1ps
module pwm #(parameter PERIOD = 10, HTIME = 3, N = 4) (input sys_clk,input sys_rst_n,output logic o_pwm);logic [N - 1 : 0] r_cnt;always_ff @(posedge sys_clk) beginif(!sys_rst_n) r_cnt <= 0;else if (r_cnt ==PERIOD - 1) r_cnt <= 0;else r_cnt <= r_cnt + 1;endalways_ff @(posedge sys_clk) beginif(!sys_rst_n) o_pwm <= 1'b0;else if (r_cnt ==HTIME - 1) o_pwm<= 1'b1;else if (r_cnt ==HTIME - 2) o_pwm<= 1'b1;else if (r_cnt ==HTIME - 3) o_pwm<= 1'b1;else o_pwm <= 1'b0;endendmodule
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!