<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 復(fù)雜模塊接口的獨立設(shè)計

          復(fù)雜模塊接口的獨立設(shè)計

          作者: 時間:2012-09-19 來源:網(wǎng)絡(luò) 收藏

          一、引言

          本文引用地址:http://www.ex-cimer.com/article/185752.htm

            在越來越發(fā)達(dá)的通訊世界里,新產(chǎn)品、新設(shè)備層出不窮,隨之而來的問題是各產(chǎn)品與設(shè)備之間的接口也越來越多樣化,雖然標(biāo)準(zhǔn)化組織定義了許多接口標(biāo)準(zhǔn),比較著名的接口協(xié)議如USB,PCI等,但是由于各種接口的性能、價格、應(yīng)用范圍等因素的不同,新的接口協(xié)議仍舊層出不窮,如何設(shè)計接口一直是困擾著電子工程師,尤其是對復(fù)雜的接口協(xié)議,問題尤為突出。在國外,已經(jīng)推出用于接口設(shè)計的專用軟件。

            在過去的一年多時間里,我們對高性能串行總線IEEE-1394(2000A)做了研究,并設(shè)計了基于IEEE-1394(2000A)的物理層和鏈路層芯片。在芯片設(shè)計的過程中,我們對IEEE-1394(2000A)芯片中的PHY/link接口進(jìn)行了研究和設(shè)計,并探尋到了一些接口設(shè)計的經(jīng)驗?,F(xiàn)在我們以IEEE-1394接口為例,把心得拿出來與大家分享,希望能夠起到拋磚引玉的結(jié)果。

            二、接口功能結(jié)構(gòu)分析

            接口的主要功能就是使數(shù)據(jù)通過接口使之能夠在不同模塊或系統(tǒng)間自由流動,達(dá)到數(shù)據(jù)共享的目的。應(yīng)用接口的原因多種多樣的。通常的情況是由于模塊之間協(xié)議不匹配使得我們采用接口。另外還有各式各樣的原因使得我們不得不采用接口技術(shù),如傳輸環(huán)境惡劣,需要接口把數(shù)據(jù)按照一定的協(xié)議使之能夠安全地傳輸。這方面的一個典型的例子是GSM系統(tǒng)和CDMA的空中接口協(xié)議。而在IEEE-1394協(xié)議中,定義接口主要用于連接相同廠商或不同廠商的1394串行總線接口的物理層和鏈路層專用集成電路(ASIC),并為1394系統(tǒng)未來的升級提供支持。國內(nèi)電子工程師應(yīng)當(dāng)在系統(tǒng)設(shè)計過程中借鑒這方面的經(jīng)驗。

            總而言之,隨著各種新設(shè)備,新產(chǎn)品的產(chǎn)生,接口的廣泛應(yīng)用是不言而喻的,它需要我們針對不同的情況,高效快捷地解決數(shù)據(jù)互連的問題。

            在應(yīng)用接口的環(huán)境中,情況總是這樣:模塊A的數(shù)據(jù)輸入和輸出采用一種接口協(xié)議M,而模塊B的數(shù)據(jù)輸入和輸出采用另外一種接口協(xié)議N,因此數(shù)據(jù)無法在模塊A和模塊B之間直接傳遞,模塊A和模塊B也不能直接互連。

            通常的解決方法是這樣的:在模塊A和模塊B之間進(jìn)行加上一個接口。這樣,接口把模塊A發(fā)來的數(shù)據(jù)用協(xié)議M接收下來,再在接口中把數(shù)據(jù)分解出來,按照協(xié)議N組成數(shù)據(jù)包,把數(shù)據(jù)包發(fā)送到模塊B,這樣模塊B就能夠接收下到所有模塊A發(fā)來的數(shù)據(jù)包。

            三、復(fù)雜設(shè)計

            通常我們說某個接口復(fù)雜主要指的是接口連接協(xié)議很復(fù)雜,通常它必須高速處理很多寄存器和多種封裝形式復(fù)雜數(shù)據(jù)的存取。對接口設(shè)計者來說,必須與接口連接模塊的設(shè)計者充分地溝通,以得到足夠的信息,才能設(shè)計出有效的接口連接模塊A和模塊B。這勢必需要接口設(shè)計者和模塊A、B的設(shè)計者多次溝通,以共同制定接口的設(shè)計方案。這樣的溝通需要很多時間,并可能引起設(shè)計交接時的扯皮,所以必須制定設(shè)計小組之間的接口文檔。這樣復(fù)雜的工作流程很難保證設(shè)計的高效和高正確率。

            在設(shè)計實現(xiàn)中,我們更改了通常的接口設(shè)計結(jié)構(gòu),在這種結(jié)構(gòu)的支持下,我們能夠很快捷地設(shè)計出我們需要的接口,在進(jìn)行很少的幾次討論之后,各模塊的設(shè)計者都明白如何進(jìn)行模塊間的連接,使得我們在較短時間內(nèi)設(shè)計出這個復(fù)雜接口。

            我們可以看到與一般意義的接口功能結(jié)構(gòu)圖的區(qū)別在于在接口與模塊之間增加了一個發(fā)送接收緩沖區(qū),用以存儲接口在連接傳輸數(shù)據(jù)時需要模塊提供的數(shù)據(jù),包括相應(yīng)寄存器的值和需要傳送的數(shù)據(jù)包。

            在接口設(shè)計時只要和PHY模塊設(shè)計者商定好,把需要的信息放在那個寄存器地址下,合作制定好寄存器和發(fā)送接收數(shù)據(jù)包列表就可以了。甚至可以由設(shè)計者直接向接口雙方模塊提供一個寄存器和發(fā)送接收數(shù)據(jù)包清單就可以。這樣接口設(shè)計者可以有更大的發(fā)揮空間,由此使得接口設(shè)計者能夠細(xì)致分析接口需求,設(shè)計出性能更好的接口。

            下面,我們以IEEE-1394總線物理層和鏈路層芯片間的PHY/link接口為例來討論一下接口的設(shè)計。

            四、高性能串行總線IEEE-1394簡介

            IEEE-1394A 它不僅僅是一項只能在某些領(lǐng)域使用的新技術(shù),它有著廣泛的市場空間,甚至有可能成為未來的總線標(biāo)準(zhǔn)。盡管IEEE-1394A目前還沒有被PC廠商廣泛采用,但是它在數(shù)字圖像領(lǐng)域內(nèi)的重要作用已經(jīng)為世人所關(guān)注。作為一種數(shù)據(jù)傳輸?shù)拈_放式技術(shù)標(biāo)準(zhǔn),IEEE-1394A被應(yīng)用在許多領(lǐng)域。目前,IEEE-1394技術(shù)使用最廣的還是數(shù)字圖像領(lǐng)域,支持的產(chǎn)品包括數(shù)字相機或攝像機等。然而IEEE-1394的潛在市場遠(yuǎn)非這些,無論在計算機硬盤還是在網(wǎng)絡(luò)互連等方面,該協(xié)議都有其廣闊的用武之地??傮w上,IEEE-1394A具有廉價,占用空間小,速度快,支持熱插拔,支持同步和異步傳輸?shù)忍攸c。

            從系統(tǒng)結(jié)構(gòu)而言,IEEE-1394系統(tǒng)分為應(yīng)用層、管理層,事務(wù)層、鏈路層(link)和物理層(PHY)幾個部分。物理層和鏈路層由于相對穩(wěn)定,性能要求較高,往往做成ASIC,其余部分通常由相關(guān)軟件來完成。

            這里定義的接口用于連接相同廠商或不同廠商的1394串行總線接口的物理層和鏈路層專用集成電路(ASIC),并為1394系統(tǒng)未來的升級提供了支持。在IEEE-1394A中,PHY/link層接口單列成一章,足見其重要性。本文在IEEE-1394A的基礎(chǔ)上,提出了這種接口的解決方案,性能經(jīng)過驗證達(dá)到了該協(xié)議中所要求的指標(biāo)。

            五、復(fù)雜數(shù)字邏輯EDA簡介

            EDA(Electronic Design Automation),是在計算機平臺上,利用軟件開發(fā)工具進(jìn)行數(shù)字,模擬,數(shù)?;旌想娮与娐吩O(shè)計的方法,是電子設(shè)計領(lǐng)域中最具活力和最有發(fā)展前途的一項技術(shù)。其中數(shù)字邏輯設(shè)計已經(jīng)比較成熟。與傳統(tǒng)的設(shè)計方法相比,EDA工具縮短了設(shè)計周期,降低了開發(fā)成本,提高了設(shè)計的可靠性。

            IEEE-1394A的PHY/link接口的復(fù)雜邏輯設(shè)計,采用了先進(jìn)的EDA技術(shù),進(jìn)行 Top-Down的設(shè)計。邏輯設(shè)計的結(jié)果通過FPGA/CPLD驗證后,進(jìn)一步制成ASIC。復(fù)雜邏輯的開發(fā)需要兩部分工具:1)邏輯仿真和綜合工具; 2)FPGA/CPLD布局布線工具;

            FPGA/CPLD都是可編程邏輯器件,生產(chǎn)廠家較多,型號各異。其中比較典型的就是Xilinx公司的FPGA(現(xiàn)場可編程門陣列)器件系列和Altera公司的CPLD(復(fù)雜可編程邏輯器件)器件系列。采用 FPGA/CPLD芯片進(jìn)行系統(tǒng)開發(fā),具有以下幾個優(yōu)點:

            可實現(xiàn)強大功能。隨著VLSI工藝的不斷提高,其單片邏輯門數(shù)已達(dá)到百萬門級,內(nèi)嵌多種特殊模塊,所能實現(xiàn)的功能也越來越強,同時也可以實現(xiàn)系統(tǒng)集成。

            研發(fā)投入低。FPGA/CPLD芯片在出廠之前都做過可靠的測試,設(shè)計人員只需通過相關(guān)的軟硬件環(huán)境來完成芯片的功能設(shè)計,所以節(jié)省了許多潛在的花費。

            開發(fā)周期短,采用EDA設(shè)計方法,設(shè)計人員不需要具備專門的IC深層次知識,在較短的時間內(nèi)就可完成電路的邏輯設(shè)計和芯片的制作,快速將產(chǎn)品推向市場。

            可在線編程?;赟RAM/FLASH的FPGA/CPLD,用戶可以反復(fù)地編程、擦除、使調(diào)試/升級都十分方便,亦可用同一芯片實現(xiàn)不同的功能。

            FPGA/CPLD開發(fā)工具包括軟件和編程器,開發(fā)軟件一般有芯片生產(chǎn)廠家提供,也有一些優(yōu)秀的第三方軟件可以選用。EDA開發(fā)軟件包括輸入工具、編譯器仿真工具、綜合工具、及布局布線、版圖設(shè)計等工具。Verilog 高級硬件描述語言的使用,使邏輯設(shè)計輸入更為簡化,更為準(zhǔn)確。

            在設(shè)計測試中使用的EDA工具有:硬件描述語言Verilog,仿真工具M(jìn)odelSim,綜合工具Synplify,布局布線工具M(jìn)axplus等。設(shè)計測試采用ALTERA公司的ACEX1K系列低價位的CPLD芯片,它具有3萬基本邏輯單元多,位內(nèi)嵌存儲單元,基本可以滿足一般的邏輯設(shè)計要求。

          六、接口結(jié)構(gòu)功能簡介

            接口分別屬于IEEE-1394節(jié)點系統(tǒng)的物理層和鏈路層模塊,是物理層和鏈路層的子模塊,負(fù)責(zé)物理層和鏈路層的控制信號、數(shù)據(jù)包和狀態(tài)報告的傳輸。物理層和鏈路層之間主要依靠Ctrl[1:0]、Dn[n:0]、LReq、LPS、LinkOn和SClk 六組信號線來進(jìn)行傳輸控制信號和其間的多種數(shù)據(jù)包。

            鏈路層取得接口控制權(quán)時,可能需要傳輸?shù)陌ǎ鹤x數(shù)據(jù)請求包(RdReg)、寫數(shù)據(jù)請求包(WrReg)、立即仲裁請求數(shù)據(jù)包(ImmReq)、公平仲裁請求數(shù)據(jù)包(FairReq)、優(yōu)先仲裁請求數(shù)據(jù)包(PriReq),和等時仲裁請求數(shù)據(jù)包(IsoReq)。

            物理層取得接口控制權(quán)時,除了可能傳輸總線上傳來的所有的數(shù)據(jù)包,還可能傳輸狀態(tài)信息包和讀請求響應(yīng)包。

            在1394總線系統(tǒng)中,物理層/鏈路層主要實現(xiàn)物理層和鏈路層模塊之間的定時服務(wù),數(shù)據(jù)請求,數(shù)據(jù)服務(wù),仲裁請求和仲裁服務(wù)。

            Ctrl[1:0]是該接口的控制信號。相同的信號隨接口控制權(quán)所屬模塊不同而不同。Dn[n:0]是接口的數(shù)據(jù)線,用來傳輸接口的數(shù)據(jù)包,也是該接口獨具特色的一點。它支持S100,S200和S400和更高的速度,數(shù)據(jù)總線的帶寬與總線速度相適應(yīng):在以100Mbps傳輸時,接口只用D[0:1]來傳輸數(shù)據(jù),傳輸速度每增加100Mbps,傳輸數(shù)據(jù)時接口將多用兩根數(shù)據(jù)線。由于項目要求系統(tǒng)傳輸最高速度為400Mbps,所以接口中共有八根數(shù)據(jù)線。這樣,如果加快傳輸速度,只是物理層芯片模擬部分提高處理頻率,在整個芯片數(shù)字部分,數(shù)據(jù)時鐘頻率保持不變,與串行總線速度相,使得未來的系統(tǒng)升級成為可能。LReq信號線來傳輸請求信號,包括讀寫寄存器請求和仲裁請求等,根據(jù)請求,物理層響應(yīng)傳輸操作。

            LPS是用于指示鏈路層電源和功能是否正常。

            另外,協(xié)議中還規(guī)定了該接口配有Direct數(shù)字微分編碼器(digital differentiators)選通端,用以增加對物理層和鏈路層芯片之間隔離的支持。根據(jù)接口模塊獨立設(shè)計的思想,該接口實現(xiàn)過程中,主要技術(shù)難點主要有以下幾點:

            接口與上下層模塊之間的握手協(xié)議需要仔細(xì)的設(shè)計。由于該接口傳輸?shù)臄?shù)據(jù)包大小不一,使接口同上下層模塊內(nèi)部的連接變得復(fù)雜,這部分協(xié)議沒有提及,必須自己小心地設(shè)計該協(xié)議,目標(biāo)是使上下層模塊同接口的連接簡明扼要,并且高效,盡可能地減少接口到相應(yīng)模塊的傳輸延遲,這樣物理層和鏈路層的握手等動作所消耗的時間也將相應(yīng)減少,得到更高的數(shù)據(jù)吞吐量。

            接口傳輸多種格式和功能的數(shù)據(jù)包,傳送不同的數(shù)據(jù)包時,物理/鏈路層接口的動作和響應(yīng)都不同。如果處理不當(dāng),會極大地增加了接口實現(xiàn)時的復(fù)雜度和規(guī)模。

            規(guī)范定義的Ctrl和Dn定時匹配成為很主要的矛盾。接口依靠Ctrl[1:0]來傳輸和識別控制信號,以產(chǎn)生相應(yīng)動作。在物理層把接口控制權(quán)交接給鏈路層時,協(xié)議中要求不超過兩個周期。但在系統(tǒng)中,各層發(fā)送和識別控制信號需要一定的時間,接口必須盡可能少地減少這個時間,使響應(yīng)模塊識別控制信號。

            以下將針對以上幾個難點簡述我們在項目中的實現(xiàn)方法。

            接口和物理/鏈路模塊的握手協(xié)議

          七、接口和物理/鏈路模塊的握手協(xié)議

            物理層/鏈路層模塊和接口的握手協(xié)議在IEEE-1394A中沒有定義,給設(shè)計者留下了思考的空間。1394總線系統(tǒng)本身旨在提供一種高速的數(shù)據(jù)傳輸方式, 而物理/鏈路接口處于所有數(shù)據(jù)流必經(jīng)的通路,所以在設(shè)計協(xié)議時,我們的目標(biāo)是盡可能地減小數(shù)據(jù)流通過接口的延遲,以避免接口的“瓶頸”效應(yīng)。

            基于以上的考慮,我們考慮了這種方案:

            (注:由于物理層和鏈路層模塊處于對等的地位,限于篇幅,我只描述物理層模塊的情形,鏈路層模塊以此類推。)

            在上述方案中,各引腳功能定義如下:

            Preq_En[1:0]是物理層數(shù)據(jù)包傳輸使能位,而且代表請求的優(yōu)先級。2 'b00代表無請求,2 'b01代表該請求具有最高的優(yōu)先級,可以終止現(xiàn)在的正在操作的請求,2 'b10代表請求優(yōu)先級較低,它將等待接口正在處理的請求完成后再執(zhí)行。

            Preq_Data[31:0]是物理層請求數(shù)據(jù),包含請求類型,包長度,速度及相關(guān)參數(shù)。0~15位請求相關(guān)數(shù)據(jù),16~31位數(shù)據(jù)包長度及格式信息,最大情況支持65536個32位字節(jié)組成的數(shù)據(jù)包(可以容納協(xié)議中最大的數(shù)據(jù)包)。

            Preq_Pkt[31:0]是物理層數(shù)據(jù)包輸入端口,一次能夠輸入一個32位字節(jié)。

            PktUpdt_Req是數(shù)據(jù)包輸入端口數(shù)據(jù)更新請求位,物理數(shù)據(jù)包輸入端口上的字節(jié)已經(jīng)傳輸完畢,請求更新數(shù)據(jù)以便傳輸。

            Link_Pkt[31:0]是鏈路層數(shù)據(jù)包輸出端口。

            Link_Pkt_On是鏈路層數(shù)據(jù)包到達(dá)指示。用以判斷鏈路層的新數(shù)據(jù)是否被傳輸完畢。

            INTF_Busy是接口物理層模塊忙指示,表明此時接口忙。用以判斷總線上的數(shù)據(jù)包(物理層接收的數(shù)據(jù)包)是否可以向鏈路層傳輸。

            在總線數(shù)據(jù)包即將向鏈路層傳輸時,接口先置位INTF_Busy,阻止在此操作的同時,阻止其他的總線數(shù)據(jù)包向上傳輸。與此同時,置位Preq_En,設(shè)置請求使能和優(yōu)先級。接著當(dāng)接口物理層模塊做好準(zhǔn)備后,置位PktUp-dt_Req,物理層模塊檢測到該信號置位后,立即把數(shù)據(jù)放在Preq_Data上。接口物理層層模塊傳輸完后,再次置位PktUpdt_Req以得到數(shù)據(jù)包的下一個字節(jié),同時接口內(nèi)部計數(shù)器加一,在重復(fù)該過程,直至該數(shù)據(jù)包被傳輸完畢。當(dāng)鏈路層有數(shù)據(jù)包要求傳至總線上時,接口物理層模塊轉(zhuǎn)交總線控制權(quán),同時置位INTF_Busy,阻止總線上的數(shù)據(jù)包上傳。當(dāng)接口物理層模塊接收到數(shù)據(jù)包的第一個32位字節(jié)后,置位Li-nk_Pkt_On,同時置位Link_Pkt。物理層模塊檢測到Link_Pkt_On后讀取Link_Pkt上得到第一個32位數(shù)據(jù)包,計數(shù)器加一,重復(fù)此過程,直至該數(shù)據(jù)包接收完畢。

            在實際的應(yīng)用過程中,我們采取了提前準(zhǔn)備數(shù)據(jù)的方法,在每個32位字節(jié)最后一位開始傳輸?shù)耐瑫r,發(fā)出更新數(shù)據(jù)的請求,使數(shù)據(jù)包從物理層模塊傳輸?shù)芥溌穼幽K的過程中,基本上沒有握手協(xié)議上的延遲。

            設(shè)計之初,我們曾經(jīng)考慮過把請求數(shù)據(jù)位用一個控制數(shù)據(jù)包代替,并把所有數(shù)據(jù)一次性地讀到一個ram中去,并用ram的讀寫協(xié)議進(jìn)行操作。

            容易看出,改進(jìn)后的協(xié)議在處理大的數(shù)據(jù)包時顯現(xiàn)出了無法比擬的優(yōu)勢,付出的代價是增加了握手信號的數(shù)量,由于這些信號線處于模塊內(nèi),相對增加的成本微乎其微。

            八、多個數(shù)據(jù)包處理狀態(tài)機化簡合并

            在協(xié)議中規(guī)定接口必須完成傳輸多種格式和功能的數(shù)據(jù)包。對各種數(shù)據(jù)包,其傳輸方式也各不一樣。類似地,對接口物理層模塊的每種請求相應(yīng)的操作也都不一樣。我們考察各種請求操作流程后,我們對這些流程進(jìn)行的多次化簡歸納,最后采用了如下這種狀態(tài)機。

            在接口物理層模塊和鏈路層模塊實現(xiàn)時,我們采用了一個主狀態(tài)機和一個從狀態(tài)機的結(jié)構(gòu)。

            采用了主狀態(tài)機和從狀態(tài)機的結(jié)構(gòu),不僅很大程度上簡化了狀態(tài)機,而且是結(jié)構(gòu)清晰,其次操作相近的仲裁請求包被合為一類,并依據(jù)請求類型來編寫從控制狀態(tài)機。在實現(xiàn)過程中,在主從狀態(tài)機的前提下我們開始使用另外一種依據(jù)Ctrl控制線的狀態(tài)編寫從控制狀態(tài)機。從綜合后的結(jié)果來比較,現(xiàn)在的這個改進(jìn)狀態(tài)機節(jié)省了50%以上的資源。從這點看,可見同樣的功能,不同的設(shè)計會產(chǎn)生截然不同的效果。

            九、Ctrl和Dn定時匹配

            在IEEE-1394A協(xié)議中要求支持?jǐn)?shù)字微分編碼器(digital differe-ntiators),所以接口引入了微分編碼延遲。此時,從數(shù)字信號產(chǎn)生到接口相應(yīng)信號線上的延遲如果超過半個SClk時鐘周期,可以依據(jù)IEEE1394-2000A協(xié)議推斷出:對應(yīng)的接收模塊不能準(zhǔn)確地接收到有效信號。所以數(shù)字微分編碼器的設(shè)計成為了整個設(shè)計的“瓶頸”之一。

            十、結(jié)束語

            把復(fù)雜協(xié)議內(nèi)部模塊間的接口獨立出來進(jìn)行設(shè)計,是一種加快和簡化設(shè)計過程、提高設(shè)計可重用性和可維護性的好方法,值得重視和推廣。目前國外產(chǎn)品一般采用鎖相環(huán)(PLL)技術(shù),把外部時鐘倍頻至SClk的八倍頻以作為系統(tǒng)的工作頻率,而本接口設(shè)計只有部分電路用了SClk的兩倍頻,在很大程度上降低了對元器件的要求和系統(tǒng)的功耗。

            PHY/link接口在IEEE-1394協(xié)議中具有非常重要的作用,對芯片處理速度的提高有較大的影響。本文通過對該接口的分析,提出了解決該接口設(shè)計難點的方案。以上方案經(jīng)過FPGA布線后仿真測試,證明是切實可行的。



          關(guān)鍵詞: 模塊接口 獨立

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();