中级会员 
   
	- 积分
 - 339
 
        - 金钱
 - 339 
 
       - 注册时间
 - 2014-4-18
 
      - 在线时间
 - 71 小时
 
 
 
 | 
 
1金钱 
 
问下大家为什么这个会报 Io_control[3:0] does not match a standard flip-flop 谢谢大家 网上搜了一圈还是找不到原因 
 
module command_recv( 
    input                          sys_clk,                  //?????? 
    input             sys_rst_n,                //???????????????  
    input   [7:0] uart_data,                 //???????     
    input         uart_en,                  //?????????.uart_done(uart_en_w), 
    output  reg[3:0] Io_control   
); 
 
 
//***************************************************** 
//**                    main code 
//*****************************************************   
reg [4:0]    c_state; 
reg [8:0]    data_check; 
reg [8:0]    command_buf; 
reg [3:0]    command_cnt; 
reg  cmd_valid_en; 
//reg define 
reg        uart_en_d0;  
reg        uart_en_d1;  
reg [ 7:0] tx_data;   
//wire define 
wire       en_flag; 
 
//***************************************************** 
//**                    main code 
//***************************************************** 
assign en_flag = (~uart_en_d1) & uart_en_d0; 
 
//assign Io_out= Io_control; 
initial begin 
  c_state=1; 
  command_cnt=0; 
end 
 
always @(posedge sys_clk or negedge sys_rst_n) begin          
    if (!sys_rst_n) begin 
        uart_en_d0 <= 1'b0;                                   
        uart_en_d1 <= 1'b0; 
    end                                                       
    else begin                                                
        uart_en_d0 <= uart_en;                                
        uart_en_d1 <= uart_en_d0;                             
    end 
end 
 
 
always  @(posedge sys_clk or negedge sys_rst_n) begin 
 
    if (!sys_rst_n) begin 
        c_state=1; 
        command_cnt=0; 
    end  
         begin 
               tx_data=uart_data; 
               if(tx_data==8'hd7)begin 
                Io_control <= 4'b1111;  
               end 
                c_state=1; 
         end 
  end   
 
always  @(posedge sys_clk or negedge sys_rst_n) begin 
       if(cmd_valid_en==1) begin 
       end 
end 
 
endmodule  
 
 
 |   
 
 
最佳答案
查看完整内容[请看2#楼] 
always  @(posedge sys_clk or negedge sys_rst_n) begin
    if (!sys_rst_n) begin
        c_state=1;
        command_cnt=0;
    end 
    else    begin
               tx_data=uart_data;
               if(tx_data==8'hd7)begin
                Io_control 
 
 
 
 
 
 
 |