微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 如何进行2个异步时钟频率大小的判断?贴上我写的代码,大家进来指点指点!

如何进行2个异步时钟频率大小的判断?贴上我写的代码,大家进来指点指点!

时间:10-02 整理:3721RD 点击:
代码如下:
module CLK_COMPARE (
clk_ref,
clk_detected,
reset,
detect_o
);
input       reset;
input   clk_ref;
input       clk_detected;
output      detect_o;
reg  [7:0]  clk_ref_count;
reg  [10:0]  clk_detected_count;
always @(posedge clk_ref or negedge reset)
begin
  if(!reset)
clk_ref_count <= 8'b0;
  else
clk_ref_count <= clk_ref_count + 1;
end
assign reset_wire = (clk_ref_count == 8'hff)?1'b0:1'b1;
assign reset_clk_detecter = reset_wire & reset;
always @(posedge clk_detected or negedge reset_clk_detecter)
begin
  if(!reset_clk_detecter)
clk_detected_count <= 11'b0;
  else
clk_detected_count <= clk_detected_count + 1;
end
assign detect_o = (clk_detected_count > clk_ref_count)?1'b1:1'b0;
endmodule
不知道这样搞行不行,综合出来会不会有问题,

是不是太简单了?怎么没有一个人发表意见

可以的,反正一个魁岸一个慢的嘛。
不过你的计数器的位数怎么都不一样啊?

主要是想少几个寄存器,不一定总是一个快一个慢,有时候是一个慢一个快

快慢时钟同时复位是不是有点..........

貌似可以的。

不可以,会出问题!不定的时钟域不能直接切换!

对两个时钟分别自分频,分频倍数一样,然后把两个分频后的信号都转换到refclk时钟域,通过计数就可以获得两个时钟的相差或者频差了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top