赛灵思
直播中

张强

7年用户 1357经验值
私信 关注
[问答]

如何使用两个时钟边缘?

我是FPGA的新手我正在使用spartan-6设备planahead 14.7和VHDL
我有这个(我认为是微不足道的)问题:
我需要用20 Mhz时钟对一些输入信号进行采样,并在采样输入线后应用去抖滤波器。
我的实际代码是
如果clock_rising_edge
去抖输入 - 使用先前的读取值
读取下一个输入值;
万一
我试图以这种方式改进代码
如果clock_rising_edge
读取下一个输入值;
elsif clock_falling_edge
去抖输入 - 使用最后读取值
万一
但实施失败
我还修改了我的时钟pll配置,我创建了两个时钟输出,180度相移
第一个时钟上升沿读取输入线,第二个时钟去抖动输入线。
但在这种情况下实现失败。
由于工作频率相当低,大约20MHz,我可以复制时钟频率,创建一个带时钟上升沿的状态机。
但问题是如何使用两个时钟边缘?
另一个qestion实现过程产生了这个严重的警告
https://forums.xilinx.com/t5/Adv ... ad-14-6/td-p/337003
好的,我可以安全地忽略它,但我怎么能压制这个危险的警告信息呢?
......我有阿尔茨海默氏症的原则,在一个月内我已经忘记了我可以忽略......

回帖(6)

吕钢格

2019-8-5 06:38:50
嗨@ accacca,
请附上您收到的完整代码和错误消息。
谢谢,Arpan
谢谢,Arpan -----------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - -请注意-
如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用且回复的帖子。感谢Kudos .--------------------
--------------------------------------------------
------------------------
举报

沈家春

2019-8-5 06:51:17
下面是文件代码和错误
去抖动读取具有不同采样频率的多个输入信号
error.txt 2 KB
ebs_debounce.vhd 5 KB
举报

吕钢格

2019-8-5 07:05:06
嗨@ accacca,
我没有收到此文件的任何实现错误。
谢谢,Arpan
谢谢,Arpan -----------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - -请注意-
如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用且回复的帖子。感谢Kudos .--------------------
--------------------------------------------------
------------------------
forum.zip 326 KB
举报

韩俊

2019-8-5 07:16:58
嗨@accacca 
鉴于你的时钟速度太慢,我会创建另一个时钟,运行速度提高两倍,并有一个切换信号作为你的启用。
当切换为低电平时,对输入进行采样,然后在下一个时钟边沿为高电平时对其进行去抖动。
如果你对输入时钟的实际构成不感兴趣而不是它的速率,那么这应该有用。
不确定推断代码中的IDDR会起作用。
如果你真的需要IDDR,你必须实例化它。
-拍
http://tuxengineering.com
举报

更多回帖

发帖
×
20
完善资料,
赚取积分