| 
 | 
 
 本帖最后由 fpgaw 于 2010-11-12 04:50 编辑  
 
module fifo( 
  rst_n_wr, 
  wr_clk, 
  wr_en, 
  wr_data, 
  rst_n_rd, 
  rd_clk, 
  rd_en, 
  rd_data, 
); 
  input   rst_n_wr; 
  input   wr_clk; 
  input   wr_en; 
  input[31:0] wr_data; 
  input  rst_n_rd; 
  input  rd_clk; 
  input  rd_en; 
  output[31:0]  rd_data; 
 
 
  reg[31:0] fifo_ram[15:0]; 
   
 reg[3:0]wr_ptr_bin1; 
  
 reg[31:0]wr_ptr_bin; 
  
  wire[31:0] wr_ptr_gray; 
  
  reg [31:0] rd_ptr_bin; 
  // wire[32:0] rd_ptr_gray; 
  wire[31:0] rd_ptr_gray; 
 
   always@(posedge wr_clk or negedge rst_n_wr)   
 begin 
    if(!rst_n_wr) 
      begin 
      wr_ptr_bin1<=4'b0; 
      end  
    else  
      begin 
      if(wr_en==1&&wr_full==0) 
        wr_ptr_bin1 <= wr_ptr_bin1 +1 ; 
      end 
   end 
    
    
 always@(posedge wr_clk or negedge rst_n_wr)   
 begin 
    if(!rst_n_wr) 
      begin 
      wr_ptr_bin<=32'b0; 
 
      end  
    else  
      begin 
      if(wr_en==1&&wr_full==0) 
        wr_ptr_bin <= wr_ptr_bin +1 ; 
      end 
   end 
  
  
 第一个  always块能编译通过,第二个 always块编译出现"can't resolve multiple constant drivers for net “wr_ptr_bin1·”" 
 区别是wr_ptr_bin是32位的,wr_ptr_bin1是4位的. 
 不知道为什么啊 |   
 
 
 
 |