碎碎念:
这一篇带来的是比较常用的PWM调制器,仿真的波形很好看哟!
感觉之前模块功能说明部分有些简单了,之后会加上专门讲解端口定义的表格!
这里发现了原作者的小bug,稍微有一丢丢成就感,在和人家进行沟通交流ing
目录
1 模块功能
输入8比特控制信息,输出对应的脉冲宽度调制信号。具体端口信息如下:
| 参数/端口名 | 功能说明 |
| CLK_HZ | 默认系统时钟频率 |
| PWM_PERIOD_DIV | 与MOD_WIDTH共同控制信号宽度 |
| PWM_PERIOD_HZ | PWM频率(实际上没用用到这个参数) |
| MOD_WIDTH | 调制控制信号的宽度 |
| clk | 输入系统时钟 |
| nrst | 系统复位信号 |
| mod_setpoint | 调制的设定值 |
| pwm_out | PWM输出信号 |
| start_strobe | 开始某一次调制的输出标志 |
| busy | 运行状态忙碌标志 |
2 模块代码
//------------------------------------------------------------------------------
// pwm_modulator.sv
// Konstantin Pavlov, pavlovconst@gmail.com
//------------------------------------------------------------------------------
// INFO ------------------------------------------------------------------------
// Pulse width modulation (PWM) generator module
//
// - expecting 8-bit control signal input by default
// - system clock is 100 MHz by default
// - PWM clock is 1.5KHz by default
//
// - see also pdm_modulator.sv for pulse density modulation generator
/* --- INSTANTIATION TEMPLATE BEGIN ---
pwm_modulator #(
.PWM_PERIOD_DIV( 16 ) // 100MHz/2^16= ~1.526 KHz
.MOD_WIDTH( 8 ) // from 0 to 255
) pwm1 (
.clk( clk ),
.nrst( nrst ),
.control( ),
.pwm_out(

本文介绍了一种基于SystemVerilog的PWM调制器设计方法,包括模块功能、代码实现、工作原理及仿真验证过程。该设计通过调整输入控制信号来改变输出PWM信号的脉冲宽度。
&spm=1001.2101.3001.5002&articleId=126293547&d=1&t=3&u=a8f8d68e7fb544558f5e1877c14a2c52)
806

被折叠的 条评论
为什么被折叠?



