前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >串口通信控制器的Verilog HDL实现(二) 波特率发生器模块

串口通信控制器的Verilog HDL实现(二) 波特率发生器模块

作者头像
瓜大三哥
发布2018-02-24 17:32:15
3.3K0
发布2018-02-24 17:32:15
举报
文章被收录于专栏:瓜大三哥

波特率发生器实际上是一个分频器,从给定的系统时钟频率得到要求的波特率。一般来讲,为了提高系统的容错性处理,要求波特率发生器的输出时钟为实际串口数据波特率的N倍,N可以取值为8、16、32、64等。在本设计中,取N为16,因此波特率发生器的输出号频率应改为9600*16=153.6kbps。

由于串口速率较低,其16倍频率值也不高,因此在设计中,可以不要求波特率发生器输出信号的占空比为50%,在本例中,其占空比为1:325。设计中的波特率发生器的代码(baud_gen.v)如下所列。

代码语言:js
复制
module baud_gen(
clk_50MHz,rst_p,bclk
    );
 input clk_50MHz;
 input rst_p;
 output bclk;//153.60kbps
 reg bclk;
 reg [8:0]cnt;//50000000/153600=325.5
 always @(posedge clk_50MHz)
 begin
if(rst_p)
begin
cnt<=0;
bclk<=0;
end
else
begin
if(cnt>324)
begin
cnt<=0;
bclk<=1;
end
else
begin
cnt<=cnt+1;
bclk<=0;
end
end
 end
endmodule
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瓜大三哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档