怎样比较两个时钟频率
时间:10-02
整理:3721RD
点击:
如题,想比较两个时钟频率(二者相差不大,而且和标准时钟也很相近)。
我考虑对时钟在一段时间计数并最终保持这个数据,写了如下代码,请问问题在哪?
always@(negedge cnt_rst or posedge ro_out)
begin
if(!cnt_rst)
begin
ro_numb <= 8'h0;
flag<=0;
end
else
if(ro_numb==8'h77)
flag<=1;
else
ro_numb <= ro_numb+1;
end
always@(negedge cnt_rst or posedge clk_std)
begin
if(!cnt_rst)
cnt_numb<=0;
else
if(flag==0)
cnt_numb<=cnt_numb+1;
else ;
end
我考虑对时钟在一段时间计数并最终保持这个数据,写了如下代码,请问问题在哪?
always@(negedge cnt_rst or posedge ro_out)
begin
if(!cnt_rst)
begin
ro_numb <= 8'h0;
flag<=0;
end
else
if(ro_numb==8'h77)
flag<=1;
else
ro_numb <= ro_numb+1;
end
always@(negedge cnt_rst or posedge clk_std)
begin
if(!cnt_rst)
cnt_numb<=0;
else
if(flag==0)
cnt_numb<=cnt_numb+1;
else ;
end
是想当flag==1时,比较cnt_numb与ro_numb的值吗?
若是,应该把 if(ro_numb==8'h77)改成 if(ro_numb>8'h77)
而且要确保两个计数器的值都没有发生溢出
可以将这两个时钟分频到很低的频率后,例如1KHz,再用同一个时钟对其高电平计数,比较即可得。
是的,谢谢。两个always block中的时钟信号不同,那么是不是要考虑跨时钟域的异步复位问题啊,不是很懂这个?
