2017-03-10 47 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來做這件事,那麼你很可能會避免使用任何模擬器件,因爲我所提到的強化宏都依賴於內部的模擬器件,而不是你必須設計的器件。