最近硬件培训FPGA用verilog写UART,后仿真都过了没有错误,可是下载到板子里发送时,接收总会有错误的比特

仿真时没有问题的,就是最好在板子上验证时接收到的在正确的比特流中会有乱码,也就是有错,不知道为什么... 仿真时没有问题的,就是最好在板子上验证时接收到的在正确的比特流中会有乱码,也就是有错,不知道为什么 展开
 我来答
ppc68
2012-08-27 · TA获得超过581个赞
知道小有建树答主
回答量:1257
采纳率:100%
帮助的人:773万
展开全部
是偶有乱码的意思么,误码率高?波特率是怎么产生的,看看和波特率换算出来的差多少,用时钟抓数据可能是会有这种现象,应该很难避免,主要是降低误码率
更多追问追答
追问
板子上的本地时钟是100Mhz,9600波特率。我用了一个分频器模块,算出来的波特率为9600.6144393.....乱码大概发送每20帧就有乱码。
追答
0.6其实是误差不小的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pc_repair
2012-08-28 · TA获得超过1716个赞
知道小有建树答主
回答量:1150
采纳率:66%
帮助的人:475万
展开全部
学习归学习, 真正实用的程序需要用16倍频采样信号脉冲的中间点. 波特率发生器的周期要准确核定, 仿真一定要用实际运行的周期、速率。
追问
板子上的本地时钟是100Mhz,9600波特率。我用了一个分频器模块,算出来的波特率为9600.6144393.....乱码大概发送每20帧就有乱码。仿真也用的就是100Mhz,仿真都没有错
追答
100M可行, 就是9600bps采样的时候得用9600*16的时钟去采. 
具体做法是在检测到起始位下降沿时启动对9600*16时钟脉冲的计数器, 达到自适应对齐的效果, 然后数到8的时候踩在起始位中间清计数器. 随后每计16个周期采一次,采进的都是真数据, 采完为止. 最后倒序重组就是原发的数据.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
842496716
2012-08-27 · TA获得超过121个赞
知道答主
回答量:73
采纳率:0%
帮助的人:12.8万
展开全部
在里面加上 Locked Down 就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式