同步電路設(shè)計課件_第1頁
同步電路設(shè)計課件_第2頁
同步電路設(shè)計課件_第3頁
同步電路設(shè)計課件_第4頁
同步電路設(shè)計課件_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 同步電路設(shè)計 FPGA簡介 建立時間和保持時間 競爭和冒險 有用的設(shè)計方法 總結(jié) FPGA:現(xiàn)場可變成門陣列 基于查找表技術(shù),SRAM工藝 包含的LUT和觸發(fā)器的數(shù)量非常多 ,適合復(fù)雜時序邏輯 在開發(fā)階段具有安全、方便、可隨時修改設(shè)計,極大的提升硬件系統(tǒng)設(shè)計的靈活性、可靠性, 以及提高硬件開發(fā)的速度和降低系統(tǒng)的成本 為了增加可編程邏輯器件電路工作的穩(wěn)定性,一定要加強可編程邏輯器件設(shè)計的規(guī)范要求,要盡量采用同步電路設(shè)計 同步設(shè)計將優(yōu)于異步設(shè)計 對FPGA 的同步設(shè)計理解為:所有的狀態(tài)改變都由一個主時鐘觸發(fā),而對具體的電路形式表現(xiàn)為所有的觸發(fā)器的時鐘端都接在同一個主時鐘上。一個系統(tǒng)的功能模塊在內(nèi)

2、部可以是局部異步的,但是在模塊間必須是全局同步的 同步電路比較容易使用寄存器的異步復(fù)位/置位端,以使整個電路有一個確定的初始狀態(tài) 在可編程邏輯器件中,使用同步電路可以避免器件受溫度,電壓,工藝的影響,易于消除電路的毛刺,使設(shè)計更可靠,單板更穩(wěn)定 同步電路可以很容易地組織流水線,提高芯片的運行速度,設(shè)計容易實現(xiàn) 同步電路可以很好地利用先進的設(shè)計工具, 如靜態(tài)時序分析工具等, 為設(shè)計者提供最大便利條件,便于電路錯誤分析,加快設(shè)計進度 建立時間(建立時間(setup time)是指在觸發(fā)器的)是指在觸發(fā)器的時鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變時鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時間。如果建立時間不

3、夠,數(shù)據(jù)將不能的時間。如果建立時間不夠,數(shù)據(jù)將不能在這個時鐘上升沿被打入觸發(fā)器;在這個時鐘上升沿被打入觸發(fā)器; 保持時間(保持時間(hold time)是指在觸發(fā)器的時)是指在觸發(fā)器的時鐘信號上升沿到來以后,數(shù)據(jù)穩(wěn)定不變的鐘信號上升沿到來以后,數(shù)據(jù)穩(wěn)定不變的時間。時間。 如果保持時間不夠,數(shù)據(jù)同樣不能如果保持時間不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器。被打入觸發(fā)器。 數(shù)據(jù)穩(wěn)定傳輸必須滿足建立時間和保持時間的要求 ,否則電路就會出現(xiàn)邏輯錯誤。 在同步系統(tǒng)中,如果觸發(fā)器的setup time / hold time不滿足,就可能產(chǎn)生亞穩(wěn)態(tài),此時觸發(fā)器輸出端Q在有效時鐘沿之后比較長的一段時間處于不確定的狀態(tài)

4、,在這段時間里Q端毛刺、振蕩、固定的某一電壓值,而不是等于數(shù)據(jù)輸入端D的值。這段之間成為決斷時間。經(jīng)過決斷時間之后Q端將隨機的穩(wěn)定到0或1上。 亞穩(wěn)態(tài)除了導(dǎo)致邏輯誤判之外,輸出01之間的中間電壓值還會使下一級產(chǎn)生亞穩(wěn)態(tài)(即導(dǎo)致亞穩(wěn)態(tài)的傳播) 只要系統(tǒng)中有異步元件,亞穩(wěn)態(tài)就是無法避免的 要減少亞穩(wěn)態(tài)導(dǎo)致錯誤的發(fā)生;要使系統(tǒng)對產(chǎn)生的錯誤不敏感 用同步來減少亞穩(wěn)態(tài)發(fā)生機會的典型電路 在圖中,左邊為異步輸入端,經(jīng)過兩級觸發(fā)器同步,在右邊的輸出將是同步的,而且該輸出基本不存在亞穩(wěn)態(tài)。其原理是即使第一個觸發(fā)器的輸出端存在亞穩(wěn)態(tài),經(jīng)過一個 CLK 周期后,第二個觸發(fā)器 D 端的電平仍未穩(wěn)定的概率非常小,因此

5、第二個觸發(fā)器 Q 端基本不會產(chǎn)生亞穩(wěn)態(tài)。這里說的是“基本”,也就是無法“根除”。 杜絕亞穩(wěn)態(tài)的傳遞 用兩級D觸發(fā)器構(gòu)成同步器 ,通過兩極觸發(fā)器其實就是給亞穩(wěn)態(tài)足夠的脫離時間 2級從理論或?qū)嶋H使用都表明有足夠的可靠性了 對短于一個時鐘周期的異步輸入也有效 中間的觸發(fā)器很少采用,但它可以阻止 亞穩(wěn)態(tài)傳播 信號在FPGA器件內(nèi)部通過連線和邏輯單元時,都有一定的延時。延時的大小與連線的長短和邏輯單元的數(shù)目有關(guān),同時還受器件的制造工藝、工作電壓、溫度等條件的影響。信號的高低電平轉(zhuǎn)換也需要一定的過渡時間。由于存在這兩方面因素,多路信號的電平值發(fā)生變化時,在信號變化的瞬間,組合邏輯的輸出有先后順序,并不是同

6、時變化,往往會出現(xiàn)一些不正確的尖峰信號,這些尖峰信號稱為“毛刺”。如果一個組合邏輯電路中有“毛刺”出現(xiàn),就說明該電路存在“冒險”。許多邏輯電路產(chǎn)生的小的寄生信號, 也能成為毛刺信號。這些無法預(yù)見的毛刺信號可通過設(shè)計來傳播并產(chǎn)生不需要的時鐘脈沖 與分立元件不同,由于PLD內(nèi)部不存在寄生電容電感,這些毛刺將被完整的保留并向下一級傳遞,因此毛刺現(xiàn)象在PLD、FPGA設(shè)計中尤為突出 任何組合電路都可能是潛在的毛刺信號發(fā)生器, 而時鐘端口、清零和置位端口對毛刺信號十分敏感,任何一點毛刺都可能會使系統(tǒng)出錯。 A、B、C、D四個輸入信號經(jīng)過布線延時以后,高低電平變換不是同時發(fā)生的,這導(dǎo)致輸出信號“OUT”出

7、現(xiàn)了毛刺。 我們無法保證所有連線的長度一致,所以即使四個輸入信號在輸入端同時變化,但經(jīng)過PLD內(nèi)部的走線,到達或門的時間也是不一樣的,毛刺必然產(chǎn)生。 只要輸入信號同時變化,組合邏輯必將產(chǎn)生毛刺。 通過改變設(shè)計,破壞毛刺產(chǎn)生的條件,來減少毛刺的發(fā)生。 例如,在數(shù)字電路設(shè)計中,常常采用格雷碼計數(shù)器取代普通的二進制計數(shù)器,這是因為格雷碼計數(shù)器的輸出每次只有一位跳變,消除了競爭冒險的發(fā)生條件,避免了毛刺的產(chǎn)生。 以上方法可以大大減少毛刺,但它并不能完全消除毛刺,有時,我們必須手工修改電路來去除毛刺。 最常用的方法是采用D觸發(fā)器 毛刺并不是對所有輸入都有危害。對于D 觸發(fā)器來說, 只要毛刺不出現(xiàn)在時鐘的

8、上升沿并且滿足數(shù)據(jù)的建立和保持時間, 就不會對系統(tǒng)造成危害, 因此可以認為D觸發(fā)器的D輸入端對毛刺信號不敏感。 由于毛刺很短,多為幾納秒,基本上都不可能滿足數(shù)據(jù)的建立時間和保持時間。根據(jù)這個特性,在系統(tǒng)中應(yīng)當盡可能采用同步電路,因為同步電路信號的變化都發(fā)生在時鐘沿,只要毛刺不出現(xiàn)在時鐘的沿口并且不滿足數(shù)據(jù)的建立時間和保持時間,就不會對系統(tǒng)造成危害。 用觸發(fā)器讀取組合邏輯的輸出信號,這種方法類似于將異步電路轉(zhuǎn)化為同步電路。 可用工作于高速時鐘的D 觸發(fā)器對組合邏輯的輸出信號進行采樣使其強行與時鐘同步這里要求系統(tǒng)時鐘的頻率相對很高, 一個時鐘的采樣時延不會引起系統(tǒng)的錯誤 一般說來,冒險出現(xiàn)在信號發(fā)

9、生電平轉(zhuǎn)換的時刻,也就是說在輸出信號的建立時間內(nèi)會發(fā)生冒險,而在輸出信號的保持時間內(nèi)是不會有毛刺信號出現(xiàn)的。如果在輸出信號的保持時間內(nèi)對其進行采樣,就可以消除毛刺信號的影響。 有兩種基本的采樣方法:一種方法是在輸出信號的保持時間內(nèi),用一定寬度的高電平脈沖與輸出信號做邏輯“與”運算,由此獲取輸出信號的電平值。 上述方法的一個缺點是必須人為的保證sample信號必須在合適的時間中產(chǎn)生。 另一種方法是采用低通濾波的方法來去除FPGA 器件輸出引腳上的毛刺。從原理上分析, 由于毛刺信號的持續(xù)時間很短, 因此在頻域上,毛刺信號同有用信號相比其能量分布在一個很寬的頻帶上。在對輸出波形的邊沿要求不是很高的情

10、況下, 在FPGA 的輸出引腳上串接一個RC 電路,構(gòu)成一個低通濾波器,就能夠濾除毛刺信號的大部分能量。應(yīng)該注意的是, 必須仔細選擇電容和電阻的參數(shù), 以避免使正常信號的畸變過于嚴重 在 FPGA 的設(shè)計中,全局的清零和置位信號必須經(jīng)過全局的清零和置位管腳輸入,因為他們也屬于全局的資源,其扇出能力大,而且在 FPGA 內(nèi)部是直接連接到所有的觸發(fā)器的置位和清零端的,這樣的做法會使芯片的工作可靠、性能穩(wěn)定,而使用普通的 IO 腳則不能保證該性能。 清除和置位信號要求象對待時鐘那樣小心地考慮它們,因為這些信號對毛刺也是非常敏感的。 有一個主復(fù)位Reset引腳是常用的最好方法,主復(fù)位引腳給設(shè)計項目中每

11、個觸發(fā)器饋送清除或置位信號。幾乎所有PLD器件都有專門的全局清零腳和全局置位。 如果必須從器件內(nèi)產(chǎn)生清除或置位信號,則要按照門控時鐘的設(shè)計原則去建立這些信號,確保輸入無毛刺 異步設(shè)計不是總能滿足(它們所饋送的觸發(fā)器的)建立和保持時間的要求。因此,異步輸入常常會把錯誤的數(shù)據(jù)鎖存到觸發(fā)器,或者使觸發(fā)器進入亞穩(wěn)定的狀態(tài)。 很多異步設(shè)計都可以轉(zhuǎn)化為同步設(shè)計,對于可以轉(zhuǎn)化的邏輯必須轉(zhuǎn)化,不能轉(zhuǎn)化的邏輯,應(yīng)將異步的部分減到最小,而其前后級仍然應(yīng)該采用同步設(shè)計。下面給出一些異步邏輯轉(zhuǎn)化為同步邏輯的方法。 在同步電路設(shè)計中,有時候可以用同步置位的辦法來替代異步清 0 同步清 0 的描述方法: process

12、begin wait until clkevent and clk=1; if rst=1 then count0); else count=count+1; end if; end process; 同步清 0 的描述方法: process begin wait until clkevent and clk=1; if rst=1 then count0); else count綜合器會認為兩個非門相當于不經(jīng)過非門 2.通過插入一些原語來產(chǎn)生一定的延時,這樣形成的延時在FPGA芯片中并不穩(wěn)定,會隨溫度,器件工藝等外部環(huán)境的改變而改變 建議的方法:采用時鐘鎖存來產(chǎn)生延時 可以用高頻時鐘來驅(qū)動一

13、移位寄存器,待延時信號作數(shù)據(jù)輸入,按所需延時正確設(shè)置移位寄存器的級數(shù),移位寄存器的輸出即為延時后的信號。此方法產(chǎn)生的延時信號與原信號比有誤差,誤差大小由高頻時鐘的周期來決定。對于數(shù)據(jù)信號的延時,在輸出端用數(shù)據(jù)時鐘對延時后信號重新采樣,就可以消除誤差 Tco 是觸發(fā)器時鐘到數(shù)據(jù)輸出的延時 Tdelay 是組合邏輯的延時 Tsetup是觸發(fā)器的建立時間 Tpd是時鐘的延時參數(shù),如果使用 PLD 的全局時鐘型號,Tpd 可以為0, 假設(shè)數(shù)據(jù)已經(jīng)被時鐘的上升沿打入D觸發(fā)器,那么數(shù)據(jù)到達第一個觸發(fā)器的Q端需要 Tco,再經(jīng)過組合邏輯的延時 Tdelay到達的第二個觸發(fā)器的D 端,要想時鐘能在第二個觸發(fā)器

14、再次被穩(wěn)定的鎖入觸發(fā)器,則時鐘的延遲不能晚于 co+Tdelay+Tsetup 最小時鐘周期:T=Tco+Tdelay+Tsetup 最快時鐘頻率 F= 1/T 設(shè)計電路時只可以改變 Tdelay 所以縮短觸發(fā)器間組合邏輯的延時是提高同步電路速度的關(guān)鍵 要使電路穩(wěn)定工作,時鐘周期必須滿足最大延時要求,縮短最長延時路徑,才可提高電路的工作頻率=關(guān)鍵路徑 流水線(pipelining):將較大的組合邏輯分解為較小的幾塊,中間插入觸發(fā)器 當設(shè)計的運行速度不符合系統(tǒng)設(shè)計要求的時候我們可以首先找到不能滿足要求的關(guān)鍵路徑,按照上述的方法將關(guān)鍵路徑上的組合邏輯拆分成多個中間用觸發(fā)器隔開,這樣很容易就可以從根

15、本上提升系統(tǒng)的運行速度了。 當需要將 FPGA/CPLD 內(nèi)部的信號通過管腳輸出給外部相關(guān)器件的時候,如果不影響功能最好是將這些信號通過用時鐘寄存后輸出。 狀態(tài)機具有自啟動功能,能從非法狀態(tài)中恢復(fù) 上電時能進入合法狀態(tài) 在 FPGA 的內(nèi)部資源里最重要的一部分就是其時鐘資源(全局時鐘網(wǎng)絡(luò)),它一般是經(jīng)過 FPGA 的特定全局時鐘管腳進入 FPGA 內(nèi)部,后經(jīng)過全局時鐘 BUF 適配到全局時鐘網(wǎng)絡(luò)的,這樣的時鐘網(wǎng)絡(luò)可以保證相同的時鐘沿到達芯片內(nèi)部每一個觸發(fā)器的延遲時間差異是可以忽略不計的。 對于一個設(shè)計項目來說,全局時鐘(或同步時鐘)是最簡單和最可預(yù)測的時鐘。 在PLD/FPGA 設(shè)計中最好的時

16、鐘方案是:由專用的全局時鐘輸入引腳驅(qū)動的單個主時鐘去鐘控設(shè)計項目中的每一個觸發(fā)器。只要可能就應(yīng)盡量在設(shè)計項目中采用全局時鐘。PLD/FPGA 都具有專門的全局時鐘引腳,它直接連到器件中的每一個寄存器。這種全局時鐘提供器件中最短的時鐘到輸出的延時。 如果時鐘間存在著固定的頻率倍數(shù),這種情況下它們的相位一般具有固定關(guān)系,可以采用下述方法處理: 1. 使用高頻時鐘作為工作時鐘,使用低頻時鐘作為使能信號,當功耗不作為首要因素時建議使用這種方式; 2. 在仔細分析時序的基礎(chǔ)上描述兩個時鐘轉(zhuǎn)換處的電路; 如果電路中存在兩個不同頻率的時鐘,并且頻率無關(guān),可以采用如下策略: 1.利用高頻時鐘采樣兩個時鐘,在電

17、路中使用高頻時鐘作為電路的工作時鐘,經(jīng)采樣后的低頻時鐘作為使能 2.在時鐘同步單元中采用兩次同步法 3.使用握手信號 4.使用雙時鐘 FIFO 進行數(shù)據(jù)緩沖 在我們?nèi)粘5脑O(shè)計中很多情形下會用到需要分頻的情形,最好的方法是使用分頻后的信號作為使能,而不要使用分頻后的信號作為時鐘,這樣,設(shè)計是在全局時鐘域工作。否則,時鐘的延時信息是不可靠的。不建議使用組合邏輯時鐘或門控時鐘,組合邏輯很容易產(chǎn)生毛刺,用組合邏輯的輸出作為時鐘很容易使系統(tǒng)產(chǎn)生誤動作不建議使用行波時鐘,盡量避免采用多個時鐘,多使用觸發(fā)器的使能端來解決在可編程邏輯器件設(shè)計時,由于時鐘建立應(yīng)盡量避免采用多時鐘網(wǎng)絡(luò),或者采用適當?shù)拇胧p少時鐘

18、的個數(shù),使用頻率低的時鐘盡量簡化消除。 4. 觸發(fā)器的置/復(fù)位端盡量避免出現(xiàn)毛刺,及自我復(fù)位電路等,最好只用一個全局復(fù)位信號。電路中盡量避免“死循環(huán)”電路,如RS觸發(fā)器等。5禁止時鐘在不同可編程器件中級連,盡量降低時鐘到各個器件時鐘偏差值。同一個時鐘在不同可編程器件中使用時不允許級連,而且應(yīng)該保證該時鐘到達不同可編程器件輸入引腳的時鐘偏差足夠小。1.采用全局時鐘,不要將時鐘參與運算,盡可能只使用一個時鐘,只使用一個時鐘沿2.以寄存器為邊界劃分工作模塊3.組合邏輯盡量采用并行結(jié)構(gòu) 如果沒有優(yōu)先級要求應(yīng)該盡量采用 case 語句來描述,這樣綜合出來的電路并行度要大一些,如果采用 if-then-else 結(jié)構(gòu),綜合出來的電路都是串行的,增大了時延路徑4.在描述中應(yīng)該消

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論