cpld 做两路串口的切换

2020-02-03 11:14发布

cpld 做两路串口的切换 : 串口通过CPLD 后,接收到的数据 多了好多00000000 改怎么处理 如下图:,中间选中的,为有用的数据,其他好多无用的00,程序仅是通过 按键做两路 串口的切换。
assign xutxd1_c = (state_code == 1'b0)?xutxd2:sa_xutxd1;
assign xurxd1_c = (state_code == 1'b0)?xurxd2:sa_xurxd1;

改怎么处理才不会收到这么多无用的数据?求大神们指教!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
玄德
2020-02-04 14:33
本帖最后由 玄德 于 2016-8-15 10:44 编辑

应当是消抖没起到作用,造成开关抖动。

没细看全部代码,但这段就有逻辑问题,消抖根本无效:
只有第一个else在运行,后面两个根本没进入。
always@(posedge clk or negedge key_rst)
        if(!key_rst)cnt <= 20'd0;
        else if(key_neg||key_pos) cnt <= 20'd0;
        else if(cnt <=20'd999_999)cnt <= cnt +1'b1;
        else cnt <= 20'b0;



一周热门 更多>