TWI774295B - 用於跨場域可編程邏輯閘陣列之資料傳輸控制的方法及相關設備 - Google Patents
用於跨場域可編程邏輯閘陣列之資料傳輸控制的方法及相關設備 Download PDFInfo
- Publication number
- TWI774295B TWI774295B TW110111366A TW110111366A TWI774295B TW I774295 B TWI774295 B TW I774295B TW 110111366 A TW110111366 A TW 110111366A TW 110111366 A TW110111366 A TW 110111366A TW I774295 B TWI774295 B TW I774295B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- temporary storage
- storage device
- gate array
- field programmable
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4273—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/3625—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1621—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
- Logic Circuits (AREA)
Abstract
本發明提供一種跨場域可編程邏輯閘陣列之資料傳輸控制的方法及相關設備。該方法包含:利用一第一暫存裝置依據一第一時鐘鎖存來自一第一場域可編程邏輯閘陣列的一組資料,其中該組資料依據資料負載和指標信號屬性排序且被分成多組局部資料;利用一分時多工介面依據一分時多工時鐘將該多組局部資料分別在多個時間點自該第一暫存裝置依序傳送至一第二暫存裝置;以及利用該第二暫存裝置依序接收該多組局部資料以將該組資料輸出至一第二場域可編程邏輯閘陣列,其中該第二場域可編程邏輯閘陣列依據異於該第一時鐘的一第二時鐘運作。
Description
本發明是關於跨裝置的高速通訊,尤指一種跨場域可編程邏輯閘陣列(Field Programmable Gate Array,FPGA)之資料傳輸控制的方法及相關設備。
場域可編程邏輯閘陣列(可簡稱FPGA)經常被用在系統開發流程中,其中對於某些系統來說,一個FPGA的硬體資源可能不敷使用,因此會需要將多個FPGA分別扮演該系統中的不同分區的腳色,而這些FPGA再互相連接以進行整個系統的原型(prototyping)設計以及仿真(emulation)。一個FPGA中可使用的輸入輸出(Input/Output,IO)大約有數千個,而在較複雜的系統中,其內的不同分區之間的訊號傳輸寬度經常達到上萬個位元,因此FPGA的輸入輸出的數量儼然成為開發流程中的一大限制。此外,在相關技術中,這些互相連接的FPGA可能為了配合彼此的操作頻率而無法操作在各自的最佳化的操作頻率,而整體效能也就因此受限。
因此,需要一種新穎的資料傳輸控制方法及相關設備,以在FPGA的輸入輸出的數量有限的情況下執行跨FPGA(inter-FPGA)的資料傳輸,並且容許每個FPGA均能在各自的最佳頻率下操作。
因此,本發明之一目的在於提供一種跨場域可編程邏輯閘陣列(Field
Programmable Gate Array,FPGA)之資料傳輸控制的方法及相關設備,以容許不同的場域可編程邏輯閘陣列能在各自的最佳頻率下操作。
本發明至少一實施例提供一種用於跨場域可編程邏輯閘陣列之資料傳輸控制的方法。該方法可包含:利用一第一暫存裝置依據一第一時鐘鎖存來自一第一場域可編程邏輯閘陣列的一組資料,其中該組資料依據負載及指標屬性被排序且被分成多組局部資料;利用一分時多工(Time-Division Multiplexing,TDM)介面依據一分時多工時鐘將該多組局部資料依序在多個時間點自該第一暫存裝置傳送至一第二暫存裝置;以及利用該第二暫存裝置依序接收該多組局部資料以將該組資料輸出至一第二場域可編程邏輯閘陣列,其中該第二場域可編程邏輯閘陣列依據異於該第一時鐘的一第二時鐘運作。
本發明至少一實施例提供一種用於一電子系統之仿真(emulation)的設備,其中該設備可包含一第一場域可編程邏輯閘陣列、一第二場域可編程邏輯閘陣列、一第一暫存裝置、一第二暫存裝置以及一分時多工介面。該第一暫存裝置是耦接至該第一場域可編程邏輯閘陣列,而第二暫存裝置是耦接至該第二場域可編程邏輯閘陣列,其中該分時多工介面是耦接於該第一暫存裝置與該第二暫存裝置之間。該第一場域可編程邏輯閘陣列可用於該電子系統的一第一子系統的仿真,其中該第一場域可編程邏輯閘陣列依據一第一時鐘運作。該第二場域可編程邏輯閘陣列可用於該電子系統的一第二子系統的仿真,其中該第二場域可編程邏輯閘陣列依據異於該第一時鐘的一第一時鐘運作。尤其,該第一暫存裝置依據該第一時鐘鎖存來自該第一場域可編程邏輯閘陣列的一組資料,其中該組資料依據負載及指標屬性被排序且被分成多組局部資料,以容許該分時多工介面依據一分時多工時鐘將該多組局部資料依序在多個時間點將該多組局部資料自該第一暫存裝置傳送至一第二暫存裝置。此外,該第二暫存裝置可依序接收該多組局部資料以將該組資料輸出至該第二場域可編程邏輯閘陣
列。
本發明的實施例所提供的方法及設備能藉助於按資料負載和指標信號屬性排序過的非同步傳輸介面將該第一場域可編程邏輯閘陣列與該第二場域可編程邏輯閘陣列的時鐘域完全隔離,因此該第一場域可編程邏輯閘陣列與該第二場域可編程邏輯閘陣列均可在其各自的最佳化頻率下操作。尤其,本發明的實施例不會大幅地增加額外成本。因此,本發明能在沒有副作用或較不會帶來副作用的情況下解決相關技術的問題。
10:設備
100:連接裝置
110,120,130,140,150:非同步FIFO
FPGAA,FPGAB:場域可編程邏輯閘陣列
111,141:非同步FIFO主端
112,142:非同步FIFO僕端
DATATX,DATARX:資料
60:設備
600:連接裝置
600TX:傳送器
600RX:接收器
610,620:暫存裝置
630:LVDS串行器/解串行器
MASTERCLK:主端時鐘
pxclk:像素時鐘
pxdata:資料
READY,CAPTURE:訊號
S810,S820,S830:步驟
第1圖為依據本發明一實施例之一種用於一電子系統之仿真的設備的示意圖。
第2圖為對應於某種通道的非同步先進先出暫存器的例子。
第3圖為對應於另一種通道的非同步先進先出暫存器的例子。
第4圖為排列多個通道類型中之相同方向的資料以產生一組資料的例子。
第5圖為針對第4圖中的該組資料內的資料進一步排列的例子。
第6圖為依據本發明一實施例之一種用於一電子系統之仿真的設備的示意圖。
第7圖為依據本發明一實施例之第6圖所示之連接裝置的某些細節。
第8圖為依據本發明一實施例之一種用於跨場域可編程邏輯閘陣列之資料傳輸控制的方法的工作流程。
第1圖為依據本發明一實施例之一種用於一電子系統之仿真(emulation)的設備10的示意圖,其中設備10可包含一第一場域可編程邏輯閘陣列(Field Programmable Gate Array,FPGA)FPGAA以及一第二場域可編程邏輯
閘陣列FPGAB。在本實施例中,第一場域可編程邏輯閘陣列FPGAA可用於該電子系統的一第一子系統的仿真,而第二場域可編程邏輯閘陣列FPGAB可用於該電子系統的一第二子系統的仿真,其中第一場域可編程邏輯閘陣列FPGAA依據一第一時鐘運作,而第二場域可編程邏輯閘陣列FPGAB依據一第二時鐘運作。例如,第一場域可編程邏輯閘陣列FPGAA以及第二場域可編程邏輯閘陣列FPGAB均可用某廠商諸如Xilinx的場域可編程邏輯閘陣列來實施,但本發明不限於此。
如第1圖所示,第一場域可編程邏輯閘陣列FPGAA可透過一連接裝置100來和第二場域可編程邏輯閘陣列FPGAB連接,其中連接裝置100可符合進階可擴展介面(Advanced eXtensible Interface,簡稱AXI)匯流排協定,但本發明不限於此。在本實施例中,第一場域可編程邏輯閘陣列FPGAA可作為一主(master)裝置,因此連接裝置100連接第一場域可編程邏輯閘陣列FPGAA的那一端可作為AXI主端,而第二場域可編程邏輯閘陣列FPGAB可作為一僕(slave)裝置,因此連接裝置100連接第二場域可編程邏輯閘陣列FPGAB的那一端可作為AXI僕端,其中連接裝置100可於AXI主端與第一場域可編程邏輯閘陣列FPGAA進行雙向交握(two way handshake),而連接裝置100可於AXI僕端與第二場域可編程邏輯閘陣列FPGAB進行雙向交握,但本發明不限於此。
如第1圖所示,第一場域可編程邏輯閘陣列FPGAA與第二場域可編程邏輯閘陣列FPGAB之間的資料傳輸可包含多個通道類型,例如AXI匯流排協定所描述之通道可包含位址讀(address read,簡稱且標記為AR)、位址寫(address write,簡稱且標記為AW)、寫入(write,簡稱且標記為W)、讀取(read,簡稱且標記為R)以及回應(response,簡稱且標記為B)通道等。在本實施例中,連接裝置100可包含多個非同步先進先出(First In First Out,FIFO)暫存器(以下簡稱且標記為「非同步FIFO」)諸如非同步FIFO 110、120、130、140及150以分別
用於上述多個通道類型。
在本實施例中,上述多個通道類型的每一通道類型可包含兩個方向的資料的傳輸。第2圖以對應於AR(即位址讀)通道的非同步FIFO 110為例,其中非同步FIFO 110可自AXI主端接收AR通道的相關資料/指令並且以先進先出的方式傳送至AXI僕端。如第2圖所示,非同步FIFO 110可包含一非同步FIFO主端111(其可為多個暫存器組成的暫存器堆(register file))以及一非同步FIFO僕端112(其可為多個多工器),其中AR通道的相關資料/指令是透過非同步FIFO主端111自AXI主端接收後再透過非同步FIFO僕端112傳送至AXI僕端。在本實施例中,非同步FIFO主端111與非同步FIFO僕端112之間的溝通可包含兩個方向的資料的傳輸,其中第一個方向的資料的傳輸可包含自非同步FIFO主端111傳送至非同步FIFO僕端112的AR寫入指標(pointer)以及AR負載(例如資料負載),而第二個方向的資料的傳輸可包含自非同步FIFO僕端112傳送至非同步FIFO主端111的AR讀取指標。
另外,第3圖以對應於R(即讀取)通道的非同步FIFO 140為例,其中非同步FIFO 140可自AXI僕端接收R通道的相關資料/指令並且以先進先出的方式傳送至AXI主端。如第3圖所示,非同步FIFO 140可包含一非同步FIFO主端141(其可為多個暫存器組成的暫存器堆(register file))以及一非同步FIFO僕端142(其可為多個多工器),其中R通道的相關資料/指令是透過非同步FIFO主端141自AXI僕端接收後再透過非同步FIFO僕端142傳送至AXI主端。在本實施例中,非同步FIFO主端141與非同步FIFO僕端142之間的溝通可包含兩個方向的資料的傳輸,其中第一個方向的資料的傳輸可包含自非同步FIFO主端141傳送至非同步FIFO僕端142的R寫入指標以及R負載,而第二個方向的資料的傳輸可包含自非同步FIFO僕端142傳送至非同步FIFO主端141的R讀取指標。
基於第2圖及第3圖的說明,其他通道類型諸如AW通道、W通道及B
通道的相關資料/指令的相關細節可依此類推,為簡明起見在此不贅述。
因此,各個通道在AXI主端與AXI僕端之間的資料傳輸可包含:由AXI主端傳送至AXI僕端的資料,若以資料屬性來區分,例如有AR寫入指標、AR負載、AW寫入指標、AW負載、W寫入指標、W負載、R讀取指標以及B讀取指標;以及由AXI僕端傳送至AXI主端的資料,若以資料屬性來區分,例如有AR讀取指標、AW讀取指標、W讀取指標、R寫入指標、R負載、B寫入指標以及B負載。如第4圖所示,該多個通道類型中,資料傳輸方向(例如,由AXI主端傳輸至AXI僕端,或由AXI僕端傳輸至AXI主端)相同的資料可排列在一起以產生一組資料,例如AXI主端可將AR寫入指標、AR負載、AW寫入指標、AW負載、W寫入指標、W負載、R讀取指標以及B讀取指標排列在一起以產生一組傳送資料DATATX,而AXI僕端可將AR讀取指標、AW讀取指標、W讀取指標、R寫入指標、R負載、B寫入指標以及B負載排列在一起以產生一組接收資料DATARX。因此,該組資料(例如該組傳送資料DATATX或該組接收資料DATARX)可包含至少一讀取指標、至少一負載或至少一寫入指標。需注意的是,該至少一負載自AXI主端傳送至AXI僕端的時間點較佳為早於該至少一寫入指標自AXI主端傳送至AXI僕端的時間點,以及該至少一讀取指標自AXI主端傳送至AXI僕端的時間點較佳為早於該至少一負載自AXI主端傳送至AXI僕端的時間點。因此,在第5圖的實施例中,可將該組傳送資料DATATX內的AR寫入指標、AR負載、AW寫入指標、AW負載、W寫入指標、W負載、R讀取指標以及B讀取指標根據負載及指標屬性進一步排序(例如傳送順序)為R讀取指標、B讀取指標、AR負載、AW負載、W負載、AR寫入指標、AW寫入指標以及W寫入指標,並可將該組接收資料DATARX內的AR讀取指標、AW讀取指標、W讀取指標、R寫入指標、R負載、B寫入指標以及B負載根據負載及指標屬性進一步排序(例如傳送順序)為AR讀取指標、AW讀取指標、W讀取指標、R負載、B負載、R寫入指標以及B寫入指
標。
第6圖為依據本發明一實施例之一種用於一電子系統之仿真的設備60的示意圖,其中設備60可作為第1圖所示之設備10的例子。如第6圖所示,第一場域可編程邏輯閘陣列FPGAA以及第二場域可編程邏輯閘陣列FPGAB外可透過一連接裝置600互相連接,其中連接裝置600可包含耦接至第一場域可編程邏輯閘陣列FPGAA的一傳送器600TX以及耦接至第二場域可編程邏輯閘陣列FPGAB的接收器600RX,並且傳送器600TX與接收器600RX可透過一纜線互相連接。
第7圖為依據本發明一實施例之第6圖所示之連接裝置600的某些細節,其中第7圖是以傳送資料DATATX為例,而接收資料DATARX僅在資料傳輸方向不同,其餘細節均可依據傳送資料DATATX的例子類推得知。如第7圖所示,連接裝置600可包含第一暫存裝置610、第二暫存裝置620以及一分時多工(Time-Division Multiplexing,TDM)介面諸如低電壓差分訊號(Low Voltage Differential Signaling,,簡稱LVDS)串行器/解串行器(Serializer/Deserializer,SerDes)630。在本實施例中,傳送器600TX以及接收器600RX可被內嵌在LVDS串行器/解串行器630中,但本發明不限於此。在某些實施例中,第一暫存裝置610的至少一部分(例如一部分或全部)可設置在連接裝置600的外部,例如第一暫存裝置610的至少一部分(例如一部分或全部)可為第一場域可編程邏輯閘陣列FPGAA的一部分,但本發明不限於此。在某些實施例中,第二暫存裝置620的至少一部分(例如一部分或全部)可設置在連接裝置600的外部,例如第二暫存裝置620的至少一部分(例如一部分或全部)可為第二場域可編程邏輯閘陣列FPGAB的一部分,但本發明不限於此。
在本實施例中,第一暫存裝置610是耦接至第一場域可編程邏輯閘陣列FPGAA以依據該第一時鐘(例如主端時鐘MASTERCLK)鎖存來自第一場域
可編程邏輯閘陣列FPGAA的傳送資料DATATX(其包含上述重排序後的R讀取指標、B讀取指標、AR負載、AW負載、W負載、AR寫入指標、AW寫入指標以及W寫入指標),其中傳送資料DATATX可被分成多組局部資料。LVDS串行器/解串行器630是耦接於第一暫存裝置610與第二暫存裝置620之間,並且LVDS串行器/解串行器630可依據一分時多工時鐘諸如像素時鐘pxclk將該多組局部資料分別在多個時間點將該多組局部資料自第一暫存裝置610傳送至第二暫存裝置620,其中第一場域可編程邏輯閘陣列FPGAA可將主端時鐘MASTERCLK傳送給連接裝置600,而連接裝置600可依據主端時鐘MASTERCLK產生像素時鐘pxclk。例如,第一場域可編程邏輯閘陣列FPGAA的操作頻率(例如主端時鐘MASTERCLK的頻率)可在數百萬赫茲(megahertz,MHz),而傳輸器600TX與接收器600RX之間的資料傳輸率(例如像素時鐘pxclk的頻率)可達數千兆赫茲(gigahertz,GHz)等級。此外,第二暫存裝置620另耦接至第二場域可編程邏輯閘陣列FPGAB,並且可依序接收該多組局部資料以將傳送資料DATATX(其包含上述重排序後的R讀取指標、B讀取指標、AR負載、AW負載、W負載、AR寫入指標、AW寫入指標以及W寫入指標)輸出至第二場域可編程邏輯閘陣列FPGAB。
依據上述運作,第一暫存裝置610可視為一出境暫存器堆(outbound register file),而第二暫存620可視為一入境暫存器堆(inbound register file),其中第一暫存裝置610及第二暫存620的任一者(例如每一者)可包含多個暫存器或是多個靜態隨機存取記憶體(Static Random Access Memory,SRAM)單元,但本發明不限於此。
另外,該多組局部資料的每一組局部資料可連同一對應的辨識碼自第一暫存裝置610被傳送至第二暫存裝置620。在第二暫存裝置620接收到該多組局部資料的全部後,第二暫存裝置620可依據該對應的辨識碼還原傳送資料DATATX。
例如,LVDS串行器/解串行器630可為LVDS源同步7:1串行器/解串行器。假設傳送器600TX的纜線資料寬度(例如接線數)為40位元,該LVDS源同步7:1串行器/解串行器接收的資料pxdata的資料寬度則為70 * 7=280位元。在本實施例中,資料pxdata可預留5位元作為辨識碼tdm_id,其中當tdm_id[4:0]為0時,該筆資料pxdata會被視為無效(invalid)資料,因此,傳送資料DATATX的最大資料寬度為(280-5)*(2^5-1)=8525位元。假設DATATX={w_write_pointer,aw_write_poniter,ar_write_pointer,w_payload,aw_payload,ar_payload,b_read_pointer,r_read_pointer}且DATATX的資料寬度為5000位元,則依據5000/(280-5)的計算結果可知LVDS串行器/解串行器630可利用19次的傳送來完成傳送資料DATATX的傳輸,其中DATATX是由最低位元開始傳送(例如從r_read_pointer開始傳送),且r_read_pointer、b_read_pointer、ar_payload、aw_payload、w_payload、ar_write_pointer、aw_write_poniter及w_write_pointer可分別代表上述R讀取指標、B讀取指標、AR負載、AW負載、W負載、AR寫入指標、AW寫入指標以及W寫入指標的資料值。具體來說,主端時鐘MASTERCLK與像素時鐘pxclk為非同步,其中第一暫存裝置610依據主端時鐘MASTERCLK儲存傳送資料DATATX在同一時間之全部的值,而當第一暫存裝置610以取得傳送資料DATATX的全部的值且這些值均已穩定後,第一暫存裝置610可發出訊號READY給LVDS串行器/解串行器630。當LVDS串行器/解串行器630收到訊號READY,LVDS串行器/解串行器630即可開始依據像素時鐘pxclk以分時多工的方式依序將各組局部資料DATATX[m:n]連同辨識碼tdm_id[4:0]自傳送器600TX傳送至接收器600RX(例如以分時多工的方式將{tdm_id[4:0],DATATX[m:n]}自傳送器600TX傳送至接收器600RX),其中m、n為正整數且m-n=275-1,表示每一組局部資料DATATX[m:n]的資料寬度可為275。例如,在像素時鐘pxclk的第一個週期,pxdata={5’d1,DATATX[274:0]};在像素時鐘pxclk的第二個週期,pxdata=
{5’d2,DATATX[549:275]};依此類推,在像素時鐘pxclk的第十九個週期,pxdata={5’d19,225d’0,DATATX[4999:4950]};其中若已沒有資料值需要再傳送(例如傳送資料DATATX已全部傳送完成),pxdata=280’d0。因此,第二暫存裝置620可依據像素時鐘pxclk依序鎖存在像素時鐘pxclk接收到的資料pxdata。以上所示x’dy是將十進位數值y以x位元的二進制數值來表示,以求簡明。
依據上述例子,AXI僕端(例如第二暫存裝置620或第二場域可編程邏輯閘陣列FPGAB)可依據在像素時鐘pxclk的各個週期中之資料pxdata內所載有的辨識碼得知如何依據在像素時鐘pxclk的各個週期中的資料pxdata還原出(例如得知各個週期中的資料pxdata的排列順序)傳送資料DATATX。一旦傳送資料DATATX已全部傳送完成,LVDS串行器/解串行器630可發送訊號CAPTURE給第一暫存裝置610,而第一暫存裝置610在收到訊號CAPTURE後即可再次更新暫存在其內的資料值(例如自第一場域可編程邏輯閘陣列FPGAA取得下一筆需要傳送的資料)。
另外,該至少一讀取指標以及該至少一寫入指標的任一者的整體是包含在該多組局部資料中的同一組局部資料中。例如,上述R讀取指標、B讀取指標、AR寫入指標、AW寫入指標以及W寫入指標的任一者(例如每一者)均會在像素時鐘pxdata的一個週期內完成傳輸,因此任一(例如每一)指標之各自的資料值不會被分割至pxdata的多個週期來傳輸。由於每一指標在AXI僕端均不會被截斷,因此可避免因FIFO狀態更新異常造成的資料傳送錯誤。此外,藉著上述傳輸順序的配置(例如使所述至少一資料負載的傳輸時間點早於所述至少一寫入指標的傳輸時間點的配置),能確保第二暫存裝置(例如其內的非同步FIFO)在AXI通道上正確地進行資料傳遞。
在本實施例中,該多組局部資料的組數的最大值是由該對應的辨識碼的位元數決定。例如,當該對應的辨識碼為N位元,表示傳送資料DATATX至
多可被分成(2^N-1)組局部資料並且依序於像素時鐘pxclk的(2^N-1)個週期傳送該(2^N-1)組局部資料。因此,LVDS串行器/解串行器630的分時多工比例(TDM ratio)亦對應於上述辨識碼的位元數。
在某些實施例中,除了上述辨識碼以外,資料pxdata可預留一或多個位元給一對應的校驗碼,因此該多組局部資料的每一組局部資料可連同一對應的校驗碼自該第一暫存裝置被傳送至該第二暫存裝置(例如在像素時鐘pxclk的每個週期傳送的pxdata可包含一或多個位元以用於載有(carry)該對應的校驗碼),以及該對應的校驗碼可用於所述每一組局部資料的錯誤偵測(error detection)、錯誤更正(error correction)或資料重送(retry)之運作。
在某些實施例中,像素資料pxdata的傳輸路徑上(例如傳送器600TX與600RX之間的路徑)的任意位置均可插入管道暫存器(pipe register)以確保整體系統的時序而不會影響整體功能。此外,本發明以AXI匯流排協定為例僅為了說明之目的,並非對本發明的限制。例如,上述跨FPGA的資料傳輸機制均適用於開放式核心協定(open core protocol,OCP)或高級微控制器匯流排架構(Advanced Microcontroller Bus Architecture,AMBA)等點對點傳輸協定。
第8圖為依據本發明一實施例之一種用於跨場域可編程邏輯閘陣列之資料傳輸控制的方法的工作流程,其中該工作流程可應用於第6圖所示之設備60及其內的連接裝置600。需注意的是,只要不妨礙整體結果,一或多個步驟可在第8圖所示之流程中被新增、修改或刪除,且這些步驟並非必須完全依照第8圖所示之順序執行。
在步驟S810中,設備60可利用第一暫存裝置610依據一第一時鐘(例如主端時鐘MASTERCLK)鎖存來自第一場域可編程邏輯閘陣列FPGAA的一組資料(例如傳送資料DATATX),其中該組資料根據負載及指標屬性被排序且被分成多組局部資料(例如上述DATATX[274:0]、DATATX[549:275]、...、及
DATATX[4999:4950])。
在步驟S820中,設備60可利用一分時多工介面(例如LVDS串行器/解串行器630)依據一分時多工時鐘(例如像素時鐘pxclk)將該多組局部資料分別在多個時間點(例如在像素時鐘pxdata的多個週期)自第一暫存裝置610傳送至第二暫存裝置620。
在步驟S830中,設備60可利用第二暫存裝置620依序接收該多組局部資料以將該組資料輸出至第二場域可編程邏輯閘陣列FPGAB,其中第二場域可編程邏輯閘陣列FPGAB依據異於該第一時鐘的一第二時鐘運作。
總結來說,本發明的實施例所提供的方法以及相關設備能藉助於具備高速傳輸特性的源同步串行器/解串行器介面,以利用匯流排流程控制以及主-僕機制將不同時鐘域(clock domain)的場域可編程邏輯閘陣列完全隔離。如此一來,這些場域可編程邏輯閘陣列均可操作在各自的最佳化頻率,而不會受到分時多工的操作頻率及/或分時多工比例的影響。尤其,透過辨識碼位元數的控制,這些場域可編程邏輯閘陣列的輸入輸出的共用可具備更大的彈性以因應資料寬度的增加。此外,只要在源同步串行器/解串行器介面的主端與僕端之間的機制能配對,上述跨場域可編程邏輯閘陣列的傳輸控制機制亦可應用於晶片對晶片或是晶片對場域可編程邏輯閘陣列的資料傳輸。相較於相關技術,本發明的實施例不會大幅地增加額外成本。因此,本發明能在沒有副作用或較不會帶來副作用的情況下解決相關技術的問題。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
600:連接裝置
600TX:傳送器
600RX:接收器
610,620:暫存裝置
630:LVDS串行器/解串行器
MASTERCLK:主端時鐘
pxclk:像素時鐘
pxdata:資料
READY,CAPTURE:訊號
Claims (9)
- 一種用於跨場域可編程邏輯閘陣列(Field Programmable Gate Array,FPGA)之資料傳輸控制的方法,包含:利用一第一暫存裝置依據一第一時鐘鎖存來自一第一場域可編程邏輯閘陣列的一組資料,其中該組資料根據負載(payload)及指標(pointer)屬性被排序且被分成多組局部資料;利用一分時多工(Time-Division Multiplexing,TDM)介面依據一分時多工時鐘將該多組局部資料依序在多個時間點自該第一暫存裝置傳送至一第二暫存裝置;以及利用該第二暫存裝置依序接收該多組局部資料以將該組資料輸出至一第二場域可編程邏輯閘陣列,其中該第二場域可編程邏輯閘陣列依據異於該第一時鐘的一第二時鐘運作;其中該第一場域可編程邏輯閘陣列與該第二場域可編程邏輯閘陣列之間的資料傳輸包含多個通道類型,該多個通道類型分別對應於位址讀、位址寫、寫入、讀取以及回應之運作中之至少兩者,該多個通道類型的每一通道類型包含兩個方向的資料的傳輸,以及該組資料包含該多個通道類型中之全部的相同方向的資料。
- 如申請專利範圍第1項所述之方法,其中該組資料以屬性來區分包含至少一讀取指標、至少一負載或至少一寫入指標。
- 如申請專利範圍第2項所述之方法,其中該至少一讀取指標以及該至少一寫入指標的任一者的整體是包含在該多組局部資料中的同一組局部資料中。
- 如申請專利範圍第2項所述之方法,其中該至少一負載自該第一暫存裝置傳送至該第二暫存裝置的時間點早於該至少一寫入指標自該第一暫存裝置傳送至該第二暫存裝置的時間點。
- 如申請專利範圍第4項所述之方法,其中該至少一讀取指標自該第一暫存裝置傳送至該第二暫存裝置的時間點早於該至少一負載自該第一暫存裝置傳送至該第二暫存裝置的時間點。
- 如申請專利範圍第1項所述之方法,其中該多組局部資料的每一組局部資料是連同一對應的辨識碼自該第一暫存裝置被傳送至該第二暫存裝置,以及在該第二暫存裝置接收到該多組局部資料的全部後,該第二暫存裝置依據該對應的辨識碼還原該組資料。
- 如申請專利範圍第6項所述之方法,其中該多組局部資料的組數的最大值是由該對應的辨識碼的位元數決定。
- 如申請專利範圍第1項所述之方法,其中該多組局部資料的每一組局部資料是連同一對應的校驗碼自該第一暫存裝置被傳送至該第二暫存裝置,以及該對應的校驗碼是用於所述每一組局部資料的錯誤偵測、錯誤更正或資料重送之運作。
- 一種用於一電子系統之仿真(emulation)的設備,包含:一第一場域可編程邏輯閘陣列(Field Programmable Gate Array,FPGA),用 於該電子系統的一第一子系統的仿真,其中該第一場域可編程邏輯閘陣列依據一第一時鐘運作;一第二場域可編程邏輯閘陣列,用於該電子系統的一第二子系統的仿真,其中該第二場域可編程邏輯閘陣列依據異於該第一時鐘的一第二時鐘運作;一第一暫存裝置,耦接至該第一場域可編程邏輯閘陣列;一第二暫存裝置,耦接至該第二場域可編程邏輯閘陣列;一分時多工(Time-Division Multiplexing,TDM)介面,耦接於該第一暫存裝置與該第二暫存裝置之間;其中該第一暫存裝置依據該第一時鐘鎖存來自該第一場域可編程邏輯閘陣列的一組資料;該組資料根據負載(payload)及指標(pointer)屬性被排序且被分成多組局部資料,以容許該分時多工介面依據一分時多工時鐘將該多組局部資料依序在多個時間點將該多組局部資料自該第一暫存裝置傳送至一第二暫存裝置;以及該第二暫存裝置依序接收該多組局部資料以將該組資料輸出至該第二場域可編程邏輯閘陣列;其中該第一場域可編程邏輯閘陣列與該第二場域可編程邏輯閘陣列之間的資料傳輸包含多個通道類型,該多個通道類型分別對應於位址讀、位址寫、寫入、讀取以及回應之運作中之至少兩者,該多個通道類型的每一通道類型包含兩個方向的資料的傳輸,以及該組資料包含該多個通道類型中之全部的相同方向的資料。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW110111366A TWI774295B (zh) | 2021-03-29 | 2021-03-29 | 用於跨場域可編程邏輯閘陣列之資料傳輸控制的方法及相關設備 |
| US17/528,125 US11714777B2 (en) | 2021-03-29 | 2021-11-16 | Method for performing data transmission control of inter field programmable gate arrays and associated apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW110111366A TWI774295B (zh) | 2021-03-29 | 2021-03-29 | 用於跨場域可編程邏輯閘陣列之資料傳輸控制的方法及相關設備 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI774295B true TWI774295B (zh) | 2022-08-11 |
| TW202238428A TW202238428A (zh) | 2022-10-01 |
Family
ID=83363374
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110111366A TWI774295B (zh) | 2021-03-29 | 2021-03-29 | 用於跨場域可編程邏輯閘陣列之資料傳輸控制的方法及相關設備 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US11714777B2 (zh) |
| TW (1) | TWI774295B (zh) |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050256969A1 (en) * | 2004-05-11 | 2005-11-17 | Yancey Jerry W | Systems and methods for interconnection of multiple FPGA devices |
| TW200634535A (en) * | 2004-12-22 | 2006-10-01 | Toshiba Kk | Data transfer device and data transfer method |
| US20080092001A1 (en) * | 2006-10-03 | 2008-04-17 | Vijay Kumar Kodavalla | Method and device for data communication |
| CN101242395A (zh) * | 2008-02-19 | 2008-08-13 | 深圳华为通信技术有限公司 | 一种数据传输的方法及usb接口 |
| US20160161551A1 (en) * | 2013-07-26 | 2016-06-09 | Mentor Graphics Corporation | Automated method for analyzing a board having a plurality of fpga components |
| TW201933132A (zh) * | 2018-01-24 | 2019-08-16 | 美商高通公司 | 分時多工(tdm)匯流排上的虛擬通用輸入/輸出(gpio)(vgi) |
| US20200336425A1 (en) * | 2017-11-06 | 2020-10-22 | Pensando Systems Inc. | Network system including match processing unit for table-based actions |
| WO2021036404A1 (zh) * | 2019-08-31 | 2021-03-04 | 安徽寒武纪信息科技有限公司 | 数据传输方法及相关设备 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8175095B2 (en) * | 2008-12-19 | 2012-05-08 | L3 Communications Integrated Systems, L.P. | Systems and methods for sending data packets between multiple FPGA devices |
| US8497704B2 (en) * | 2011-07-18 | 2013-07-30 | Lsi Corporation | Methods and structure for source synchronous circuit in a system synchronous platform |
| US9002693B2 (en) * | 2012-01-02 | 2015-04-07 | International Business Machines Corporation | Wire like link for cycle reproducible and cycle accurate hardware accelerator |
| WO2015149329A1 (zh) * | 2014-04-03 | 2015-10-08 | 华为技术有限公司 | 一种现场可编程门阵列及通信方法 |
-
2021
- 2021-03-29 TW TW110111366A patent/TWI774295B/zh active
- 2021-11-16 US US17/528,125 patent/US11714777B2/en active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050256969A1 (en) * | 2004-05-11 | 2005-11-17 | Yancey Jerry W | Systems and methods for interconnection of multiple FPGA devices |
| TW200634535A (en) * | 2004-12-22 | 2006-10-01 | Toshiba Kk | Data transfer device and data transfer method |
| US20080092001A1 (en) * | 2006-10-03 | 2008-04-17 | Vijay Kumar Kodavalla | Method and device for data communication |
| CN101242395A (zh) * | 2008-02-19 | 2008-08-13 | 深圳华为通信技术有限公司 | 一种数据传输的方法及usb接口 |
| US20160161551A1 (en) * | 2013-07-26 | 2016-06-09 | Mentor Graphics Corporation | Automated method for analyzing a board having a plurality of fpga components |
| US20200336425A1 (en) * | 2017-11-06 | 2020-10-22 | Pensando Systems Inc. | Network system including match processing unit for table-based actions |
| TW201933132A (zh) * | 2018-01-24 | 2019-08-16 | 美商高通公司 | 分時多工(tdm)匯流排上的虛擬通用輸入/輸出(gpio)(vgi) |
| WO2021036404A1 (zh) * | 2019-08-31 | 2021-03-04 | 安徽寒武纪信息科技有限公司 | 数据传输方法及相关设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| US11714777B2 (en) | 2023-08-01 |
| TW202238428A (zh) | 2022-10-01 |
| US20220309020A1 (en) | 2022-09-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Nanda et al. | Universal asynchronous receiver and transmitter (uart) | |
| US7082481B2 (en) | Serial peripheral interface (SPI) apparatus with write buffer for improving data throughput | |
| US5784370A (en) | Method and apparatus for regenerating a control signal at an asynchronous transfer mode (ATM) layer or a physical (PHY) layer | |
| US6452927B1 (en) | Method and apparatus for providing a serial interface between an asynchronous transfer mode (ATM) layer and a physical (PHY) layer | |
| CN112395230A (zh) | 一种基于可编程逻辑器件的uart接口扩展电路 | |
| CN118760647B (zh) | 一种功能扩展装置、片上系统、方法以及产品 | |
| CN110515879B (zh) | 一种异步传输装置及其传输方法 | |
| US10938622B2 (en) | Interconnection network for integrated circuit with fault detection circuitry provided locally to an upstream location | |
| CN107947873B (zh) | 具有多个传输通道的数据传输系统及测试传输数据的方法 | |
| JPS62122432A (ja) | 直列データ転送におけるエラーチェック装置 | |
| TWI774295B (zh) | 用於跨場域可編程邏輯閘陣列之資料傳輸控制的方法及相關設備 | |
| CN115589372B (zh) | 一种基于同频异相时钟的非驻留数据跨时钟域方法 | |
| CN113596189B (zh) | 一种并联编址方法、电池包及并联编址系统 | |
| CN115186616B (zh) | 跨现场可编程逻辑门阵列的数据传输控制方法及相关设备 | |
| US20090063736A1 (en) | Low power digital interface | |
| US7958279B2 (en) | Asynchronous serial data apparatus for transferring data between one transmitter and a plurality of shift registers, avoiding skew during transmission | |
| JP7351230B2 (ja) | 同期制御回路および同期制御方法 | |
| CN114003543B (zh) | 一种高速串行总线时钟补偿方法及系统 | |
| CN115022238B (zh) | 星上多路以太网与srio接口的路由处理系统 | |
| US11914491B2 (en) | USB integrated circuit, testing platform and operating method for USB integrated circuit | |
| TWI805731B (zh) | 多線道資料處理電路及系統 | |
| KR20010020189A (ko) | 슬레이브 그룹 인터페이스 장치를 경유하여 버스와 주변 장치를 인터페이스하는 방법 및 시스템 | |
| Samman et al. | High performance asynchronous bit-level parallel interface for board-to-board inter processor communication | |
| CN121051056A (zh) | 传输结构、芯片、处理芯片及电子设备 | |
| CN117675954A (zh) | 一种将数据包协议转换为高速并行通讯协议的转换桥 |