打印

verilog 串口波特率算法问题

[复制链接]
3451|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gd973zr|  楼主 | 2010-3-27 14:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
BaudGeneratorInc = (Baud<<BaudGeneratorAccWidth)/ClkFrequency;
上面的设计中存在一个错误: "BaudGeneratorInc"的计算是错误的, 因为 Verilog 使用 32 位的默认结果, 但实际计算过程中的某些数据超过了32位,所以改变一种计算方法。
parameter BaudGeneratorInc = ((Baud<<(BaudGeneratorAccWidth-4))+(ClkFrequency>>5))/(ClkFrequency>>4);
这行程序也使得结果成为整数,从而避免截断。

应该是一个挺简单的问题,可是我就是没有弄明白后面这个公式是如何推导出来的,那位朋友帮忙详细解释一下!谢谢了。

相关帖子

沙发
ilove314| | 2010-3-28 16:52 | 只看该作者
你的除法确定器件支持可综合吗?

使用特权

评论回复
板凳
xddzccn| | 2010-3-28 17:02 | 只看该作者
怎么感觉 LZ在写软件啊
波特率可以用 parameter来定义吧

使用特权

评论回复
地板
16ysa| | 2010-3-29 11:01 | 只看该作者
不懂 就是看看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

13

帖子

0

粉丝