如果系統時鐘的週期爲T,然後我們如何能夠延緩由1/4 T中的時鐘而無需使用任何模擬裝置的一小部分延遲的時鐘?可綜合的VHDL代碼是首選。由週期
Q
由週期
0
A
回答
2
您不能可靠地使用數字電子時鐘週期的任何部分延誤。 (無論您在VHDL或Verilog或PALASM或雲裳代碼,或任何無關。)
您可以通過延遲時鐘大致如果您使用時鐘的相對邊緣,但即使這不是1/2T可靠。這樣做時,假設時鐘的標記 - 空間比接近50:50,無論電源電壓,芯片溫度(實際芯片的溫度)還是工藝邊界(FPGA的速度等級) )。
可以通過小於1/2T延遲的唯一方法是利用任何邏輯門具有穿過它的延遲的事實。然而,這是一種非常不可靠的方法,因爲這種延遲會隨着電源電壓,芯片溫度和工藝角落而變化很大。例如,容易減少3倍。因此,如果你想延遲一些可靠的工作,需要一個週期爲1/4T的時鐘。
1
如何,如果可以做到這一點取決於你的目標技術,再加上地方,爲什麼要延遲時鐘。
在一個FPGA,時鐘和數據的輸入和輸出通常需要被延遲。特別是對於Xilinx FPGA,存在稱爲IDELAY和ODELAY的強化宏,允許您執行此操作。 documentation可以提供更多的細節。使用PLL/MMCM/DCM(另一個硬化宏,用於從一個輸入時鐘合成各種時鐘),也可以在您的邏輯內完成相位偏移,以90度偏移重新生成相位鎖定的時鐘。再次,documentation可以給你更多的見解。
我有聯繫的文件是專門針對賽靈思7系列FPGA,但也有多數廠商和FPGA系列類似的文件。如果你想用ASIC來做這件事,那麼你很可能會避免使用任何模擬器件,因爲我所提到的強化宏都依賴於內部的模擬器件,而不是你必須設計的器件。
相關問題
- 1. 使用加入由週期
- 2. 集團由週日期和月份
- 3. Angular2路由器生命週期掛鉤
- 4. 由周
- 5. 數由每週
- 6. 週期檢測含有多個週期
- 7. 的iCalendar2周間隔/週期
- 8. 將日期轉換爲日期名稱週一,週二,週三
- 9. 組由周在MySQL
- 10. 可變週期
- 11. 活動週期
- 12. 週期出錯
- 13. 排列週期
- 14. 與JSON週期
- 15. 週期IE7層
- 16. Android HTTPRequest週期
- 17. 與週期
- 18. 週期與LXML
- 19. 轉換星期日期分量數週內日期(的......周)
- 20. 不同的日期週期
- 21. 本週星期一日期
- 22. Rails 4.0.0遇到了現有路由的週期性路由錯誤異常(404)
- 23. 使用兒童路由器時的Durandal路由器/生命週期事件
- 24. 如何找到什麼頂點由週期無向圖如果只有一個圖表週期?
- 25. 由ChannelFactory生成的WCF對象生命週期
- 26. MySQL的集團由周民瓦特/多個日期列
- 27. React-Router對我的生命週期路由器感到困惑
- 28. 刷新在反應路由器,組件的生命週期
- 29. 流星和鐵路由器:訂閱生命週期
- 30. 由1個週期延長大熊貓datetimeindex
我需要用於我的小8位CPU的時鐘應該有三個輸出:1-時鐘(週期爲T的原始時鐘)。 2使能時鐘(在3/4 T時爲'1',在1/4 T時爲'0')。 3設定時鐘(僅在期間的中間爲1/4T)。如果延遲時間爲1/4T,則可以通過用原始時鐘對延遲時鐘進行編程和定時,使上述啓用和設置時鐘不在原始時鐘內。但是,如果不可能,我現在怎麼做?感覺失望...... – argasm
然後,爲什麼不給CPU提供一個'clk',時鐘週期爲'4 * T',併產生你的使能信號,FFs頻率爲1/T頻率? – rascob