2017-03-10 67 views
0

如果系统时钟的周期为T,然后我们如何能够延缓由1/4 T中的时钟而无需使用任何模拟装置的一小部分延迟的时钟?可综合的VHDL代码是首选。由周期

回答

2

您不能可靠地使用数字电子时钟周期的任何部分延误。 (无论您在VHDL或Verilog或PALASM或云裳代码,或任何无关。)

您可以通过延迟时钟大致如果您使用时钟的相对边缘,但即使这不是1/2T可靠。这样做时,假设时钟的标记 - 空间比接近50:50,无论电源电压,芯片温度(实际芯片的温度)还是工艺边界(FPGA的速度等级) )。

可以通过小于1/2T延迟的唯一方法是利用任何逻辑门具有穿过它的延迟的事实。然而,这是一种非常不可靠的方法,因为这种延迟会随着电源电压,芯片温度和工艺角落而变化很大。例如,容易减少3倍。因此,如果你想延迟一些可靠的工作,需要一个周期为1/4T的时钟。

+0

我需要用于我的小8位CPU的时钟应该有三个输出:1-时钟(周期为T的原始时钟)。 2使能时钟(在3/4 T时为'1',在1/4 T时为'0')。 3设定时钟(仅在期间的中间为1/4T)。如果延迟时间为1/4T,则可以通过用原始时钟对延迟时钟进行编程和定时,使上述启用和设置时钟不在原始时钟内。但是,如果不可能,我现在怎么做?感觉失望...... – argasm

+1

然后,为什么不给CPU提供一个'clk',时钟周期为'4 * T',并产生你的使能信号,FFs频率为1/T频率? – rascob

1

如何,如果可以做到这一点取决于你的目标技术,再加上地方,为什么要延迟时钟。

在一个FPGA,时钟和数据的输入和输出通常需要被延迟。特别是对于Xilinx FPGA,存在称为IDELAY和ODELAY的强化宏,允许您执行此操作。 documentation可以提供更多的细节。使用PLL/MMCM/DCM(另一个硬化宏,用于从一个输入时钟合成各种时钟),也可以在您的逻辑内完成相位偏移,以90度偏移重新生成相位锁定的时钟。再次,documentation可以给你更多的见解。

我有联系的文件是专门针对赛灵思7系列FPGA,但也有多数厂商和FPGA系列类似的文件。如果你想用ASIC来做这件事,那么你很可能会避免使用任何模拟器件,因为我所提到的强化宏都依赖于内部的模拟器件,而不是你必须设计的器件。