gamehorse 发表于 2010-7-27 15:22:17

verilog 一个简单的串口程序,编译通不过

module light(clock, rxd, ledout);

input clock;
inputrxd;
output ledout;

reg count_reg;
reg t_b;
reg t;

reg bit_cnt;
reg bit_collect;
reg clock_div;
reg clock_pluse;
reg rxd_start_reg;
reg rxd_end;

//------------------------
always @(posedge clock)
begin
      if(clock_div < 8'd250 )//5次机会.
      begin
                clock_div=clock_div+1;
                clock_pluse = 0;
    end
      else
                clock_div = 0;
                clock_pluse = 1;
      begin
      end
end

always @(posedge clock_pluse)
begin
      if(rxd_start_reg == 1'b0)
      begin
                rxd_start_reg = 1'b1;
                count_reg = 4'h0;
                bit_cnt = 4'h0;
    end
    else
      begin
                count_reg = count_reg + 1;
                if(count_reg == 4'h2)
                        bit_collect = rxd;
                if(count_reg == 4'h3)
                        bit_collect = rxd;
                if(count_reg == 4'h4)
                begin
                bit_collect = rxd;//bit_cnt
                t_b = 1;//就是这里,不知道为什么编译通不过。
                           //(bit_collect & bit_collect) |
                            //(bit_collect & bit_collect) |
                        //(bit_collect & bit_collect) ;
                        bit_cnt=bit_cnt+1;
                        if( bit_cnt == 4'h1 && t_b == 1'b1 )
                        begin
                              rxd_start_reg = 1'b0;
                        end
                end
                               if( count_reg == 5'h4 )
                      count_reg = 0;
                if( bit_cnt > 4'h9)
                begin
                        rxd_end = 1;
                        rxd_start_reg = 0;
                end
      end
end

assign ledout = t_b;
//assign ledout = t_b;

endmodule
/*
t_b = 1;这里就是通不过,提示Error:Node ‘221.in’missing source这样的错误提示N多。

如果修改为t_b = 1,整个编译就通过了。

请大侠帮忙。。谢谢。
*/

suipeng70 发表于 2010-7-28 11:52:43

位数不对?
改t_b = 1'b1试试?
页: [1]
查看完整版本: verilog 一个简单的串口程序,编译通不过