国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

FPGA實戰演練邏輯篇43:同步以及時鐘的設計原則

發布時間:2015-6-29 09:17    發布者:rousong1989
同步以及時鐘的設計原則
本文節選自特權同學的圖書《FPGA設計實戰演練(邏輯篇)》
配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt
有了前面的鋪墊,大家應該明白了寄存器的代碼編寫。接下來我們要更進一步從深沉次來探討基于寄存器的同步以及時鐘的設計原則。(特權同學,版權所有)
雖然在上一章已經對組合邏輯和時序邏輯的基本概念做過描述,但是這里還是要再額外嘮叨幾句組合邏輯和時序邏輯的歷史淵源,好讓大家更加信服為什么時序邏輯要明顯優于組合邏輯的設計。早期的可編程邏輯設計,限于當時的工藝水平,無論是邏輯資源還是布線資源都比較匱乏,所以工程師們更多是用可編程器件做一些簡單的邏輯粘合。所謂的邏輯粘合,無非是一些與、或、非等邏輯門電路簡單拼湊的組合邏輯,沒有時序邏輯,因此不需要引入時鐘。而今天的FPGA器件的各種資源都非常豐富,已經很少有人只是用其實現簡單的組合邏輯功能,而是更多的大量使用時序邏輯來實現各種復雜的功能,而一旦大量的使用時序邏輯,時鐘設計的各種攻略也就被不斷的提上臺面。可不是,時鐘好比時序邏輯的心臟,它的好壞直接關系到整個系統的是非成敗。那么,時鐘設計到底有什么講究,哪些基本原則是必須遵循的呢?搞清楚這個問題之前,我們勢必要先全面的了解時鐘以及整個時序電路的工作原理。(特權同學,版權所有)
在一個時序邏輯中,時鐘信號掌控著所有輸入和輸出信號的進出。在每個時鐘有效沿(通常是上升沿),寄存器的輸入數據將會被采樣并傳送到輸出端,此后輸出信號可能會在經歷長途跋涉般的“旅途”中經過各種組合邏輯電路并會隨著信號的傳播延時而處于各種“搖擺晃蕩”之中,直到所有相關的信號都到達下一級寄存器的輸入端。這個輸入端的信號將會一直保持直到下一個時鐘有效沿的來臨。每一級寄存器都在不斷的重復著這樣的數據流采集和傳輸。單是這樣枯燥的文字描述時序邏輯和時鐘之間的工作機理未免有些乏味,不妨舉個輪船通行三峽大壩的例子做類比。(特權同學,版權所有)
如圖5.8所示,三峽大壩有五級船閘,船由上游駛往下游時,船位于上游。①先關閉上游閘門和上游閥門。②關閉第一級下游閘門和閥門,打開上游閥門,水由上游流進閘室,閘室水面與上游相平時,打開上游閘門,船由上游駛進閘室。③關閉上游閘門和閥門,打開第一級下游閥門,當閘室水面降到跟下游水面相平時,打開下游閘門,船駛出第一級閘室。如此操作4次,通過后面的四級船閘,開往下游。船閘的原理實際上是靠兩個閥門開關,人為地先后造成兩個連通器,使船閘內水面先后與上、下游水面相平。(特權同學,版權所有)
圖5.8 三峽大壩五級閘門示意圖
         對于單個數據的傳輸,就非常類似這里輪船通過多級閘門的例子。輪船就是我們要傳輸的數據,閘門的開關就好比時鐘的有效邊沿變化,水位的升降過程也好像相關數據在兩個寄存器間經過各種組合邏輯的傳輸過程。當輪船還處于上一級閘門準備進入下一級閘門時,要么當前閘門的水位要降低到下一級閘門的水平,要么下一級閘門的水位要升到上一級閘門的水平,只要這個條件不滿足,最終結果都有可能造成輪船的顛簸甚至翻船。這多少頁有點像寄存器鎖存數據需要保證的建立時間和保持時間要求。關于建立時間和保持時間,有如下的定義:
●   在時鐘的有效沿之前,必須確保輸入寄存器的數據在“建立時間”內是穩定的。(特權同學,版權所有)
●   在時鐘的有效沿之后,必須確保寄存器的輸出數據至少在“保持時間”內是穩定的。(特權同學,版權所有)
在大家理解了時鐘和時序邏輯的工作機理后,也就能夠理解為什么時鐘信號對于時序邏輯而言是如此的重要。關于時鐘的設計要點,主要有以下幾個方面:
① 避免使用門控時鐘或系統內部邏輯產生的時鐘,多用使能時鐘去替代。(特權同學,版權所有)
門控時鐘或系統內部邏輯產生的時鐘很容易導致功能或時序出現問題。尤其是內部邏輯(組合邏輯)產生的時鐘容易出現毛刺,影響設計的功能實現;組合邏輯固有的延時也容易導致時序問題。(特權同學,版權所有)
② 對于需要分頻或倍頻的時鐘,用器件內部的專用時鐘管理(如PLL或DLL)單元去生成。(特權同學,版權所有)
用FPGA內部的邏輯去做分頻倒不是難事,倍頻恐怕就不行了。但是無論是分頻還是倍頻,在通常情況下都不建議用內部邏輯去實現,而應該采用器件內部的專用時鐘管理單元(如PLL或DLL)來產生,這類專用時鐘管理單元的使用并不復雜,在EDA工具中打開配置頁面進行簡單參數的設置,然后在代碼中對接口進行例化就可以很方便的使用引出的相應分頻或倍頻時鐘進行使用了。(特權同學,版權所有)
③ 盡量對輸入的異步信號用時鐘進行鎖存。(特權同學,版權所有)
所謂異步信號,是指兩個處于不同時鐘頻率或相位控制下的信號。這樣的信號在相互接口的時候如果沒有可靠的同步機制,則存在很大的隱患,甚至極有可能導致數據的誤采集。筆者在工程實踐中常常遇到這類異步信號誤觸發或誤采集的問題,因此也需要引起初學者足夠的重視。在筆者的《深入淺出玩轉FPGA》筆記6中列舉的一些改進的復位設計方法就是非常典型的異步信號的同步機制。(特權同學,版權所有)
④ 避免使用異步信號進行復位或置位控制。(特權同學,版權所有)
這個點和上一個點所強調的是同一類問題,異步信號不建議直接作為內部的復位或置位控制信號,最好能夠用本地時鐘鎖存多拍后做同步處理,然后再使用。(特權同學,版權所有)
上述幾個點對于初學者可能很難理解和體會,沒有關系,當你有了實踐經歷以后回頭再品味一下或許就有味道多了。由于這幾個點多少也算是比較高級的技巧了,所以無法一一擴展開來深入剖析。更多相關擴展的知識點讀者可以參考筆者的《深入淺出玩轉FPGA》一書,那里有更多更詳細的介紹和說明。(特權同學,版權所有)

本文地址:http://www.4huy16.com/thread-150964-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Microchip第22屆中國技術精英年會——采訪篇
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術精英年會深圳站回顧
  • 電動兩輪車設計生態系統
  • 技術熱潮席卷三城,2025 Microchip中國技術精英年會圓滿收官!
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表