(我正在学习数字电路设计。如果这是一个幼稚的问题,请原谅。)
从Wikipedia中,我找到了关于 SIPO 移位寄存器的下图:
据我了解,该移位寄存器由 DFF(D 触发器)制成。DFF 在时钟周期的上升沿触发。因此对于信号的每个上升沿Clock
,来自 的数据Data In
将通过一级 DFF 传播。
我的问题是,由于Clock
所有 DFF 共享,所以当上升沿到来时,所有 4 个 DFF 必须处于触发/透明状态。那么是什么确保数据通过only 1
DFF 阶段而不是 2 个或更多阶段传播呢?
比方说:
Td
是 1 个 DFF 级将数据从 D 加载到 Q 的内部延迟。Tr
是时钟上升沿的持续时间。见下图。
我认为要将传播限制在 1 个阶段,它必须是:
Td < Tr < Td*2
我对么?
但在上面的链接中,它说:
在这种配置中,每个触发器都是边沿触发的。初始触发器以给定的时钟频率运行。随后的每个触发器都 将其前身的频率减半,从而使其 占空比翻倍。结果,上升/下降沿触发每个后续触发器需要两倍的时间;这会在时域中错开串行输入,从而导致并行输出。
这让我对一些事情感到困惑。
- 是什么
halves the frequency
意思? - 如何用频率来表征 DFF?
- DFF不是只在时钟的上升沿工作,而且通常不在乎时钟的频率是多少?
- 频率如何与占空比相关?频率与周期有关,而占空比仅表示信号或系统处于活动状态的一个周期的百分比。我认为频率和占空比之间没有关系。
加 1
正如Neil_UK在下面的回复中所说,上面的 wiki 引用是完全错误的。他已经修复了维基页面。
正如EM Fields在下面的回复中所说,
...在时钟的下一个上升沿之前不会再发生任何事情,因为完成工作的时钟沿已经结束...
严格来说,没有理想的垂直上升沿。应该有一些Tr
如上图所示。我想为了限制信号通过 DFF 阶段的传播,上升沿必须持续足够长的时间以使信号通过一个阶段传播,并且足够短以使信号不会传播到下一个阶段。
我只是认为这种控制太棘手/微妙而无法实现。但如果是真的,它是如何实现的呢?(我刚刚为这个问题提供了赏金。)