|
本帖最后由 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位的.
不知道为什么啊 |
|