搜索
bottom↓
回复: 2

求助,看看这段Verilog有什么问题,

[复制链接]

出25入0汤圆

发表于 2020-11-4 16:49:20 | 显示全部楼层 |阅读模式
module rx_flame(
        input                   clk,               
        input                   rdsig,                //串口接收数据有效信号
        input      [7:0]        rxdata,               //串口接收数据
        output   [3:0]        ledctr                   //LED控制
       
    );
reg[3:0] sync_state = 4'h0;
reg[7:0] rxcounter = 8'h0;  //  接收字符串计数
reg[3:0] ledctr = 4'hf;
reg [7:0] rxstore[99:0];                        //存储接受字符



//--------------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:
                        begin
                                ledctr <= 4'b1111;
                                rxcounter <= 4'h0;
                        end
                SYNC_HEAD:          
                        begin
                            if(rxstore[0] == 8'hb1)                  //加上这一行就报错.
                                ledctr <= 4'b1110;
                        end
                LAOD_DATA_0:
                        begin
                                ;
                        end
                SYNC_END:
                        begin
                                ledctr <= 4'h0;
                        end
                default: ;
        endcase


always@(posedge clk)
        if(rdsig)
                case(sync_state)
                        IDLE:  if(rxdata == 8'hee )
                                        sync_state <= SYNC_HEAD;
                        SYNC_HEAD:
                                        if(rxdata == 8'hff )
                                        sync_state <= SYNC_END;
                                        else
                                                begin
                                                        if(rxcounter == 0)
                                                                begin
                                                                rxstore[0] <=rxdata;
                                                                rxcounter <= rxcounter+ 1'b1;
                                                                end
                                                        else if(rxcounter == 1)
                                                                begin
                                                                rxstore[1] <=rxdata;
                                                                rxcounter <= rxcounter+ 1'b1;
                                                                end
                                                        else ;
                                                end
                                SYNC_END: ;
                        default:;
                endcase
        else ;
endmodule



加上这一行就报错,该怎么改?
报错信息是这个
Line 44: Signal rxcounter[7] in unit rx_flame is connected to following multiple drivers:

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出30入54汤圆

发表于 2020-11-4 19:33:53 | 显示全部楼层
rxcounter一个信号只能在一个always语句块里面被驱动,你这个两个always语句块都有rxcounter被赋值的情况

出25入0汤圆

 楼主| 发表于 2020-11-4 21:46:39 | 显示全部楼层
cloudboy 发表于 2020-11-4 19:33
rxcounter一个信号只能在一个always语句块里面被驱动,你这个两个always语句块都有rxcounter被赋值的情况 ...

谢谢, 仔细一看,果然是你讲的.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 08:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表