<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 使用PLD內部鎖相環(huán)解決系統設計難題

使用PLD內部鎖相環(huán)解決系統設計難題

作者: 時(shí)間:2004-12-08 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:從整個(gè)應用系統的角度,理解和分析內部;在此基礎上,深入剖析的相移結構,同時(shí)用這個(gè)技術(shù)解決難題。

關(guān)鍵詞: 內嵌 FIFO XBUS

引言

微電子技術(shù)的發(fā)展趨勢是片上系統(SoC),也就是在一塊芯片上實(shí)現整個(gè)系統,包括模擬部分和數字部分。作為IC產(chǎn)業(yè)中重要的一個(gè)分支,可編程邏輯器件()也在努力向這個(gè)方向發(fā)展。無(wú)論是Xilinx還是Altera,它們最新的PLD產(chǎn)品中都集成了諸如PCI接口、乘法器、MCU核以及DSP核等部件,有的甚至集成了完整的微處理器。例如,Xlinux的Vietex2-Pro系列就是集成了PowerPC微處理器。

技術(shù)是模擬集成電路設計中一個(gè)重要的研究方向。但是,現在中高檔的可編程邏輯器件一般都集成有片內的(如Xilinx的Spartan2系列,Altera的Cyclone系列)。鎖相環(huán)一端連接外部全局時(shí)鐘或者全局控制信號,另一端連接可編程邏輯器件內部專(zhuān)門(mén)的布線(xiàn)網(wǎng)絡(luò ),可以最大程度地減少全局時(shí)鐘信號到片內各個(gè)部分的布線(xiàn)延遲,有效地消除了時(shí)鐘偏移而帶一的各種問(wèn)題。同時(shí),鎖相環(huán)一般都提供了倍頻、分頻、相移三個(gè)功能。

1 應用背景介紹

本文用FPGA實(shí)現FIFO,連接PCI與TI的TMS320C6204的擴展總線(xiàn),與DSP傳輸數據的時(shí)鐘達到100MHz。由于DSP的接口對于時(shí)鐘和信號的要求很苛刻,所以下面具體分析核心的DSP的XBUS時(shí)序。

DSP的擴展總線(xiàn)(XBUS)是一個(gè)32位寬的總線(xiàn),支持與異步外設、異步/同步FIFO、PCI橋以及外部主控處理器等的接口。它同時(shí)提供一個(gè)靈活的總線(xiàn)仲裁機制,可以?xún)炔窟M(jìn)行仲裁,也可以由外部邏輯完成。

本文中使用XBUS的同步FIFO接口。如果是要讀取FIFO,首先FIFO要通過(guò)中斷信號XINT0來(lái)通知XBUS數據已經(jīng)準備好,然后XBUS響應XCE0、XRE、XOE有效,就開(kāi)始讀?。疲桑疲现械臄祿?,讀FIFO的時(shí)序如圖1所示;如果是要寫(xiě)FIFO,FIFO通過(guò)XINT1申請XBUS,然后XBUS響應XCE1、XWE有效,開(kāi)始一個(gè)寫(xiě)FIFO的DMA傳輸過(guò)程,寫(xiě)FIFO的時(shí)序如圖2所示。

通過(guò)分析XBUS讀寫(xiě)FIFO的時(shí)序關(guān)系可以看出,在FIFO實(shí)現的過(guò)程中需要注意以下幾個(gè)地方:

①XBUS工作時(shí)鐘是100MHz,對于大部分的FPGA來(lái)說(shuō)是一個(gè)比較高的頻率。而且,由于讀出的數據要求一定的建立時(shí)間(setup time)和保持時(shí)間(hold time),這就對內部邏輯的設計提出了較高的要求。

②讀FIFO時(shí),必須在使能信號有效之后的第二個(gè)時(shí)鐘周期就把數據輸出。對于FIFO內部的雙端口RAM來(lái)說(shuō),這個(gè)實(shí)現起來(lái)不一定能滿(mǎn)足要求(有很多RAM是在使能信號只有的3~5個(gè)時(shí)鐘周期才輸出數據的)。這樣,通用FIFO中就要考慮產(chǎn)生預讀邏輯來(lái)產(chǎn)生數據,以滿(mǎn)足XBUS嚴格的時(shí)序要求。

③XBUS的使能信號XCE0/XCE1/XRE/XOE/XWE的變化時(shí)間范圍是在時(shí)鐘有效之后的1~7ns,考慮到FPGA內部的組合邏輯延時(shí)和布線(xiàn)延時(shí),這樣對有效信號的鎖定可能是不穩定的。這就為邏輯設計帶來(lái)了很大的難度。

2 鎖相環(huán)的相移功能

系統時(shí)鐘是100MHz,為了獲得更好的布線(xiàn)效果和系統性能,時(shí)鐘信號必須經(jīng)過(guò)鎖相環(huán)到達全局時(shí)鐘布線(xiàn)網(wǎng)絡(luò )。同時(shí),鎖相環(huán)還可以提供多個(gè)時(shí)鐘相移的信號,同樣可以連接到全局布線(xiàn)網(wǎng)絡(luò )來(lái)驅動(dòng)片的時(shí)鐘信號。以Xilinx公司的SPARTAN2系列芯片為例(Altera的Cyclone或者更高級別的系列也提供了類(lèi)似的鎖相環(huán)),使用片內鎖相環(huán)進(jìn)行時(shí)鐘相移的示意如圖3所示。

相移以后的時(shí)鐘對于有很大的用處。本文利用了相移以后的時(shí)鐘解決了中的兩個(gè)難點(diǎn),取得了令人滿(mǎn)意的效果:

①用PLL解決使能信號漂移的難題;

②使用PLL滿(mǎn)足TI的TMS320C62XX系列DSP中XBUS的建立、保持時(shí)間要求。

3 使用PLL解決使能信號漂移的難題

由于DSP的XBUS響應FIFO的中斷XINT0時(shí),需要回復XRF、XCE0、XOE三個(gè)信號。只有三個(gè)同時(shí)有效時(shí),才可以讀FIFO,所以讀使能信號RDEN=not(XCE0 or XRE or XOE);XBUS回復FIFO中斷信號XINT1時(shí),需要回復XWE和XCE1兩個(gè)信號。只有兩個(gè)信號時(shí)有效才可以寫(xiě)FIFO,所以WREN=not(XCE1 or XWE)。

RDEN或者WREN都是由FPGA內部組合邏輯產(chǎn)生的,在FPGA內部組合邏輯的物理延時(shí)(tc)為3~5ns??紤]到XBUS的使能信號本身相對于時(shí)鐘上升沿(td)就有1~7ns,所以使能信號有效相對時(shí)鐘上升沿來(lái)說(shuō)可能的變化范圍為4~12ns,如圖4所示。

圖3中,系統經(jīng)過(guò)鎖相環(huán)的相移,驅動(dòng)FPGA內部邏輯的時(shí)鐘。相對于XCLK來(lái)說(shuō),如果XBUS的回應信號的延時(shí)為1ns(圖4中實(shí)線(xiàn)所示部分),則RDEN經(jīng)過(guò)組合邏輯延遲,變?yōu)楦哂行У臅r(shí)候,可以在時(shí)鐘的第一個(gè)上升沿采樣到(圖4中實(shí)線(xiàn)所示);如果XBUS的回應信號延時(shí)為7ns(圖4中虛線(xiàn)所示),則RDEN經(jīng)過(guò)組合邏輯延遲以后,只能在第二個(gè)時(shí)鐘的上升延才能采樣到高有效信號。

顯而易見(jiàn),XBUS信號延遲的變化范圍太大,造成了系統設計的不穩定性。要解決這個(gè)問(wèn)題,通過(guò)邏輯優(yōu)化是沒(méi)有辦法來(lái)進(jìn)行的。因為產(chǎn)生使能信號的那一級組合邏輯本身的延遲是無(wú)法改變的。

本文靈活地運用了FPGA內部鎖相環(huán)的移相功能,巧妙地解決了信號XCLK_Shift相對于XCLK的相移問(wèn)題。而且,經(jīng)過(guò)這個(gè)相移以后的時(shí)鐘信號,無(wú)論XBUS使能信號怎么在1~7ns內發(fā)生變化,都可以保證在XCLK_Shift的第二個(gè)時(shí)鐘周期采樣到高有效信號。這樣就確定了穩定的邏輯關(guān)系,為可靠穩定的設計奠定了基礎。

4 使用PLL滿(mǎn)足XBUS的建立、保持時(shí)間要求

如圖1中所示,FIFO中數據輸出時(shí)需要滿(mǎn)足一定的建立和保持時(shí)間(圖1中為時(shí)間5和時(shí)間6)。但是,時(shí)鐘信號XCLK輸入FPGA的時(shí)候需要首先經(jīng)過(guò)IOB(輸入輸出模塊),然后才能連接到鎖相環(huán)部分進(jìn)入全局時(shí)鐘網(wǎng)絡(luò )。采用同步輸出的時(shí)候,輸出數據也要經(jīng)過(guò)IOB才可以輸出。IOB本身的延時(shí)就很容易導致無(wú)法確保正確的建立和保持時(shí)間,滿(mǎn)足不了XBUS的要求,如圖5所示。

為了解決這個(gè)問(wèn)題,同樣可以采用鎖相環(huán)進(jìn)行時(shí)鐘相位偏移來(lái)彌補通過(guò)IOB引起的時(shí)鐘相位偏移。這樣,數據端的輸出只要相對于經(jīng)過(guò)偏移的時(shí)鐘信號滿(mǎn)足建立保持時(shí)間,那么,就可以滿(mǎn)足原始時(shí)鐘信號的要求(如圖5中虛線(xiàn)所示)。

5 結論

通過(guò)合理的使用FPGA內部的鎖相環(huán),本文在不改動(dòng)原有邏輯設計和代碼的情況下,巧妙地解決了高速DSP擴展總線(xiàn)XBUS與FIFO的接口問(wèn)題。為系統和邏輯設計解決了可能遇到的幾個(gè)難點(diǎn),為進(jìn)一步的研究和開(kāi)發(fā)提供了一種解決問(wèn)題的新方法和思路。



關(guān)鍵詞: PLD 鎖相環(huán) 系統設計

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>