一種實現(xiàn)數(shù)據(jù)高速分發(fā)的裝置制造方法
【專利摘要】本發(fā)明提供一種實現(xiàn)數(shù)據(jù)高速分發(fā)的裝置,應(yīng)用在FPGA芯片內(nèi)部,該裝置包括,上游業(yè)務(wù)模塊,第一寄存器、下游業(yè)務(wù)模塊以及數(shù)據(jù)緩沖模塊,該裝置執(zhí)行如下流程:上游業(yè)務(wù)模塊將數(shù)據(jù)發(fā)送到第一寄存器中,數(shù)據(jù)緩沖模塊暫存并轉(zhuǎn)發(fā)所述數(shù)據(jù)以供下游業(yè)務(wù)模塊讀取。通過本發(fā)明的技術(shù)方案,有效解決了現(xiàn)有技術(shù)中系統(tǒng)布局布線壓力大,芯片資源利用率低的問題。
【專利說明】一種實現(xiàn)數(shù)據(jù)高速分發(fā)的裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種可編程的邏輯器件,尤其涉及一種實現(xiàn)數(shù)據(jù)高速分發(fā)的裝置。
【背景技術(shù)】
[0002] 隨著半導(dǎo)體工藝技術(shù)的發(fā)展,越來越多的運算和存儲模塊被集成在同一個芯片 內(nèi),使得FPGA芯片(Field Programmable Gate Array,現(xiàn)場可編程門陣列)的應(yīng)用也越來 越廣。FPGA是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物,經(jīng)過幾十年的 發(fā)展,其功能日漸強(qiáng)大。
[0003] 在FPGA的設(shè)計中,通常采用星形拓?fù)浣Y(jié)構(gòu)來實現(xiàn)數(shù)據(jù)的高速分發(fā)。現(xiàn)有技術(shù)中是 利用FIFO模塊(First Input First Output,先入先出)來實現(xiàn)的。其實現(xiàn)方法主要有兩 種:一是利用FPGA芯片的RAM (Random Access Memory,隨機(jī)存儲器)資源來實現(xiàn),RAM資 源是芯片內(nèi)部讀寫速度最快的資源,極其珍貴,大批量的消耗勢必會影響整個芯片的處理 速率。另一種方法是利用寄存器來實現(xiàn),這種方法雖然節(jié)省了分布RAM資源,但是增加了另 一個珍貴資源LUT (Look-Up Table,查找表)的消耗,并且要求所使用的寄存器在地域上集 中在一起,這樣不利于整個系統(tǒng)的布局布線。現(xiàn)有技術(shù)中的兩種方法都有共同的缺陷,當(dāng)數(shù) 據(jù)位寬增加時,消耗的各種資源都是成比例增加的;硬件實現(xiàn)上也都要求地域固定,也就是 說,總線設(shè)計時會消耗比較多的長線資源,這就會對系統(tǒng)的布局布線造成很大的壓力。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本發(fā)明提供一種實現(xiàn)數(shù)據(jù)高速分發(fā)的裝置,以解決上述現(xiàn)有技術(shù)的不 足。
[0005] 具體地,所述裝置應(yīng)用在FPGA芯片內(nèi)部,該裝置包括:上游業(yè)務(wù)模塊,第一寄存 器、下游業(yè)務(wù)模塊以及數(shù)據(jù)緩沖模塊,其中,上游業(yè)務(wù)模塊通過第一寄存器連接數(shù)據(jù)緩沖模 塊的一端,下游業(yè)務(wù)模塊連接數(shù)據(jù)緩沖模塊的另一端,
[0006] 所述數(shù)據(jù)緩沖模塊包括第二寄存器、第三寄存器、輸入控制單元和輸出控制單元, 其中
[0007] 輸入控制單元用于定期判斷第二寄存器是否可用,如果是,則將第一寄存器中的 上游業(yè)務(wù)模塊發(fā)送的數(shù)據(jù)傳送到第二寄存器中,
[0008] 輸出控制單元用于判斷第三寄存器是否為空,如果第三寄存器為空,則輸出無效 信號,如果第三寄存器非空,則輸出有效信號,
[0009] 其中所述無效信號表示下游業(yè)務(wù)模塊不能從第三寄存器中讀取數(shù)據(jù),所述有效信 號表示下游業(yè)務(wù)模塊可以從第三寄存器中讀取數(shù)據(jù),
[0010] 輸出控制單元進(jìn)一步用于在第三寄存器為空的時候?qū)⒌诙拇嫫髦械乃鰯?shù)據(jù) 傳送到第三寄存器中。
[0011] 由以上技術(shù)方案可見,本發(fā)明通過設(shè)置數(shù)據(jù)緩沖模塊,方便整個系統(tǒng)的布局布線, 提高了芯片的資源利用率。
【專利附圖】
【附圖說明】
[0012] 圖1是本發(fā)明一種實施方式的邏輯結(jié)構(gòu)圖;
[0013] 圖2是本發(fā)明一種實施方式的數(shù)據(jù)緩沖模塊邏輯結(jié)構(gòu)圖;
[0014] 圖3是現(xiàn)有設(shè)計思路數(shù)據(jù)緩沖模塊的時序仿真圖;
[0015] 圖4是本發(fā)明一種實施方式數(shù)據(jù)緩沖模塊的時序仿真圖;
[0016] 圖5是本發(fā)明一種實施方式數(shù)據(jù)緩沖模塊的物理架構(gòu)圖。
【具體實施方式】
[0017] 針對現(xiàn)有技術(shù)中FPGA設(shè)計利用FIFO模塊實現(xiàn)星形拓?fù)浞职l(fā)數(shù)據(jù)所存在的消耗資 源多且布局布線壓力大等問題,本發(fā)明提供了一種實現(xiàn)數(shù)據(jù)高速分發(fā)的裝置,應(yīng)用在FPGA 芯片內(nèi)部。
[0018] 請參考圖1和圖2,該裝置包括上游業(yè)務(wù)模塊,第一寄存器、下游業(yè)務(wù)模塊以及數(shù) 據(jù)緩沖模塊。上游業(yè)務(wù)模塊通過第一寄存器連接數(shù)據(jù)緩沖模塊的一端,下游業(yè)務(wù)模塊連接 數(shù)據(jù)緩沖模塊的另一端。具體地,所述數(shù)據(jù)緩沖模塊包括第二寄存器、第三寄存器、輸入控 制單元以及輸出控制單元。在傳送數(shù)據(jù)時,該裝置執(zhí)行如下處理流程:
[0019] 步驟101,上游業(yè)務(wù)模塊將數(shù)據(jù)傳送到第一寄存器中暫存。
[0020] 步驟102,數(shù)據(jù)緩沖模塊中的輸入控制單元定期判斷第二寄存器是否可用,如果 是,將第一寄存器中的上游業(yè)務(wù)模塊發(fā)送的數(shù)據(jù)傳送到第二寄存器中。
[0021] 步驟103,輸出控制單元判斷第三寄存器是否為空,如果是,則將第二寄存器中的 所述數(shù)據(jù)傳送到第三寄存器中暫存。
[0022] 步驟104,輸出控制單元進(jìn)一步判斷第三寄存器是否為空,如果第三寄存器為空, 則輸出無效信號,如果第三寄存器非空,則輸出有效信號。其中所述無效信號表示下游業(yè)務(wù) 模塊不能從第三寄存器中讀取數(shù)據(jù),有效信號表示下游業(yè)務(wù)模塊可以從第三寄存器中讀取 數(shù)據(jù)。
[0023] 步驟105,下游業(yè)務(wù)模塊在輸出控制單元輸出有效信號的時候讀取第三寄存器中 的所述數(shù)據(jù)。
[0024] 上述步驟中,上游業(yè)務(wù)模塊將需要下游業(yè)務(wù)模塊處理的數(shù)據(jù)傳送給數(shù)據(jù)緩沖模 塊,具體地,上游業(yè)務(wù)模塊先將所述數(shù)據(jù)發(fā)送到第一寄存器中暫存,與此同時數(shù)據(jù)緩沖模塊 中的輸入控制單元就會判斷第二寄存器是否可用。在FPGA芯片的時序邏輯設(shè)計中,每個信 號的處理都與時鐘息息相關(guān),通常取時鐘的邊沿去觸發(fā)預(yù)定的程序,所以在實現(xiàn)中所述輸 入控制單元是依據(jù)時鐘周期定期判斷第二寄存器中的數(shù)據(jù)是否有效,如果第二寄存器中的 數(shù)據(jù)無效,則意味著第二寄存器可用,其可以存儲數(shù)據(jù),此時就會將第一寄存器中的數(shù)據(jù)傳 送到第二寄存器中暫存。輸出控制單元用于判斷第三寄存器是否為空,具體地,如果第三寄 存器為空,則意味著第三寄存器有存儲空間,此時就會將第二寄存器中的數(shù)據(jù)傳送到第三 寄存器中暫存,于此同時,輸出控制單元在判斷第三寄存器非空的時候輸出有效信號,以此 信號通知下游業(yè)務(wù)模塊可以讀取所述數(shù)據(jù),而輸出控制單元在判斷第三寄存器為空的時候 輸出無效信號,以此信號告知下游業(yè)務(wù)模塊此時沒有可供其讀取的數(shù)據(jù)。在一種優(yōu)選的實 施方式中,有效信號可以用高電平表示,無效信號可以用低電平表示。這是因為在硬件實 施中,不論第三寄存器是否為空都會有信號輸出,如果不設(shè)置信號有效類別,則下游業(yè)務(wù)模 塊在其可用的時候就會去讀取,所以本發(fā)明通過設(shè)置輸出信號類別來告知下游業(yè)務(wù)模塊區(qū) 分。數(shù)據(jù)緩沖模塊通過所述第三寄存器與下游業(yè)務(wù)模塊通信,下游業(yè)務(wù)模塊可以在其可用 的時候從第三寄存器讀取數(shù)據(jù)。
[0025] 以上描述可以看出,數(shù)據(jù)緩沖模塊對數(shù)據(jù)的分發(fā)處理分為兩部分處理,一個是數(shù) 據(jù)信息的傳送,一個是對數(shù)據(jù)信息傳送的邏輯控制。具體地,數(shù)據(jù)信息在傳送過程中采用第 二寄存器和第三寄存器寄存,是兩級寄存,并且兩級寄存之間是直接寄存,沒有引入運算單 元,效率高且節(jié)約寶貴的FPGA內(nèi)部資源。所述對數(shù)據(jù)信息傳送的邏輯控制是根據(jù)輸入控制 單元和輸出控制單元對寄存器是否可用的判斷來實現(xiàn),具體地,是判斷下級寄存器是否能 夠接收數(shù)據(jù)。這樣的話,只有所述邏輯控制才消耗LUT資源,數(shù)據(jù)信息的傳送只是消耗了寄 存器資源,而且數(shù)據(jù)信息采用兩級寄存,從而避免了對長線資源的消耗。
[0026] 請參考表1,在各種位寬下數(shù)據(jù)緩沖模塊和FIFO模塊消耗的資源的對比表。我們 可以看出,在存儲轉(zhuǎn)發(fā)的數(shù)據(jù)位寬相同的條件下,數(shù)據(jù)緩沖模塊消耗的只有大量的較為廉 價的寄存器資源,而LUT資源的消耗比FIFO模塊少得多。另一方面,當(dāng)數(shù)據(jù)位寬增加的時 候,數(shù)據(jù)緩沖模塊需要擴(kuò)展數(shù)據(jù)傳輸?shù)耐ǖ?,此時,只需要擴(kuò)展數(shù)據(jù)信息使用的寄存器,不 需要增加珍貴資源LUT的消耗,而FIFO模塊的寄存器資源和LUT資源的消耗都有增加。
[0027]
【權(quán)利要求】
1. 一種實現(xiàn)數(shù)據(jù)高速分發(fā)的裝置,應(yīng)用在FPGA芯片內(nèi)部,該裝置包括:上游業(yè)務(wù)模塊, 第一寄存器、下游業(yè)務(wù)模塊以及數(shù)據(jù)緩沖模塊,其特征在于: 上游業(yè)務(wù)模塊通過第一寄存器連接數(shù)據(jù)緩沖模塊的一端,下游業(yè)務(wù)模塊連接數(shù)據(jù)緩沖 模塊的另一端, 所述數(shù)據(jù)緩沖模塊包括第二寄存器、第三寄存器、輸入控制單元和輸出控制單元,其中 輸入控制單元用于定期判斷第二寄存器是否可用,如果是,則將第一寄存器中的上游 業(yè)務(wù)模塊發(fā)送的數(shù)據(jù)傳送到第二寄存器中, 輸出控制單元用于判斷第三寄存器是否為空,如果第三寄存器為空,則輸出無效信號, 并將第二寄存器中的數(shù)據(jù)傳送到第三寄存器中,如果第三寄存器非空,則輸出有效信號, 其中所述無效信號表示下游業(yè)務(wù)模塊不能從第三寄存器中讀取數(shù)據(jù),所述有效信號表 示下游業(yè)務(wù)模塊可以從第三寄存器中讀取數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的裝置,其特征在于,數(shù)據(jù)緩沖模塊進(jìn)一步包括連續(xù)判斷單元, 用于判斷下游業(yè)務(wù)模塊是否能夠連續(xù)讀取數(shù)據(jù),如果是,則觸發(fā)輸入控制單元將第一寄存 器中的數(shù)據(jù)傳送到第二寄存器中。
3. 根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述下游業(yè)務(wù)模塊有多個,所述數(shù)據(jù)緩沖 模塊中包括數(shù)量與下游業(yè)務(wù)模塊對應(yīng)的輸出控制單元。
【文檔編號】G06F9/30GK104102473SQ201310129304
【公開日】2014年10月15日 申請日期:2013年4月12日 優(yōu)先權(quán)日:2013年4月12日
【發(fā)明者】熊澤磊 申請人:杭州迪普科技有限公司