RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于FPGA的全局異步局部同步四相單軌握手協(xié)議實(shí)現(xiàn)

電子工程師 ? 來源:《電子技術(shù)應(yīng)用》 ? 作者:張景偉;李若仲;肖 ? 2021-05-26 18:12 ? 次閱讀

異步電路所具有的低功耗、低電磁噪聲輻射、高速等突出特點(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),在解決多時(shí)鐘域問題和模塊更新的復(fù)用性等方面有巨大優(yōu)勢,其特點(diǎn)是在各同步模塊需要處理時(shí)才工作,其余時(shí)間可以處于暫停狀態(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ù)是同步、異步互換接口和時(shí)鐘暫停(Pausible clocking)電路結(jié)構(gòu),而在常規(guī)FPGA中不包含這些結(jié)構(gòu)。

參考文獻(xiàn)[4]在常規(guī)FPGA實(shí)現(xiàn)GALS系統(tǒng),是通過信號(hào)狀態(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)性,同時(shí)建立標(biāo)準(zhǔn)C單元庫。使用C單元實(shí)現(xiàn)了GALS系統(tǒng)所需要的延遲電路、接口電路、時(shí)鐘暫停[7]電路。利用狀態(tài)機(jī)設(shè)計(jì)的計(jì)數(shù)器作為同步模塊,基于四相單軌握手協(xié)議[8],完成兩同步模塊的異步互聯(lián)。

1 點(diǎn)對(duì)點(diǎn)GALS系統(tǒng)

GALS系統(tǒng)從局部來看各同步模塊獨(dú)立設(shè)計(jì);從全局來看,各模塊彼此時(shí)鐘獨(dú)立,以各自工作頻率獨(dú)立運(yùn)行,其互聯(lián)通過設(shè)計(jì)的異步接口完成。且各同步模塊時(shí)鐘具有可暫停性,保證不需要數(shù)據(jù)處理時(shí)時(shí)鐘不運(yùn)行的效果,具有低功耗的特點(diǎn)。點(diǎn)對(duì)點(diǎn)GALS系統(tǒng)是采用單點(diǎn)同步模塊對(duì)應(yīng)單點(diǎn)通信的方式實(shí)現(xiàn)的異步電路。

整個(gè)結(jié)構(gòu)由三部分組成:局部同步區(qū)域、握手區(qū)域、時(shí)鐘可暫停區(qū)域。在同步區(qū)域完成的是同步模塊的設(shè)計(jì),其同步模塊可更新復(fù)用;握手區(qū)域通過同步、異步互換接口及鎖存器完成,由兩邊同步模塊發(fā)送的WR、RD信號(hào)來觸發(fā)握手區(qū)域進(jìn)行握手;時(shí)鐘可暫停區(qū)域由內(nèi)部產(chǎn)生的時(shí)鐘及握手區(qū)域輸出的暫停信號(hào)(STRETCH)進(jìn)行時(shí)鐘的調(diào)整,確保系統(tǒng)的低功耗運(yùn)行。其組成框圖如圖1所示。

o4YBAGCuHbSAKk-XAAB8h74P-fk453.png

在點(diǎn)對(duì)點(diǎn)GALS系統(tǒng)中,設(shè)計(jì)的重點(diǎn)是接口電路及局部時(shí)鐘可暫停模塊,由于不需要引入外部時(shí)鐘,所以在全局復(fù)位后,時(shí)鐘可暫停模塊就應(yīng)當(dāng)產(chǎn)生時(shí)鐘信號(hào),時(shí)鐘信號(hào)的頻率根據(jù)各同步模塊需求情況設(shè)定。在同步模塊的設(shè)計(jì)中,其既要有數(shù)據(jù)接收模塊和數(shù)據(jù)處理模塊,又要產(chǎn)生上級(jí)的接收信號(hào)(RD)和下級(jí)的數(shù)據(jù)處理完畢信號(hào)(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)輸入信號(hào)A、B同時(shí)為“1”時(shí),輸出S為“1”;當(dāng)輸入信號(hào)A、B同時(shí)為“0”時(shí),輸出S為“0”;

當(dāng)輸入信號(hào)A、B處于其他狀態(tài)時(shí),輸出保持原信號(hào)。從而當(dāng)輸出信號(hào)為“1”時(shí),就能指示輸入信號(hào)都為“1”。輸出為“0”的情況同理。

由此可以看出其信號(hào)的跳變能夠指示或確認(rèn)其他信號(hào)的跳變情況,這樣就能夠確保電路避免冒險(xiǎn)現(xiàn)象的發(fā)生。而通過邏輯門設(shè)計(jì)的C單元,常因內(nèi)部連線延遲以及門延遲的特性,使得其映射到FPGA內(nèi)部時(shí)會(huì)出現(xiàn)冒險(xiǎn)現(xiàn)象,因而只有通過建立查找表結(jié)構(gòu)的方式設(shè)計(jì)C單元,才可使得映射到常規(guī)FPGA時(shí)避免冒險(xiǎn)發(fā)生。

在圖1的GALS系統(tǒng)中使用到的4種標(biāo)準(zhǔn)的C單元,采用Verilog HDL語言編寫,通過編譯生成.QSF文件,利用Logic-Lock技術(shù)生成網(wǎng)表文件,通過這三個(gè)文件即可建立常規(guī)FPGA可調(diào)用的無冒險(xiǎn)C單元庫。圖2描述的是4種C單元庫文件符號(hào)及c_std相應(yīng)的Verilog描述。在C單元庫中的c_clr_l單元具有置0功能,而c_clr_h具有置1功能。表1列出4種C單元的lut_mask值。

o4YBAGCuHaCAPHtlAACvP32KJUI736.png

參考文獻(xiàn)[9]使用的是門電路描述的C單元,在EDA軟件對(duì)其進(jìn)行綜合編譯時(shí),容易受到其余同步電路的影響而產(chǎn)生冒險(xiǎn)。本文對(duì)基于LUT實(shí)現(xiàn)的C單元,需要將輸出反饋回輸入的一端,同時(shí)使用Quartus軟件的邏輯鎖定(Logic-Lock)方式,將C單元綜合、布局于一定的區(qū)域內(nèi),可以避免在與其余電路綜合時(shí)發(fā)生冒險(xiǎn),具有較高實(shí)用價(jià)值。

3 接口電路及時(shí)鐘暫停電路的實(shí)現(xiàn)

四相單軌握手協(xié)議,廣泛應(yīng)用于時(shí)序假設(shè)中,通??梢允闺娐帆@得最好的性能。而在控制電路設(shè)計(jì)中,最簡單的四相單軌握手電路通過一個(gè)C門和一個(gè)非門組成,即異步電路中常用的Muller流水線[10]。本文采用手工設(shè)計(jì)方式實(shí)現(xiàn)的握手接口電路就是基于Muller流水線的思想,如圖3所示。

圖3(a)實(shí)現(xiàn)的wport接口電路,在全局CLEAR信號(hào)為高電平時(shí)對(duì)全局電路進(jìn)行復(fù)位,其輸出REQ、STRETCH信號(hào)全為低電平。局部同步模塊產(chǎn)生一個(gè)WR信號(hào)(即同步模塊處理完畢)時(shí),通過延遲取反相“與”后輸出一個(gè)脈沖。當(dāng)ACK信號(hào)為低電平時(shí),左邊的C單元輸出為“1”,即其暫停信號(hào)(STRETCH)置為“1”,停止同步模塊時(shí)鐘運(yùn)行,此時(shí)由于右邊的C單元的輸入都為“1”,則發(fā)出請(qǐng)求信號(hào),完成一次請(qǐng)求;當(dāng)ACK信號(hào)為高電平時(shí),由于右邊C單元的置0位為“1”,從而停止請(qǐng)求,實(shí)現(xiàn)了一次四相單軌通信。

圖3(b)中的rport接口電路,在同步模塊發(fā)出處理完成信號(hào)時(shí),其左邊的C單元置1位輸入是由RD產(chǎn)生的脈沖信號(hào),從而其輸出STRETCH為“1”,即要求同步模塊時(shí)鐘停止,在其請(qǐng)求信號(hào)REQ為“1”時(shí),ACK輸出為“1”;當(dāng)REQ為低電位時(shí),由于左邊C單元輸出為低電位,則ACK輸出為“0”,實(shí)現(xiàn)了一次四相單軌通信。

o4YBAGCuHZOABNWDAACeziWEAyU772.png

結(jié)合兩接口電路的四相單軌通信則可實(shí)現(xiàn)GALS系統(tǒng)的模塊互聯(lián)。對(duì)接口電路延遲單元的設(shè)計(jì)則使用單個(gè)標(biāo)準(zhǔn)C單元c_std實(shí)現(xiàn),通過時(shí)序約束其延遲量可達(dá)到5.125 ns,對(duì)整個(gè)電路的設(shè)計(jì)具有較好的延遲效果,且無冒險(xiǎn)現(xiàn)象。

在GALS系統(tǒng)中,有些同步模塊可能沒有自帶的時(shí)鐘信號(hào),常需要系統(tǒng)內(nèi)部產(chǎn)生特定頻率范圍的時(shí)鐘信號(hào),所以可暫停時(shí)鐘的設(shè)計(jì)是必須的。實(shí)現(xiàn)方法是基于一個(gè)C單元及一個(gè)延遲單元,以及可隨意調(diào)節(jié)的分頻器組成,通過C單元設(shè)計(jì)的時(shí)鐘電路可產(chǎn)生頻率高的時(shí)鐘。當(dāng)CLEAR信號(hào)置高時(shí),對(duì)電路清0,經(jīng)過延遲取反后,C單元的輸入為1,則輸出即為1,以此類推,則產(chǎn)生時(shí)鐘信號(hào)。

局部時(shí)鐘模塊的實(shí)現(xiàn)如圖4所示。通過時(shí)序仿真,CLK在未加分頻器的情況下可高達(dá)500 MHz以上。由于超過目前FPGA的最高時(shí)鐘,從而其需要通過分頻來達(dá)到設(shè)計(jì)要求。此時(shí)鐘電路根據(jù)同步模塊需求,頻率可進(jìn)行任意調(diào)節(jié),具有較大實(shí)用性。

o4YBAGCuHYOADfWYAAAy2xPBv6c471.png

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ū)域鎖定模塊,保證了各自時(shí)序的獨(dú)立性,確保了電路功能的實(shí)現(xiàn)。其時(shí)序仿真結(jié)果如圖5所示。

pIYBAGCuHW2AEUeRAAIAJ-_hj2M070.png

對(duì)結(jié)果進(jìn)行分析:當(dāng)全局復(fù)位信號(hào)為高電平時(shí),對(duì)全局電路進(jìn)行復(fù)位。整個(gè)握手實(shí)現(xiàn)過程通過同步模塊的2個(gè)計(jì)數(shù)器在進(jìn)位時(shí),輸出各自的進(jìn)位信號(hào)作為wr和rd信號(hào),當(dāng)二者同時(shí)為高電平時(shí)發(fā)生握手,且作為接口電路rport、wport的輸入信號(hào)。當(dāng)req上升沿到來時(shí),ack響應(yīng)req信號(hào)變?yōu)楦撸?/p>

當(dāng)req下降沿到來時(shí),ack拉低。通過ack的上升沿觸發(fā)鎖存器傳遞數(shù)據(jù),完成數(shù)據(jù)的通信,其數(shù)據(jù)主要是由計(jì)數(shù)器產(chǎn)生的0、1信號(hào)。而對(duì)于時(shí)鐘暫停模塊,當(dāng)str1、str2信號(hào)為高電平時(shí)分別對(duì)兩個(gè)模塊的時(shí)鐘進(jìn)行暫停,從仿真圖中可見,當(dāng)兩者為高電平時(shí),將時(shí)鐘置為0,保證了時(shí)鐘的可暫停。

整個(gè)系統(tǒng)通過設(shè)計(jì)的C單元庫,實(shí)現(xiàn)了GALS中的接口模塊、時(shí)鐘暫停模塊,達(dá)到GALS系統(tǒng)同步模塊間異步互聯(lián)的效果,且使用的是四相單軌握手協(xié)議,具有較好的握手性能。使用Quartus軟件的邏輯鎖定技術(shù),對(duì)子區(qū)域(C單元)、父區(qū)域(接口電路)進(jìn)行鎖定,確保了C單元在與整個(gè)電路綜合中不出現(xiàn)冒險(xiǎn)問題,確保了電路的可行性。對(duì)在常規(guī)FPGA中實(shí)現(xiàn)異步電路帶來新的開發(fā)特性,特別對(duì)SoC的異步互聯(lián)具有較好的實(shí)用價(jià)值。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21729

    瀏覽量

    602986
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4161

    瀏覽量

    218162
  • 同步電路
    +關(guān)注

    關(guān)注

    1

    文章

    60

    瀏覽量

    13310
  • CLK
    CLK
    +關(guān)注

    關(guān)注

    0

    文章

    127

    瀏覽量

    17158
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA復(fù)位的8種技巧

    FPGA 設(shè)計(jì)中,復(fù)位起到的是同步信號(hào)的作用,能夠?qū)⑺械拇鎯?chǔ)元件設(shè)置成已知狀態(tài)。在數(shù)字電路設(shè)計(jì)中,設(shè)計(jì)人員一般把全局復(fù)位作為一個(gè)外部引腳來實(shí)現(xiàn),在加電的時(shí)候初始化設(shè)計(jì)。
    的頭像 發(fā)表于 11-16 10:18 ?311次閱讀
    <b class='flag-5'>FPGA</b>復(fù)位的8種技巧

    簡述TCP協(xié)議的三次握手機(jī)制

    機(jī)制是建立一個(gè)可靠的連接的關(guān)鍵步驟。以下是對(duì)TCP協(xié)議三次握手機(jī)制的介紹: 概述 TCP協(xié)議的三次握手機(jī)制是一種用于在兩個(gè)通信實(shí)體之間建立連接的過程。這個(gè)過程確保了數(shù)據(jù)的可靠傳輸和接收
    的頭像 發(fā)表于 08-16 10:57 ?959次閱讀

    同步降壓和異步降壓有什么區(qū)別

    同步降壓和異步降壓是兩種在電源轉(zhuǎn)換中常用的技術(shù),它們在實(shí)現(xiàn)方式、控制方法、效率、成本及應(yīng)用領(lǐng)域等方面存在顯著差異。以下是對(duì)這兩種技術(shù)的詳細(xì)比較和分析。
    的頭像 發(fā)表于 08-14 10:08 ?1938次閱讀

    怎么判斷同步清零和異步清零

    在數(shù)字電路設(shè)計(jì)中,清零操作是一種常見的操作,用于將寄存器或計(jì)數(shù)器的值清零。清零操作可以分為同步清零和異步清零兩種方式,它們在電路設(shè)計(jì)中有著不同的應(yīng)用場景和特點(diǎn)。 同步清零和異步清零的概
    的頭像 發(fā)表于 07-23 11:11 ?3380次閱讀

    異步置零和同步置零的區(qū)別在哪里

    異步置零和同步置零是數(shù)字電路設(shè)計(jì)中兩種不同的置零方法。它們在實(shí)現(xiàn)方式、性能和應(yīng)用場景上有所不同。 實(shí)現(xiàn)方式: 異步置零:
    的頭像 發(fā)表于 07-23 11:09 ?2156次閱讀

    異步線路和同步線路怎么區(qū)分

    在通信領(lǐng)域,異步線路和同步線路是兩種基本的數(shù)據(jù)傳輸方式。它們在數(shù)據(jù)傳輸?shù)臅r(shí)序、同步機(jī)制、傳輸效率等方面存在顯著差異。 1. 異步線路(Asynchronous Communicatio
    的頭像 發(fā)表于 07-23 09:14 ?588次閱讀

    FPGA同步復(fù)位和異步復(fù)位

    FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)中的復(fù)位操作是設(shè)計(jì)過程中不可或缺的一環(huán),它負(fù)責(zé)將電路恢復(fù)到初始狀態(tài),以確保系統(tǒng)的正確啟動(dòng)和穩(wěn)定運(yùn)行。在FPGA設(shè)計(jì)中,復(fù)位方式主要分為同步復(fù)
    的頭像 發(fā)表于 07-17 11:12 ?1508次閱讀

    FPGA異步信號(hào)處理方法

    FPGA(現(xiàn)場可編程門陣列)在處理異步信號(hào)時(shí),需要特別關(guān)注信號(hào)的同步化、穩(wěn)定性以及潛在的亞穩(wěn)態(tài)問題。由于異步信號(hào)可能來自不同的時(shí)鐘域或外部設(shè)備,其到達(dá)時(shí)間和頻率可能不受
    的頭像 發(fā)表于 07-17 11:10 ?1132次閱讀

    FPGA開發(fā)過程中配置全局時(shí)鐘需要注意哪些問題

    FPGA開發(fā)過程中,配置全局時(shí)鐘是一個(gè)至關(guān)重要的步驟,它直接影響到整個(gè)系統(tǒng)的時(shí)序和性能。以下是配置全局時(shí)鐘時(shí)需要注意的一些關(guān)鍵問題: 時(shí)鐘抖動(dòng)和延遲 :全局時(shí)鐘資源的設(shè)計(jì)目標(biāo)是
    發(fā)表于 04-28 09:43

    如何實(shí)現(xiàn)PTP協(xié)議的精準(zhǔn)同步時(shí)鐘?

    尊敬的技術(shù)大牛們,你們好! 現(xiàn)有一項(xiàng)目需要用到貴公司的STM32F4系列產(chǎn)品,由于業(yè)務(wù)場景對(duì)時(shí)鐘同步精度要求很高。所以需尋求你們的技術(shù)支撐,提供關(guān)于STM32F4系列的PTP協(xié)議或IEEE1588
    發(fā)表于 03-26 07:57

    局部變量超出堆棧范圍,想把占用內(nèi)存多的變量申請(qǐng)?jiān)?b class='flag-5'>全局如何做?

    目前局部變量超出堆棧范圍,現(xiàn)在想把占用內(nèi)存多的變量申請(qǐng)?jiān)?b class='flag-5'>全局,如何做
    發(fā)表于 03-20 08:03

    同步置數(shù),異步置數(shù),同步清零,異步清零的概念

    同步置數(shù)、異步置數(shù)、同步清零和異步清零是數(shù)字電路設(shè)計(jì)中常用的概念。 一、同步置數(shù) 同步置數(shù)是指在
    的頭像 發(fā)表于 02-22 13:48 ?1.7w次閱讀

    同步級(jí)聯(lián)和異步級(jí)聯(lián)的區(qū)別 異步級(jí)聯(lián)和同步級(jí)聯(lián)分別要注意什么

    指與同步級(jí)聯(lián)相對(duì)應(yīng)的,異步級(jí)聯(lián)是一種不同的級(jí)聯(lián)方式。在異步級(jí)聯(lián)中,級(jí)聯(lián)模塊之間不需要等待前一個(gè)模塊完全執(zhí)行完畢才能開始執(zhí)行下一個(gè)模塊。相反,每個(gè)模塊都可以獨(dú)立運(yùn)行,并在完成之后通知下一個(gè)模塊開始執(zhí)行
    的頭像 發(fā)表于 02-22 13:40 ?1804次閱讀

    說說TCP三次握手的過程?為什么是三次而不是兩次、次?

    三次而不是兩次或次。 首先,我們需要了解TCP是一種面向連接的協(xié)議。在進(jìn)行數(shù)據(jù)傳輸之前,發(fā)送端和接收端需要建立一個(gè)可靠的連接。TCP三次握手就是用來建立這個(gè)連接的過程。 三次握手的過
    的頭像 發(fā)表于 02-04 11:03 ?674次閱讀

    同步降壓和異步降壓的區(qū)別與聯(lián)系

    同步降壓和異步降壓是兩種不同的電源節(jié)能降壓技術(shù)。它們在降低電壓的目標(biāo)方面有一些相似之處,但它們在實(shí)現(xiàn)方式、控制方法和應(yīng)用領(lǐng)域等方面存在一定的差異。下面將詳細(xì)介紹同步降壓和
    的頭像 發(fā)表于 12-25 15:13 ?5414次閱讀
    RM新时代网站-首页