【发布时间】:2019-02-09 00:50:06
【问题描述】:
我有一个 fpga,它以 4.8 kbps 的比特率接收串行数据。
现在我不确定我的 fpga 应该以什么时钟频率运行才能正确处理数据。
时钟速度是否只需至少为 4800 Hz?
【问题讨论】:
-
可能会在Electrical Engineering上得到更好的答案
-
但是以防万一你回来发现一个/一些答案足够有用,请不要忘记在某个时候接受它。
我有一个 fpga,它以 4.8 kbps 的比特率接收串行数据。
现在我不确定我的 fpga 应该以什么时钟频率运行才能正确处理数据。
时钟速度是否只需至少为 4800 Hz?
【问题讨论】:
反过来说:您首先必须确定处理一个单个输入“tick”需要多少时钟周期。如果一个周期足以完成您的处理,那么 4800 Hz 可能就可以了。
但如果您需要两个循环,那么您可能会采用双倍速度。
这是一个非常笼统的答案,但您的问题也非常笼统,所以这可能是您在不增加输入的情况下所能期望的最好的答案。
【讨论】:
时钟速度是否只需至少为 4800 Hz?
理论:是,实际:否。
理论上的。
您可以使用 4800Hz 时钟接收 4800Hz 信号,但前提是时钟是准确正确的频率。 (4800 Hz 会出现偏差,没有时钟是完美的)。为此,您需要诸如 PLL 之类的东西,它位于测量反馈环路中,查看信号并保持时钟同步。
实用。
更容易使用例如1MHz FPGA 时钟并使用过采样。即使这样,您也会遇到与专用时钟相同的问题:您需要知道位边界在哪里。同样需要某种时钟锁定或边缘识别机制。事实上,您必须构建等效的 PLL,但您可以使用寄存器和计数器来完成所有这些工作。
当以 1MHz 运行时(这对于 FPGA 来说非常慢),您有足够的时钟周期来处理您的数据。
这两种方法都取决于您使用的协议,但您没有提及。它们仅适用于某些类型的信号/串行协议。例如,如果信号在多个时钟周期内为低电平或高电平,这将导致任一方法出现问题。
【讨论】: