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