首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >2种不同时钟的上升边缘同步检测

2种不同时钟的上升边缘同步检测
EN

Stack Overflow用户
提问于 2016-06-03 08:24:46
回答 2查看 1.8K关注 0票数 0

如何用Xilinx软件在VHDL编程中检测两个不同时钟(不同频率)的上升边缘同步?

有一个频率为31.845 Mhz的主时钟和另一个频率为29.972 Mhz的时钟。因此,基本目标是在两个时钟的上升边缘之间同步时触发一个动作。我们尝试使用触发器实现它,但是我们只能实现级别同步,而不能实现边缘同步。

我们无法比较两个不同时钟的上升边,如IFWAIT在vhdl中,所以这是不可能的。

我们正试图用计数器来计数脉冲。为此,每当进行边缘匹配时,我们都需要停止计数。我们正在尝试实现一种叫做“游标插值”的方法。

  1. 最初,我们使用了以下语句代码,但是由于两个不同时钟(clk0、clk1)的上升边不能在IF语句中进行比较,所以我们不得不删除它。 if(rising_edge(clk0)=rising_edge(clk1)) then wait;
  2. 然后我们尝试使用WAIT语句(wait until),但失败了。
  3. 然后我们尝试使用触发器和延迟电路(D触发器),但结果是水平同步,而不是边缘同步。
EN

回答 2

Stack Overflow用户

发布于 2017-10-11 16:49:08

首先,我不知道你为什么要这么做。你将得到一个新的时钟,在两个时钟之间的拍频。

正确的方法是使用至少是最高期望输入频率两倍的另一个时钟对两个时钟进行采样。您可以使用设备中的一个PLL来生成这个更高的时钟。x2是最小值。理想情况下,使用比两个采样时钟都高得多的时钟。

请记住,VHDL不是一种语言,它是一种真实硬件的综合描述。因此,仅仅说Rising_Edge(clk1) = Rising_Edge(clk2)并不能使“软件”检测边缘。Rising_Edge真正做的所有功能就是告诉硬件将clk信号连接到触发器的时钟输入。

适当的解决方案是在一个过程中采样两个“时钟”,由一个样本时钟来时钟,寻找边缘(一个边是随后的两个不同的样本),然后是结果和锁存(如果需要)。

示例代码(未经测试,很抱歉现在没有时间)。

代码语言:javascript
运行
复制
entity twoclocks is
 port (
    op : out std_logic;
    clk1 : in std_logic;
    clk2 : in std_logic;
    sample_clk : in std_logic);
end entity;


architecture RTL of twoclocks is

begin

process sample(sample_clock, clk1, clk2):
begin
    if rising_edge(sample_clock):
      clk1_d <= clk1;
      clk2_d <= clk1;
      if clk1_d != clk1 and clk2_d != clk2 then
        op <= '1';
      else
        op <= '0';
      end if;
    end if;
end process;

end architecture;
票数 0
EN

Stack Overflow用户

发布于 2017-10-12 12:44:59

您想要构建的游标内插器需要使用非常严格的时间限制,因此您可能无法单独使用VHDL。您需要(很多)设备特定的资源位置和时间限制。

请查一下A.Aloisio等人的工作。。阿洛西奥和他的同事使用特定的Xilinx延迟元件构建了游标内插器。

标准的VHDL综合主要适用于寄存器传输级描述。即时钟/同步逻辑。但是要比较这两个输入,您需要在两个频率中最不常见的倍数上对它们进行采样。对于31.845 MHz和29.972 MHz,这是一个巨大的954.458340 MHz,这是很多。不过,我在FPGA逻辑中看到了这种速度。..。但我想你甚至需要加倍因为尼奎斯特。也许现在FPGA逻辑可以处理2 GHz的采样率。但我不确定。

可能会为此使用GT收发器,但由于这将是这样一个收发器的非标准使用,这可能很难实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37609493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档