我现在要做一个回波的首波时间检测,具体判断方法为使用一个门槛电压和比较器进行比较,
当TimeEnd=1时我就认为是回波已经来了。
然后做出来的仿真如下 :
	
 
如图
使用的是计数的方式来计算回波的时间,前面一段为激发和拖尾,我不认为是回波到来的时刻,所以让计数一直进行,然后到后面遇见高电平就停止计数。
现在存在的问题是,回波来之后TimeEnd信号的波形如图后半段所示, 我怎么才能在回波一来临的时候就停止计数??
下面是现在的程序
	module TimeDetection  (
                        clk,                               
reset,
  //PHOneStart,
  TimeEnd,                           //全波列和比较器比较,高电平有效表示首波已经到来。
TimeData
                       );
 input clk;
 input reset;
    //input PHOneStart;
 input TimeEnd;
 output TimeData;
 reg [11:0] TimeData;
 
parameter  Time_Exc = 12'd799;                             //16us
 
always @ (posedge clk or negedge reset)
  if (!reset)
   TimeData <= 12'd0;
 // else if (PHOneStart)
 //  TimeData <= 12'd0;
  else if (TimeData < Time_Exc)
   TimeData <= TimeData+12'd1;  
  else if (TimeData > Time_Exc-12'd1 && TimeEnd==0)
   TimeData <= TimeData+12'd1;
  else if 	(TimeData >Time_Exc-12'd1 && TimeEnd==1)
   TimeData <= TimeData;
endmodule 
			
			
			
						
			
 我要赚赏金
