Vhdl 将时钟延迟周期的一小部分

Vhdl 将时钟延迟周期的一小部分,vhdl,digital-logic,Vhdl,Digital Logic,如果系统时钟周期为T,那么我们如何在不使用任何模拟设备的情况下将时钟延迟1/4 T?首选可合成的VHDL代码 使用数字电子技术,您无法可靠地延迟时钟周期的任何部分。(不管你是用VHDL、Verilog、Palasm、Ella还是其他无关的语言编写的。) 如果使用时钟的相反边缘,可以将时钟延迟大约1/2T,但即使这样也不可靠。在此过程中,您假设时钟的标记空间比接近50:50,无论电源电压、管芯温度(实际硅的温度)或工艺角(FPGA的速度等级)如何,情况都是如此 唯一可以延迟小于1/2T的方法是利用

如果系统时钟周期为T,那么我们如何在不使用任何模拟设备的情况下将时钟延迟1/4 T?首选可合成的VHDL代码

使用数字电子技术,您无法可靠地延迟时钟周期的任何部分。(不管你是用VHDL、Verilog、Palasm、Ella还是其他无关的语言编写的。)

如果使用时钟的相反边缘,可以将时钟延迟大约1/2T,但即使这样也不可靠。在此过程中,您假设时钟的标记空间比接近50:50,无论电源电压、管芯温度(实际硅的温度)或工艺角(FPGA的速度等级)如何,情况都是如此

唯一可以延迟小于1/2T的方法是利用任何逻辑门都有延迟的事实。然而,这是一种非常不可靠的方法,因为延迟会随着电源电压、模具温度和工艺转角而发生很大变化。例如,可以很容易地通过系数3进行调整


因此,如果你想可靠地将某个时间延迟1/4T,你需要一个周期为1/4T的时钟。

如何以及能否做到这一点取决于你的目标技术,以及你想延迟时钟的位置和原因

在FPGA中,输入和输出上的时钟和数据通常需要延迟。特别是对于Xilinx FPGA,存在名为IDELAY和ODELAY的强化宏,允许您执行此操作。报告可以提供更多细节

相位偏移也可以在逻辑中使用PLL/MMCM/DCM(另一个用于从单个输入时钟合成各种时钟的强化宏)来重新生成相位锁定的时钟,偏移为90度。同样地,该方法可以给您提供进一步的见解


我链接的文档是针对Xilinx 7系列FPGA的,但对于大多数供应商和FPGA系列,都有类似的文档。如果您希望在ASIC中实现这一点,那么您可能不太希望避免任何模拟,因为我提到的两个强化宏都在内部依赖模拟部件,而不是您必须设计的部件。

我的小型8位CPU所需的时钟应该有三个输出:1-clk(带周期T的原始时钟)。2-启用时钟(3/4 T上为“1”,1/4 T上为“0”)。3设定时钟(在周期的中间仅为1/4T)。如果1/4T延迟是可能的,我可以通过将延迟时钟与原始时钟进行anding和oring,使上述启用和设置时钟偏离原始时钟。但是,当这是不可能的时候,我现在怎么做呢?感到失望…那么,为什么不向CPU提供一个时钟周期为
4*T
clk
,并以FFs时钟频率
1/T
生成启用信号呢?