【发布时间】:2018-08-22 15:39:50
【问题描述】:
我有一个大约 1000 个门的基于 nand 的环形振荡器。每个 nand 的一个输入连接到 1,除了一个连接到使能引脚的门(当使能变高时,启用环形振荡器)。
我将设计加载到 fpga 上,然后在示波器上得到输出。我得到的频率约为 40 MHz。但是,如果我将启用拉低并返回高,则频率会发生巨大变化。每个启用切换都可以从 40 MHz 到 9 MHz 到 30 MHz 以及介于两者之间的任何位置。我什至尝试一直保持启用高电平,然后打开和关闭电路板,然后频率也会改变。
关于发生了什么/如何解决它的任何想法?是不是我需要在环上增加更多的门来增加延迟?
谢谢!
【问题讨论】:
-
您是如何将启用拉低的?持续多长时间?
-
我把它绑在一个按钮上。未按下按钮时,拉高,按下时接地。我尝试了多个时间段,即手动推送它。但如上所述,即使 enable 保持高电平并且电路板关闭再打开,问题仍然存在。
-
环形振荡器不仅仅是一个振荡器。这是一条延迟线,传播任何馈送到它的东西。您至少应该消除按钮的抖动。否则,环形振荡器将从按钮的触点旋转一些随机的脉冲序列,以某种不可预测的方式影响观察到的频率。
-
@Vlad 这很可能是问题的原因。我建议你回答这个问题。
-
@Vlad 确实,如果 enable 始终保持高电平并且电路板被关闭和打开,则问题不会每次都发生。所以可能是启用是问题所在。我会去抖动它并更新。