FPGA实际运行时,寄存器(变量)的值乱跳的解决办法 您所在的位置:网站首页 ls374芯片 FPGA实际运行时,寄存器(变量)的值乱跳的解决办法

FPGA实际运行时,寄存器(变量)的值乱跳的解决办法

#FPGA实际运行时,寄存器(变量)的值乱跳的解决办法| 来源: 网络整理| 查看: 265

 下面是串口接收代码。实际运行时,发现i有时候会从10跳变为2或8,但程序中却没有这样的语句,让人百思不得其解。

module UARTReceiver #( parameter SYSCLK = 50000000 )( input clock, // 系统时钟 input nrst, // 模块复位 input rx, // 串口接收引脚 input [23:0] baud_rate, // 波特率 output reg received, // 是否收到了数据 output reg [7:0] data // 收到的数据内容 (received信号为上升沿或者高电平时才可以读取) ); wire _rx = rx; integer counter; // 波特率计数器 reg [3:0] bit_i; // 当前正在接收第几位数据 (0为起始位, 1-8为数据位, 9为停止位, 10为空闲) wire bit_sample = (counter == SYSCLK / baud_rate / 2 - 1); // 采样信号 wire bit_end = (counter == SYSCLK / baud_rate - 1); // 位结束信号 // 接收数据 always @(posedge clock, negedge nrst) begin if (!nrst) begin // 模块复位 bit_i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有