需要做一个减速过程的速度段(va—vb)之间的时间测量,还需要采到最接近预定速度的两个值(稍大和稍小),下面是我编的一段程序,求大神看看错在哪了
always@(posedge clk or negedge RSTn)
begin
if( !RSTn )begin cnt1<=0;cnt2<=0;t1<=0;t2<=0;Va1<=0;Va2<=0;Vb1<=0;Vb2<=0;end//初始化
else
begin
if(V>Va)
begin Va1<=V;cnt1<=0;cnt2<=0;t1<=0;t2<=0;end
if(V>Vb&&V<Va)
begin
cnt1<=cnt1+1'b1;
case(cnt1)
1:Va2<=V;
default:Va2<=Va2;
endcase
Vb1<=V;
if(cnt2)t2<=t2+cnt2;
else t2<=t2;
cnt2<=0;
end
if(V<Vb)
begin
cnt2<=cnt2+1'b1;
t1<=cnt1+t2;
case(cnt2)
1:Vb2<=V;
default:Vb2<=Vb2;
endcase
Va1<=Va1;
Vb1<=Vb1;
end
end
end
我想问一下,我的V的频率是2ms,clk是1m的时钟,我不知道能不能采样。
你知不知道,[19:0]的V和同样是20位的Va比较,需要多少个时钟?
即if(V>Va)需要多少时钟完成判断?
一个啊
追问那就是说:
if(V>Va)
begin Va1<=V;cnt1<=0;cnt2<=0;t1<=0;t2<=0;end
需要6个时钟完成?