hspydf 发表于 2020-11-3 22:17:36

求助,一段Verilog代码,看看哪里不对.

module rx_flame(
        input                   clk,
        input                   rdsig,                //串口接收数据有效信号
        input            rxdata,               //串口接收数据
        output         ledctr
       
    );
reg sync_state;
reg ledctr;



//--------------internal signal declarration----------
parameter         IDLE=4'h0,
                  SYNC_HEAD=4'h1,
                  LAOD_DATA_0=4'h2,
                  LAOD_DATA_1=4'h3,
                  SYNC_END=4'h4;
always@(posedge clk)
        case (sync_state)
                IDLE: ledctr <= 4'b1111;
                SYNC_HEAD: ledctr <= 4'b1110;
                LAOD_DATA_0: ledctr <=4'b1101;
                default: ;
        endcase
       
always@(posedge clk)
                case(sync_state)
                        IDLE:if(rxdata == 8'h55)
                                        sync_state <= SYNC_HEAD;
                        SYNC_HEAD: ;
                        default:;
                endcase

endmodule

///////////////////////
串口rxdata收到 0x55的时候sync_state <= SYNC_HEAD;可是我串口什么数据都没发,执行sync_state <= SYNC_HEAD了

swdebug 发表于 2020-11-3 23:34:54

1. 状态机赋初值 sync_state = 0
2. rxdata 和 clk是否是随路时钟,不是的话要打拍处理.
页: [1]
查看完整版本: 求助,一段Verilog代码,看看哪里不对.