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

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

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

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

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

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

全局異步局部同步[1]GALS(Globally Asynchronous Locally Synchronous)系統(tǒng),結(jié)合了同步設(shè)計和異步設(shè)計的優(yōu)點,在解決多時鐘域問題和模塊更新的復用性等方面有巨大優(yōu)勢,其特點是在各同步模塊需要處理時才工作,其余時間可以處于暫停狀態(tài),不用引入太多異步單元,較易于使用常規(guī)FPGA實現(xiàn),特別是在現(xiàn)有SoC[2]系統(tǒng)中多同步模塊異步互聯(lián)方面有著突出優(yōu)勢,且其具有低功耗、高吞吐量的特點。

參考文獻[3]描述的是一種全局異步局部同步的專用FPGA(GAPLA),其內(nèi)部結(jié)構(gòu)通過同步邏輯模塊實現(xiàn)數(shù)據(jù)計算,在邏輯模塊間由同步、異步互換接口完成異步互聯(lián),其關(guān)鍵技術(shù)是同步、異步互換接口和時鐘暫停(Pausible clocking)電路結(jié)構(gòu),而在常規(guī)FPGA中不包含這些結(jié)構(gòu)。

參考文獻[4]在常規(guī)FPGA實現(xiàn)GALS系統(tǒng),是通過信號狀態(tài)轉(zhuǎn)換圖(STG)的方法設(shè)計接口電路,利用Petrify軟件實現(xiàn)的一種GALS系統(tǒng)異步封裝電路,其將接口模塊同步分解成邏輯門電路,容易產(chǎn)生冒險。參考文獻[5]則通過使用帶復位端的D觸發(fā)器及延遲單元來完成接口電路的設(shè)計,其接口中的延遲單元要求是FPGA內(nèi)部的標準單元,而在常規(guī)FPGA中不包含此標準單元。

本文基于常規(guī)FPGA中大量的LUT結(jié)構(gòu),通過Quartus軟件的邏輯鎖定[6]技術(shù)將設(shè)計的C單元鎖定在一定區(qū)域,保證了C單元的無冒險性,同時建立標準C單元庫。使用C單元實現(xiàn)了GALS系統(tǒng)所需要的延遲電路、接口電路、時鐘暫停[7]電路。利用狀態(tài)機設(shè)計的計數(shù)器作為同步模塊,基于四相單軌握手協(xié)議[8],完成兩同步模塊的異步互聯(lián)。

1 點對點GALS系統(tǒng)

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

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

o4YBAGCuHbSAKk-XAAB8h74P-fk453.png

在點對點GALS系統(tǒng)中,設(shè)計的重點是接口電路及局部時鐘可暫停模塊,由于不需要引入外部時鐘,所以在全局復位后,時鐘可暫停模塊就應當產(chǎn)生時鐘信號,時鐘信號的頻率根據(jù)各同步模塊需求情況設(shè)定。在同步模塊的設(shè)計中,其既要有數(shù)據(jù)接收模塊和數(shù)據(jù)處理模塊,又要產(chǎn)生上級的接收信號(RD)和下級的數(shù)據(jù)處理完畢信號(WR),以確保電路接連不斷地工作。

2 狀態(tài)保持單元的設(shè)計

異步電路中為了避免冒險現(xiàn)象的發(fā)生,常需要設(shè)計一些適合異步電路的狀態(tài)保持單元,通常難于設(shè)計的就是無冒險的Muller C單元,且其為異步電路的重要組成部分。Muller C標準單元(c_std)的基本功能為:當輸入信號A、B同時為“1”時,輸出S為“1”;當輸入信號A、B同時為“0”時,輸出S為“0”;

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

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

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

o4YBAGCuHaCAPHtlAACvP32KJUI736.png

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

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

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

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

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

o4YBAGCuHZOABNWDAACeziWEAyU772.png

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

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

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

o4YBAGCuHYOADfWYAAAy2xPBv6c471.png

4 GALS系統(tǒng)實現(xiàn)及測試

為了測試由FPGA實現(xiàn)的四相單軌握手協(xié)議電路的性能,通過狀態(tài)機設(shè)計無冒險的計數(shù)器作為GALS系統(tǒng)兩端的同步電路,采用Altera公司CycloneⅡEP2C35F6-

72C6器件作為測試器件,通過邏輯鎖定技術(shù)將標準C單元模塊添加進設(shè)計中,通過建立wport、rport的父區(qū)域(Parent Region)鎖定模塊,將子區(qū)域(Child Region)鎖定的C單元添加進父區(qū)域鎖定模塊,保證了各自時序的獨立性,確保了電路功能的實現(xiàn)。其時序仿真結(jié)果如圖5所示。

pIYBAGCuHW2AEUeRAAIAJ-_hj2M070.png

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

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

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

編輯:jq

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

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

    關(guān)注

    38

    文章

    4021

    瀏覽量

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

    關(guān)注

    1

    文章

    60

    瀏覽量

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

    關(guān)注

    0

    文章

    125

    瀏覽量

    17040
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    FPGA同步復位和異步復位

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

    FPGA異步信號處理方法

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

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

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

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

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

    【芯片設(shè)計】握手協(xié)議的介紹與時序說明

    最早接觸到握手協(xié)議是在校期間學習PCIe的AXI總線時,至今日雖然PCIe的結(jié)構(gòu)已經(jīng)忘得一干二凈,但握手協(xié)議經(jīng)過不斷的使用還算掌握的不錯。
    的頭像 發(fā)表于 12-11 14:11 ?2070次閱讀
    【芯片設(shè)計】<b class='flag-5'>握手</b><b class='flag-5'>協(xié)議</b>的介紹與時序說明

    異步電機與同步電機的區(qū)別和應用

    電機的轉(zhuǎn)子是由繞組組成的鋁棒,它通過感應電磁力的作用與旋轉(zhuǎn)的磁場相互作用而轉(zhuǎn)動。異步電機的轉(zhuǎn)子速度略低于旋轉(zhuǎn)磁場的速度,這也是它的名字的由來。同步電機的轉(zhuǎn)子和旋轉(zhuǎn)磁場的速度是同步的,通常是通過提供初始勵磁電流來
    的頭像 發(fā)表于 12-09 15:55 ?2213次閱讀

    同步整流和異步整流的區(qū)別

    同步整流和異步整流的區(qū)別? 同步整流和異步整流是電力系統(tǒng)中常用的兩種整流方式,它們有著不同的工作原理和特點。本文將詳細介紹同步整流和
    的頭像 發(fā)表于 12-08 10:06 ?1892次閱讀

    異步電路和同步電路區(qū)別在哪?

    部分是獨立運行的,沒有明確定義的時鐘信號來同步它們的操作。相反,每個部分在滿足特定的條件下單獨啟動和運行,通過相互之間的通信來完成所需的協(xié)作。異步電路通常采用握手協(xié)議來確保數(shù)據(jù)的正確傳
    的頭像 發(fā)表于 12-07 10:53 ?2547次閱讀

    握手型接口的同步FIFO實現(xiàn)

    按照正常的思路,在前文完成前向時序優(yōu)化和后向時序優(yōu)化后,后面緊跟的應該是雙向時序優(yōu)化策略了,不過不急,需要先實現(xiàn)一下握手同步FIFO。
    的頭像 發(fā)表于 12-04 14:03 ?538次閱讀
    <b class='flag-5'>握手</b>型接口的<b class='flag-5'>同步</b>FIFO<b class='flag-5'>實現(xiàn)</b>

    Valid-Ready握手協(xié)議的介紹與時序說明

    "Valid-Ready" 握手協(xié)議是一種常用于數(shù)字電路中的接口協(xié)議,用于控制數(shù)據(jù)的傳輸和處理。
    的頭像 發(fā)表于 12-04 10:37 ?1126次閱讀
    Valid-Ready<b class='flag-5'>握手</b><b class='flag-5'>協(xié)議</b>的介紹與時序說明

    同步異步通信協(xié)議介紹

    同步異步傳輸歸結(jié)為時鐘是外部的(同步)還是內(nèi)部的(異步)。異步協(xié)議的一些例子包括UART、US
    發(fā)表于 11-27 15:39 ?1332次閱讀
    <b class='flag-5'>同步</b>和<b class='flag-5'>異步</b>通信<b class='flag-5'>協(xié)議</b>介紹

    什么是同步邏輯和異步邏輯?同步電路與異步電路有何區(qū)別?

    什么是同步邏輯和異步邏輯?同步電路與異步電路有何區(qū)別? 同步邏輯和異步邏輯是計算機科學中的兩種不
    的頭像 發(fā)表于 11-17 14:16 ?1953次閱讀

    信號協(xié)議同步傳輸和異步傳輸有什么區(qū)別

    在信號協(xié)議中,有非常多的種類,如UART,I2C,SPI,PCIe等等,它們有自己的一套制定規(guī)則,但是在協(xié)議制定中,一定需要在同步異步中選擇其中一項作為傳輸規(guī)則。 所以這其中的
    的頭像 發(fā)表于 11-07 14:50 ?852次閱讀
    信號<b class='flag-5'>協(xié)議</b>中<b class='flag-5'>同步</b>傳輸和<b class='flag-5'>異步</b>傳輸有什么區(qū)別

    同步FIFO和異步FIFO的區(qū)別 同步FIFO和異步FIFO各在什么情況下應用

    簡單的一種,其特點是輸入和輸出都與時鐘信號同步,當時鐘到來時,數(shù)據(jù)總是處于穩(wěn)定狀態(tài),因此容易實現(xiàn)數(shù)據(jù)的傳輸和存儲。 而異步FIFO則是在波形的上升沿和下降沿上進行處理,在輸入輸出端口處分別增加輸入和輸出指針,用于管理數(shù)據(jù)的讀寫。
    的頭像 發(fā)表于 10-18 15:23 ?1462次閱讀