《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的全局異步局部同步四相單軌握手協(xié)議實(shí)現(xiàn)
基于FPGA的全局異步局部同步四相單軌握手協(xié)議實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2012年第4期
張景偉,,李若仲,,肖 宇,,卜祥偉
空軍工程大學(xué) 導(dǎo)彈學(xué)院,,陜西 三原713800
摘要: 在常規(guī)FPGA中設(shè)計(jì)了基于LUT的異步狀態(tài)保持單元,實(shí)現(xiàn)了全局異步局部同步系統(tǒng)的接口電路,、時鐘暫停電路,,進(jìn)一步完成四相單軌握手協(xié)議?;赒uartus軟件的邏輯鎖定技術(shù),,采用Verilog HDL進(jìn)行行為描述,構(gòu)建了無冒險(xiǎn)C單元庫,。在Altera CycloneⅡ EP2C35F672C6器件上,,完成了GALS系統(tǒng)的時序仿真,證明了四相單軌握手的正確性,。
中圖分類號: TN47
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)04-0037-03
Implementation of globally asynchronous locally synchronous four-phase monorail handshake protocol based on FPGA
Zhang Jingwei,,Li Ruozhong,,Xiao Yu,Bu Xiangwei
The Missile Institute, Air Force Engineering University, Sanyuan 713800,,China
Abstract: An asynchronous state-holding unit was designed based on LUT, in commercial FPGA, according to this carries out the interface circuit,、clock pause circuit of globally asynchronous locally synchronous system, complete 4-phase bundled-data handshake protocol further. Target a technique according to the logic-lock of Quartus, adopt Verilog HDL carry on a behavior description and set up Hazard-free C unit database, at Altera CycloneⅡ EP2C35F672C6, complete the test of GALS system, result proves effect better.
Key words : 4-phase bundled-data handshake protocol;FPGA,;Muller C,;GALS;Hazard-free

    異步電路所具有的低功耗,、低電磁噪聲輻射,、高速等突出特點(diǎn),使其逐漸成為當(dāng)前設(shè)計(jì)的焦點(diǎn)?,F(xiàn)有異步電路的實(shí)現(xiàn)方法往往通過定制的VLSI結(jié)構(gòu)完成,,或者設(shè)計(jì)獨(dú)特的異步FPGA結(jié)構(gòu)來實(shí)現(xiàn),而現(xiàn)有基于常規(guī)FPGA設(shè)計(jì)的異步電路,,往往難于解決其中的冒險(xiǎn),、延遲等問題。

    全局異步局部同步[1]GALS(Globally Asynchronous Locally Synchronous)系統(tǒng),,結(jié)合了同步設(shè)計(jì)和異步設(shè)計(jì)的優(yōu)點(diǎn),,在解決多時鐘域問題和模塊更新的復(fù)用性等方面有巨大優(yōu)勢,其特點(diǎn)是在各同步模塊需要處理時才工作,,其余時間可以處于暫停狀態(tài),,不用引入太多異步單元,較易于使用常規(guī)FPGA實(shí)現(xiàn),,特別是在現(xiàn)有SoC[2]系統(tǒng)中多同步模塊異步互聯(lián)方面有著突出優(yōu)勢,,且其具有低功耗、高吞吐量的特點(diǎn),。
    參考文獻(xiàn)[3]描述的是一種全局異步局部同步的專用FPGA(GAPLA),,其內(nèi)部結(jié)構(gòu)通過同步邏輯模塊實(shí)現(xiàn)數(shù)據(jù)計(jì)算,在邏輯模塊間由同步,、異步互換接口完成異步互聯(lián),,其關(guān)鍵技術(shù)是同步、異步互換接口和時鐘暫停(Pausible clocking)電路結(jié)構(gòu),,而在常規(guī)FPGA中不包含這些結(jié)構(gòu),。參考文獻(xiàn)[4]在常規(guī)FPGA實(shí)現(xiàn)GALS系統(tǒng),是通過信號狀態(tài)轉(zhuǎn)換圖(STG)的方法設(shè)計(jì)接口電路,,利用Petrify軟件實(shí)現(xiàn)的一種GALS系統(tǒng)異步封裝電路,,其將接口模塊同步分解成邏輯門電路,容易產(chǎn)生冒險(xiǎn),。參考文獻(xiàn)[5]則通過使用帶復(fù)位端的D觸發(fā)器及延遲單元來完成接口電路的設(shè)計(jì),,其接口中的延遲單元要求是FPGA內(nèi)部的標(biāo)準(zhǔn)單元,,而在常規(guī)FPGA中不包含此標(biāo)準(zhǔn)單元。
    本文基于常規(guī)FPGA中大量的LUT結(jié)構(gòu),,通過Quartus軟件的邏輯鎖定[6]技術(shù)將設(shè)計(jì)的C單元鎖定在一定區(qū)域,,保證了C單元的無冒險(xiǎn)性,同時建立標(biāo)準(zhǔn)C單元庫,。使用C單元實(shí)現(xiàn)了GALS系統(tǒng)所需要的延遲電路,、接口電路、時鐘暫停[7]電路,。利用狀態(tài)機(jī)設(shè)計(jì)的計(jì)數(shù)器作為同步模塊,,基于四相單軌握手協(xié)議[8],完成兩同步模塊的異步互聯(lián),。
1 點(diǎn)對點(diǎn)GALS系統(tǒng)
    GALS系統(tǒng)從局部來看各同步模塊獨(dú)立設(shè)計(jì),;從全局來看,各模塊彼此時鐘獨(dú)立,,以各自工作頻率獨(dú)立運(yùn)行,,其互聯(lián)通過設(shè)計(jì)的異步接口完成。且各同步模塊時鐘具有可暫停性,,保證不需要數(shù)據(jù)處理時時鐘不運(yùn)行的效果,,具有低功耗的特點(diǎn)。點(diǎn)對點(diǎn)GALS系統(tǒng)是采用單點(diǎn)同步模塊對應(yīng)單點(diǎn)通信的方式實(shí)現(xiàn)的異步電路,。整個結(jié)構(gòu)由三部分組成:局部同步區(qū)域,、握手區(qū)域、時鐘可暫停區(qū)域,。在同步區(qū)域完成的是同步模塊的設(shè)計(jì),其同步模塊可更新復(fù)用,;握手區(qū)域通過同步,、異步互換接口及鎖存器完成,由兩邊同步模塊發(fā)送的WR,、RD信號來觸發(fā)握手區(qū)域進(jìn)行握手,;時鐘可暫停區(qū)域由內(nèi)部產(chǎn)生的時鐘及握手區(qū)域輸出的暫停信號(STRETCH)進(jìn)行時鐘的調(diào)整,確保系統(tǒng)的低功耗運(yùn)行,。其組成框圖如圖1所示,。

    在點(diǎn)對點(diǎn)GALS系統(tǒng)中,設(shè)計(jì)的重點(diǎn)是接口電路及局部時鐘可暫停模塊,,由于不需要引入外部時鐘,,所以在全局復(fù)位后,時鐘可暫停模塊就應(yīng)當(dāng)產(chǎn)生時鐘信號,,時鐘信號的頻率根據(jù)各同步模塊需求情況設(shè)定,。在同步模塊的設(shè)計(jì)中,,其既要有數(shù)據(jù)接收模塊和數(shù)據(jù)處理模塊,又要產(chǎn)生上級的接收信號(RD)和下級的數(shù)據(jù)處理完畢信號(WR),,以確保電路接連不斷地工作,。
2 狀態(tài)保持單元的設(shè)計(jì)
    異步電路中為了避免冒險(xiǎn)現(xiàn)象的發(fā)生,常需要設(shè)計(jì)一些適合異步電路的狀態(tài)保持單元,,通常難于設(shè)計(jì)的就是無冒險(xiǎn)的Muller C單元,,且其為異步電路的重要組成部分。Muller C標(biāo)準(zhǔn)單元(c_std)的基本功能為:當(dāng)輸入信號A,、B同時為“1”時,,輸出S為“1”;當(dāng)輸入信號A,、B同時為“0”時,,輸出S為“0”;當(dāng)輸入信號A,、B處于其他狀態(tài)時,,輸出保持原信號。從而當(dāng)輸出信號為“1”時,,就能指示輸入信號都為“1”,。輸出為“0”的情況同理。由此可以看出其信號的跳變能夠指示或確認(rèn)其他信號的跳變情況,,這樣就能夠確保電路避免冒險(xiǎn)現(xiàn)象的發(fā)生,。而通過邏輯門設(shè)計(jì)的C單元,常因內(nèi)部連線延遲以及門延遲的特性,,使得其映射到FPGA內(nèi)部時會出現(xiàn)冒險(xiǎn)現(xiàn)象,,因而只有通過建立查找表結(jié)構(gòu)的方式設(shè)計(jì)C單元,才可使得映射到常規(guī)FPGA時避免冒險(xiǎn)發(fā)生,。
    在圖1的GALS系統(tǒng)中使用到的4種標(biāo)準(zhǔn)的C單元,,采用Verilog HDL語言編寫,通過編譯生成.QSF文件,,利用Logic-Lock技術(shù)生成網(wǎng)表文件,,通過這三個文件即可建立常規(guī)FPGA可調(diào)用的無冒險(xiǎn)C單元庫。圖2描述的是4種C單元庫文件符號及c_std相應(yīng)的Verilog描述,。在C單元庫中的c_clr_l單元具有置0功能,,而c_clr_h具有置1功能。表1列出4種C單元的lut_mask值,。

    參考文獻(xiàn)[9]使用的是門電路描述的C單元,,在EDA軟件對其進(jìn)行綜合編譯時,容易受到其余同步電路的影響而產(chǎn)生冒險(xiǎn),。本文對基于LUT實(shí)現(xiàn)的C單元,,需要將輸出反饋回輸入的一端,,同時使用Quartus軟件的邏輯鎖定(Logic-Lock)方式,將C單元綜合,、布局于一定的區(qū)域內(nèi),,可以避免在與其余電路綜合時發(fā)生冒險(xiǎn),具有較高實(shí)用價(jià)值,。
3 接口電路及時鐘暫停電路的實(shí)現(xiàn)
    四相單軌握手協(xié)議,,廣泛應(yīng)用于時序假設(shè)中,通??梢允闺娐帆@得最好的性能,。而在控制電路設(shè)計(jì)中,最簡單的四相單軌握手電路通過一個C門和一個非門組成,,即異步電路中常用的Muller流水線[10],。本文采用手工設(shè)計(jì)方式實(shí)現(xiàn)的握手接口電路就是基于Muller流水線的思想,如圖3所示,。
    圖3(a)實(shí)現(xiàn)的wport接口電路,,在全局CLEAR信號為高電平時對全局電路進(jìn)行復(fù)位,其輸出REQ,、STRETCH信號全為低電平,。局部同步模塊產(chǎn)生一個WR信號(即同步模塊處理完畢)時,通過延遲取反相“與”后輸出一個脈沖,。當(dāng)ACK信號為低電平時,,左邊的C單元輸出為“1”,即其暫停信號(STRETCH)置為“1”,,停止同步模塊時鐘運(yùn)行,,此時由于右邊的C單元的輸入都為“1”,則發(fā)出請求信號,,完成一次請求,;當(dāng)ACK信號為高電平時,由于右邊C單元的置0位為“1”,,從而停止請求,實(shí)現(xiàn)了一次四相單軌通信,。
    圖3(b)中的rport接口電路,,在同步模塊發(fā)出處理完成信號時,其左邊的C單元置1位輸入是由RD產(chǎn)生的脈沖信號,,從而其輸出STRETCH為“1”,,即要求同步模塊時鐘停止,在其請求信號REQ為“1”時,,ACK輸出為“1”,;當(dāng)REQ為低電位時,,由于左邊C單元輸出為低電位,則ACK輸出為“0”,,實(shí)現(xiàn)了一次四相單軌通信,。

    結(jié)合兩接口電路的四相單軌通信則可實(shí)現(xiàn)GALS系統(tǒng)的模塊互聯(lián)。對接口電路延遲單元的設(shè)計(jì)則使用單個標(biāo)準(zhǔn)C單元c_std實(shí)現(xiàn),,通過時序約束其延遲量可達(dá)到5.125 ns,,對整個電路的設(shè)計(jì)具有較好的延遲效果,且無冒險(xiǎn)現(xiàn)象,。
    在GALS系統(tǒng)中,,有些同步模塊可能沒有自帶的時鐘信號,常需要系統(tǒng)內(nèi)部產(chǎn)生特定頻率范圍的時鐘信號,,所以可暫停時鐘的設(shè)計(jì)是必須的,。實(shí)現(xiàn)方法是基于一個C單元及一個延遲單元,以及可隨意調(diào)節(jié)的分頻器組成,,通過C單元設(shè)計(jì)的時鐘電路可產(chǎn)生頻率高的時鐘,。當(dāng)CLEAR信號置高時,對電路清0,,經(jīng)過延遲取反后,,C單元的輸入為1,則輸出即為1,,以此類推,,則產(chǎn)生時鐘信號。局部時鐘模塊的實(shí)現(xiàn)如圖4所示,。通過時序仿真,,CLK在未加分頻器的情況下可高達(dá)500 MHz以上。由于超過目前FPGA的最高時鐘,,從而其需要通過分頻來達(dá)到設(shè)計(jì)要求,。此時鐘電路根據(jù)同步模塊需求,頻率可進(jìn)行任意調(diào)節(jié),,具有較大實(shí)用性,。


4 GALS系統(tǒng)實(shí)現(xiàn)及測試
    為了測試由FPGA實(shí)現(xiàn)的四相單軌握手協(xié)議電路的性能,通過狀態(tài)機(jī)設(shè)計(jì)無冒險(xiǎn)的計(jì)數(shù)器作為GALS系統(tǒng)兩端的同步電路,,采用Altera公司CycloneⅡEP2C35F6-
72C6器件作為測試器件,,通過邏輯鎖定技術(shù)將標(biāo)準(zhǔn)C單元模塊添加進(jìn)設(shè)計(jì)中,通過建立wport,、rport的父區(qū)域(Parent Region)鎖定模塊,,將子區(qū)域(Child Region)鎖定的C單元添加進(jìn)父區(qū)域鎖定模塊,保證了各自時序的獨(dú)立性,確保了電路功能的實(shí)現(xiàn),。其時序仿真結(jié)果如圖5所示,。

 

 


    對結(jié)果進(jìn)行分析:當(dāng)全局復(fù)位信號為高電平時,對全局電路進(jìn)行復(fù)位,。整個握手實(shí)現(xiàn)過程通過同步模塊的2個計(jì)數(shù)器在進(jìn)位時,,輸出各自的進(jìn)位信號作為wr和rd信號,當(dāng)二者同時為高電平時發(fā)生握手,,且作為接口電路rport,、wport的輸入信號。當(dāng)req上升沿到來時,,ack響應(yīng)req信號變?yōu)楦?;?dāng)req下降沿到來時,ack拉低,。通過ack的上升沿觸發(fā)鎖存器傳遞數(shù)據(jù),,完成數(shù)據(jù)的通信,其數(shù)據(jù)主要是由計(jì)數(shù)器產(chǎn)生的0,、1信號,。而對于時鐘暫停模塊,當(dāng)str1,、str2信號為高電平時分別對兩個模塊的時鐘進(jìn)行暫停,,從仿真圖中可見,當(dāng)兩者為高電平時,,將時鐘置為0,,保證了時鐘的可暫停。
    整個系統(tǒng)通過設(shè)計(jì)的C單元庫,,實(shí)現(xiàn)了GALS中的接口模塊,、時鐘暫停模塊,達(dá)到GALS系統(tǒng)同步模塊間異步互聯(lián)的效果,,且使用的是四相單軌握手協(xié)議,,具有較好的握手性能。使用Quartus軟件的邏輯鎖定技術(shù),,對子區(qū)域(C單元),、父區(qū)域(接口電路)進(jìn)行鎖定,確保了C單元在與整個電路綜合中不出現(xiàn)冒險(xiǎn)問題,,確保了電路的可行性,。對在常規(guī)FPGA中實(shí)現(xiàn)異步電路帶來新的開發(fā)特性,特別對SoC的異步互聯(lián)具有較好的實(shí)用價(jià)值,。
參考文獻(xiàn)
[1] NAJIBI M,,SALEH K,NADERI M,,et al.Prototyping globally asynchronous locally synchronous Circuits on commercial synchronous FPGAs[C].rsp,,16th IEEE International Workshop on Rapid System Prototyping(RSP'05), 2005:63-69.
[2] BERGMANN N,WILLIAMS J,,WU J.System level design methodology for hybrid multi-processor soc on FPGA[C]. 16th International Symposium on Field-Programmable Custom Computing Machines (FCCM'08),,2008:312-313..
[3] XIN J,VEMURI R.A novel asynchronous FPGA architecture design and its performance evaluation[J]. In Field Programmable Logic and Applications, 2005:287-292.
[4] 周端,,史明華.一種基于標(biāo)準(zhǔn)邏輯單元的GALS異步封裝電路[J].電路與系統(tǒng)學(xué)報(bào),2009,14(5):112-116.
[5] Zhuang Shengxian.Wei dong. An asynchronous wrapper with novel handshake circuits for GALS systems[C], IEEE Proceeding of International.conference on communications, circuits and systems,Chengdu, China,,2002:6.29-7.1.
[6] 吳繼華,王誠.Altera FPGA/CPLD設(shè)計(jì)(高級篇)[M].北京:人民郵電出版社,,2007:1-336
[7] YUN K Y,,DOOPLY A E.Pausible clocking based hetero-geneous systems[C]. IEEE Transactions on VLSI Systems,1999(12):482-487.
[8] SPARSO J,F(xiàn)URBER S.Principles of asynchronous circuits  design[M].Kluwer Academic Publishers, 2001.
[9] MOCHO R,,SARTORI H,,RIBAS P.Asynchronous circuit design on reconfigurable devices[C].SBCCI'06, 2006:8.29-9.11.
[10] ZAFAR Y,AHMED M.A novel FPGA compliant micropipeline[C].IEEE Transaction.on CAS II-Express Briefs,,2005,,52(9):611-615.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。