【重拾FPGA】PWM的练习,改变代码风格 前言 本文主要还是想练习一下使用Typora写文档,然后通过markdown转到CSDN。之前做实验忙碌了一段时间,今天有空便重新写了一下PWM的程序,通过使用锆石的代码风格,将时序和组合逻辑分开写,确实是思路要清晰一点,能够只通过看电路图写出性能稳定的PWM波形产生器。 通过计数器产生PWM原理 通过上图,可以发现,实现PWM需要两个计数器:一个计数器cnt1用来计PWM的周期,另一个计数器cnt2只有当cnt1计满时,自增或自减,再通过判断cnt1和cnt2计数值大小关系,来确定输出高低电平,这样便可以实现PWM。 程序所需模块 PWM周期计数器:pwm_t 代码: //pwm_t,周期计数 always@(posedge clk or negedge rst_n) begin if(rst_n == 0) pwm_t <= 4'd0; else pwm_t <= pwm_t_next; end always@(*) begin if(pwm_t == pwm_time) pwm_t_next = 4'd0; else pwm_t_next =