简体   繁体   English

我如何将信号输出生成为慢时钟域的倍数?

[英]How could I generate signal output as a slow clock domain that is a multiple of a fast clock domain?

I have an FPGA which I have 40-60 MHz clock domain I am working with.我有一个 FPGA,我正在使用它的 40-60 MHz 时钟域。 My output will be a slow multiple of that clock domain.我的输出将是该时钟域的慢倍数。

So if I have 40 MHz oscillator, the output interface would be 5 MHz.所以如果我有 40 MHz 的振荡器,输出接口将为 5 MHz。

I was planning on using a clock divide by 2 and sending the signal to the input, but I don't like this design because I read about how I would need to send the signals through a clock buffer which I may not have enough resources and others have stated it could create hold violations.我计划使用时钟除以 2 并将信号发送到输入,但我不喜欢这种设计,因为我阅读了有关如何通过时钟缓冲区发送信号的信息,而我可能没有足够的资源和其他人则表示这可能会造成违规。 ( https://www.thecodingforums.com/threads/pulse-stretching.377607/ ) ( https://www.thecodingforums.com/threads/pulse-stretching.377607/ )

My second idea is to use a counter that counts the amount of time required to hold the Q output of a DFF and apply back pressure to source logic.我的第二个想法是使用一个计数器来计算保持 DFF 的 Q 输出并将背压施加到源逻辑所需的时间量。

I currently do not have code.我目前没有代码。 I am still thinking of it conceptually.我还在概念上考虑它。

The initial plan was use several clock divide by 2 block in series to get the output desired.最初的计划是使用多个时钟除以 2 块串联以获得所需的输出。

For signals that seem like a 5 MHz clock domain but were generated with a 40 MHz clocked system, what is the terminology for this type of clock domain crossing?对于看起来像 5 MHz 时钟域但由 40 MHz 时钟系统生成的信号,这种类型的时钟域交叉的术语是什么?

Are there any other options?还有其他选择吗?

Thank You谢谢你

这是一个同步 CDC,计数器方法属于一类基于 FSM 的时钟分频器。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM