zhiweiqiang33 发表于 2012-11-13 11:01:49

请教异步fifo设计时的一个问题

assign    usedword=(wptr>rptr)?(wptr-rptr)full?4'hFempty?4'h016-rptr+wptr)));
always @ (posedge w_clk or posedge clear)
if(clear)
begin
   wptr<=4'h0;
   pwptr<=4'h0;
end
else if(!full && wr) begin
mem<=data_in;
pwptr<=wptr;
wptr<=(&wptr)?4'h0wptr+1);
end   
always @ (posedge r_clk or posedge clear)
if(clear)
begin
   rptr<=4'h0;
   prptr<=4'h0;
   data_out<=8'h00;
end
else if(!empty && rd) begin
data_out<=mem;
prptr<=rptr;
rptr<=(&rptr)?4'h0rptr+1);
end
regn_full=1'b0;
assign full=(wptr==rptr)?n_full:1'b0;
assign empty=(wptr==rptr)?(~n_full):1'b0;
always @ (posedge w_clk or posedge r_clk)
if(w_clk)    n_full<=(wptr==prptr);
else          n_full<=(wptr==prptr);
页: [1]
查看完整版本: 请教异步fifo设计时的一个问题