当前位置:网站首页>手撕Verilog PWM呼吸灯
手撕Verilog PWM呼吸灯
2022-07-31 12:12:00 【IC学习者】
pwm的频率通过parameter传递,
对clk按 (分频参数+1)进行分频,
占空比从0增加到 分频参数/(分频参数+1)
rtl
module pwm#(
parameter [10:0] FREQUENCY = 11'd4
)(
input clk,
input rst_n,
output pwm
);
reg [10:0] freq;
reg [10:0] duty;
always @(posedge clk ) begin
if(!rst_n)
freq <= 11'd0;
else if(freq == FREQUENCY) begin
freq <= 11'd0;
end
else begin
freq <= freq + 1'b1;
end
end
always @(posedge clk ) begin
if(!rst_n)
duty <= 11'd0;
else if(freq == FREQUENCY) begin
if(duty < FREQUENCY)
duty <= duty + 1'b1;
else
duty <= 11'd0;
end
end
assign pwm = (freq < duty)? 1'b1: 1'b0;
endmodule
tb
module tb_pwm(
);
parameter CYCLE = 10;
reg clk;
reg rst_n;
wire pwm;
initial begin
clk = 1'b0;
rst_n = 1'b0;
#20 rst_n = 1'b1;
end
always #(CYCLE/2) clk = ~clk;
pwm u1(
.clk(clk),
.rst_n(rst_n),
.pwm(pwm)
);
endmodule
仿真结果
边栏推荐
猜你喜欢
Docker实践经验:Docker 上部署 mysql8 主从复制
MySQL日志中“binlog”的三种格式玩起来真爽
Experience innovation and iteration through the development of lucky draw mini-programs
Docker安装canal、mysql进行简单测试与实现redis和mysql缓存一致性
ESP8266-Arduino编程实例-MCP9808数字温度传感器驱动
Docker installs canal and mysql for simple testing and achieves cache consistency between redis and mysql
MySql模糊查询大全
Spark GC日志分析
ESP8266-Arduino编程实例-HDC1008温度湿度传感器驱动
chroot命令
随机推荐
学习笔记 Golang 写入文件(io.WriteString、ioutil.WriteFile、file.Write、write.WriteString)
JVS设置不同应用的登录时效时间
机器学习基本概念
在 Excel 内使用 ODBC 消费 SAP ABAP CDS view
ESP8266-Arduino编程实例-MCP9808数字温度传感器驱动
Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
基于姿态估计的护具佩戴检测与动作识别
关于IDEA开发工具的介绍
The item 'node.exe' was not recognized as the name of a cmdlet, function, script file, or runnable program.
ApiPost is really fragrant and powerful, it's time to throw away Postman and Swagger
Chrome开发自定义右键菜单实现快速跳转到指定页面
数据湖(十九):SQL API 读取Kafka数据实时写入Iceberg表
Data Persistence Technology - MP
ESP8266-Arduino编程实例-HDC1008温度湿度传感器驱动
Docker实践经验:Docker 上部署 mysql8 主从复制
Redis学习笔记-3.慢查询和其他高级数据结构
B/S架构模式的一个整体执行流程
Exploring Plain Vision Transformer Backbones for Object Detection Paper Reading Notes
Use docker to build mysql master-slave
A40i/T3 uboot启动时对PMU部分初始化