|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2012-11-20 17:23:34
|
显示全部楼层
毕竟还是商业产品的代码,下面是我摘了一段,也是出问题的一段,请各位看看,是否可以看出什么问题:
always@(posedge clk)
begin
if(!nrst)
begin
mk_cnt_reg<=0;
runed_steps_per_mk<=0;
mk_sense_rise_temp<=0;
mk_sense_fal_temp<=0;
end
else
begin
if(mk_sense_rise) mk_sense_rise_temp<=1'b1;
if(mk_sense_fal) mk_sense_fal_temp<=1'b1;
//---------------------------------------------------------------------------------------
if ( (cs==0) && (add[6:0]==7'h18) && (add[9:7]==base_add) &&(wr==0) )
mk_cnt_reg[7:0]<=data_in;
else if ( (cs==0) && (add[6:0]==7'h19) && (add[9:7]==base_add) &&(wr==0) )
mk_cnt_reg[15:8]<=data_in;
else if(runed_steps==0)
runed_steps_per_mk<=0;
else if(not_init_run_flag)//
begin
if(contrl_reg[3])//
begin
if(mk_sense_rise_temp&&(runed_steps_per_mk>MK_FILTER_STEP))
begin
runed_steps_per_mk<=0;//问题就出在在这一句有时候没有执行,下同
mk_sense_rise_temp<=1'b0;
if(mk_cnt_reg==mk_top_vlu_reg)//达到峰值
mk_cnt_reg<=1;
else
mk_cnt_reg<=mk_cnt_reg+1;//问题就出在在这一句有时候没有执行,下同 end
else
begin
if(puls_out_fal)
runed_steps_per_mk<=runed_steps_per_mk+1;
end
end
else
begin
if(mk_sense_fal_temp&&(runed_steps_per_mk>MK_FILTER_STEP))//
begin
runed_steps_per_mk<=0;//
mk_sense_fal_temp<=1'b0;
if(mk_cnt_reg==mk_top_vlu_reg)//达到峰值
mk_cnt_reg<=1;
else
mk_cnt_reg<=mk_cnt_reg+1;
end
else
begin
if(puls_out_fal)
runed_steps_per_mk<=runed_steps_per_mk+1;
end
end
end
end
end |
|