微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog 如何檢測時鐘信號消失

verilog 如何檢測時鐘信號消失

时间:10-02 整理:3721RD 点击:
請問verilog 如何檢測時鐘信號消失
目的: 自動檢測外部時鐘信號有無,並自動切換不同模式
現況: 現偵測10個 ex_clock做計數, count=10, 切入模式A
問題: 當ex_clock消失如何自動退出模式A
always@(posedge ex_clcok)
begin
     if(~reset)
         count<=8'd0;
         mode_A_en<=1'b0;
     else
     bigin
         if(count==8'd10)
         begin
            count<=8'd10;
            mode_A_en<=1'b1; //切換模式A
         end
         else
            count<=count+8'd1;
end

有个思路:
1. 如果是FPGA的话,可以用FPGA搭一个free running的clock,然后用这个clock来采样输入的ex_clock,把它当作数据来处理。
2. 另外一个思路是或许可以接一个PLL。如果没有lock输出,那么表示ex_clock丢失了。不过clock丢失了,退出A模式后如何操作就是个问题了。

lz的这种方式不太推荐,因为严格来说,这种信号不是标准的时钟,使用这种建模方式不妥。
   acgoal的思路1  ok,lz可以用这种方式去实现,简单也可靠
              思路2适用性比较有限一些,因为DCM/PLL输入频率范围受限
供参考!

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

网站地图

Top