專利名稱:集成電路下層硬件映射方法、時空圖生成方法及裝置的制作方法
技術領域:
本發明涉及集成電路設計領域,尤其是一種集成電路下層硬件映射方法、時空圖 生成方法及裝置。
背景技術:
在集成電路領域,通常集成電路的設計速度滯后于集成電路制造工藝的發展速 度。尤其是集成電路的制造工藝進入納米級以后,集成電路的設計速度已遠遠落后于集成 電路制造工藝的發展速度。因此,對于集成電路設計領域來說,提高設計速度是當前最為迫 切的問題之一。如圖1所示,現有技術中,集成電路的設計通常包括兩部分第一部分是從 基于C語言或MATLAB語言的算法描述到RTL級的描述;第二部分是從RTL級描述到標準單 元ASIC結構或門陣列現(或其它S-ASIC結構)或FPGA結構的實現過程。其中第二部分 的實現目前已有比較成熟的工具支持,其實現過程基本滿足高效、快捷等要求。因此,提高 設計速度的關鍵點落在了第一部分的實現上,也就是從C語言或MATLAB語言等的算法描述 到RTL級的描述上,可以將這稱之為集成電路下層硬件的映射方法或者高層次綜合或者結 構級綜合。但由于第一部分的實現主要是由技術人員根據自身對C語言或MATLAB語言的理 解,人為地將其轉換為RTL級的描述。也就是說,第一部分的實現受到技術人員自身的經驗 和知識水平的影響,對于不同的技術人員來說,實現的時間存在較大的差異。對于第一部分 的實現方式,國外的一些公司已經展開了相應的研究并推了一些實現工具,比如Mentor的 Catapult C、AutoESL 的 AutoPilot、Fore Design System 的 Cynthesizer、UC San Diego 的SPARK等。
發明內容
本發明要解決的主要技術問題是,提供一種集成電路下層硬件映射方法和裝置, 能夠提高集成電路的設計速度。本發明還提供了一種時空圖生成方法及裝置,使得根據本方法得到的電路在面積 方面加強了版圖的規整性;在功耗方面,實現了低功耗設計的優化設計。為解決上述技術問題,本發明采用的技術方案如下—種集成電路下層硬件映射方法,包括步驟程序分析步驟,用于讀取描述集成電路算法的計算機語言程序,并從中識別出被 映射的執行對象和參數對象;數據控制流圖生成步驟,用于將識別出的執行對象和參數對象映射成描述集成電 路算法的數據控制流圖中的相應節點;算子時空圖生成步驟,用于根據數據控制流圖中的各節點所進行的功能處理從預 先建立的算子單元庫中獲取對應功能的至少一個算子單元,將數據控制流圖轉換成由算子 單元組成的算子時空時序約束步驟,用于根據用戶規格要求和目標集成電路工藝的要求確定出總時 序約束,對算子時空圖中的每個算子單元標注時間,對算子時空圖的每個層級進行時序約 束;時空圖壓縮步驟,用于根據時間標注對算子時空圖進行空間上的聚類壓縮,使得 總體算法執行時間最接近于總時序約束;下層硬件映射步驟,用于根據聚類壓縮后的算子時空圖生成集成電路下層硬件邏 輯描述。基于上述的方法,本發明還提供一種集成電路下層硬件映射裝置,包括程序分析模塊,用于讀取描述集成電路算法的計算機語言,并從中識別出被映射 的執行對象和參數對象;數據控制流圖生成模塊,用于將識別出的執行對象和參數對象映射成描述集成電 路算法的數據控制流圖中的相應節點;算子時空圖生成模塊,用于根據數據控制流圖中的各節點所進行的功能處理從預 先建立的算子單元庫中取出對應功能的至少一個算子單元,將數據控制流圖轉換成由算子 單元組成的算子時空圖;時序約束模塊,用于根據用戶規格需求和目標集成電路工藝的要求確定出總時 序約束,對算子時空圖中的每個算子單元標注時間,對算子時空圖的每個層級進行時序約 束;時空圖壓縮模塊,用于根據時間標注對時空圖進行空間上的聚類壓縮,并使之總 體算法執行時間最接近于總時序約束;下層硬件映射模塊,根據聚類壓縮后的時空圖生成集成電路下層硬件邏輯描述。本發明還提供一種時空圖生成方法,包括步驟將數據控制流圖根據其數據相關性展開;根據展開后的各節點所進行的功能處理從預先建立的算子單元庫中取出對應功 能的至少一個算子單元,將數據控制流圖轉換成由算子單元組成的算子時空圖。進一步地,所述數據控制流圖中的數據流為順序相關數據流結構,則將所述順序 相關數據流采用流水線的方式展開,并轉換成由算子單元組成的算子時空圖。進一步地,所述數據控制流圖中的數據流中存在反饋,且所述數據流內部數據之 間不存在數據相關性,則將所述內部數據不存在數據相關性的各數據流采用局部流水線的 方式展開,并轉換成由算子單元組成的算子時空圖。進一步地,所述數據控制流圖中的數據流之間不存在數據相關性,則將所述數據 流采用并行方式展開,并轉換成由算子單元組成的算子時空圖。時空圖生成裝置,其特征在于包括算子單元庫,用于存儲能夠實現運算功能的算子單元;展開單元,用于將數據控制流圖根據其數據相關性展開;算子時空圖生成模塊,用于根據展開后的各節點所進行的功能處理從算子單元庫 中取出對應功能的至少一個算子單元,將數據控制流圖中的各功能模塊轉換成由算子單元 組成的算子時空圖。進一步地,還包括用于判斷數據流相關性類型的判斷單元,所述展開單元根據數據流相關性類型進行相應的展開工作。進一步地,當所述判斷單元判斷所述數據控制流圖中的數據流為順序相關數據流 結構時,所述展開單元將所述順序相關數據流采用流水線的方式展開;當所述判斷單元判 斷所述數據控制流圖中的數據流中存在反饋時,則所述展開單元判斷存在反饋的數據流內 部的數據之間是否存在數據相關性,如果所述數據流內部的數據之間不存在數據相關性, 則所述展開單元將所述內部數據不存在數據相關性的各數據流采用局部流水線的方式展 開;當所述判斷單元判斷數據控制流圖中的數據流之間不存在數據相關性時,則所述展開 單元將所述數據流采用并行方式展開。進一步地,所述算子時空圖生成模塊先將函數的數據控制流圖轉換為算子時空 圖,然后將所述函數調用的子函數的數據控制流圖轉換為算子時空圖。本發明的有益效果是通過對原C程序或MATLAB程序的分析,識別出映射的執行 對象和參數對象;并將識別出的執行對象和參數對象重新映射成為數據控制流圖,該數據 控制流圖可以表示集成電路的算法;然后根據數據相關性將數據控制流圖展開,并將展開 后的節點用算子來替代,生成算子時空圖;生成的算子時空圖經過聚類壓縮,使壓縮后的時 空圖的總體執行時間最接近于總時序約束;將壓縮后的時空圖生成集成電路的下層硬件電 路。從而創造了一種從計算機語言到集成電路下層硬件電路的映射工具,標準化地實現了 集成電路從C或MATLAB等語言生成下層硬件的過程,實現起來方便快捷。本發明還通過生成基于算子的時空圖,由于算子可以構成算子功能塊,進而構成 算子功能群落,使得根據本方法得到的電路在面積方面,可以加強版圖的規整性;在功耗方 面,控制算子可以配置算子的運算模式和時鐘頻率,進行優化的低功耗設計。
圖1為現有技術中的集成電路設計方法流程圖;圖2為ADDS算子結構示意圖;圖3為ADDS算子功能圖;圖4為存儲類算子的通用結構示意圖;圖5為路徑類算子的通用結構示意圖;圖6為控制類算子的通用結構示意圖;圖7為本發明的下層硬件映射流程圖;圖8為本發明數據控制流圖生成方法的一種實施例中對函數X264_me_SearCh和 piXel_Sad_16X16進行分析的流程圖;圖9為根據圖8中分析步驟得到的結果生成數據控制流圖的流程圖;圖10為本發明的一種實施例中的單層動態循環語句的映射結構圖;圖11為本發明的一種實施例中的多層動態循環語句的一種映射結構圖;圖12為本發明的方法的一種實施例中的多層動態循環語句的另一映射結構圖;圖13為本發明的一種實施例中的分支控制語句映射的結構圖;圖14為本發明的一種實施例中的嵌套分支控制語句映射的結構圖;圖15為本實施例的函數X264_me_SearCh的數據控制流圖;圖16為本實施例的函數piXel_Sad_16X16的數據控制流圖17為本發明的順序相關數據流展開的一種實施例的結構圖;圖18為本發明的存在反饋數據流,由算子展開為局部流水線結構示意圖;圖19為本發明的并行數據流展開的一種實施例的結構圖;圖20為本實施例的函數x264_me_search的LO和Ll邏輯生成的算子時空圖;圖21a和圖21b分別函數x264_me_Search的邏輯L3的第一部分和第二部分生成 的算子時空圖;圖22為本實施例的函數X264_me_SearCh的邏輯L5生成的算子時空圖;圖23a和圖23b分別為本實施例的函數x264_me_search和函pixel_sad_16X 16 的算子時空圖;圖M為本發明的時空圖生成裝置的一種實施例的結構框圖;圖25為圖M的時空圖生成模塊的一種實施例的結構框圖;圖^a和圖^b分別為本實施例的函數X264_me_search和函數pixel_ sad_16X16的時序約束示意圖;圖27為本實施例的函數pixel_sad_16X16聚類壓縮后的時空圖;圖28所示為固化定制的一種實施方式原理圖;圖四為X264_me_search聚類壓縮后的比較圖。
具體實施例方式下面通過具體實施方式
結合附圖對本發明作進一步詳細說明。回顧集成電路設計方法學的發展歷程,可以看到當集成電路制造工藝進入Ium 的時代,出現了以門陳列為基本單元的設計方法;當集成電路制造工藝進入0. 5um的時代, 出現了以標準單元為基本單元的設計方法;當集成電路制造工藝進入0. ISum的時代,出現 了以IP核為基本單元的設計方法。由此可以看出一方面集成電路的設計方法學隨著集成 電路制造工藝的發展而發展,另一方面集成電路設計方法學中使用的基本單元(門、標準 單元、IP核)的單元粒度不斷增大。同時,每次新的基本單元的出現,都標志著集成電路設 計方法革命性的進步。因此,可以合理預見的是,隨著近十年來集成電路制造工藝的飛速進 步,尤其是集成電路制造工藝進入納米級后,更大粒度的基本單元將出現并開啟集成電路 設計的新局面,以適應集成電路制造工藝的飛速發展。算子作為集成電路組成部件中的基本單元,其粒度大于標準單元的粒度,因此本 發明采用基于算子的集成電路設計方法,使得加速了集成電路的設計速度,以適應集成電 路制造工藝的進步。本發明中,常用的算子有五類,分別是運算類算子、存儲類算子、路徑類算子、控制 類算子和時鐘類算子。1、運算類算子。運算算子(AU)是用于實現邏輯運算或算術運算或邏輯與算術混合運算的基本單 元。它包括算術邏輯運算單元和運算配置寄存器,運算配置寄存器用于接收和存儲運算配 置指令,不同的運算配置指令對應不同的算術邏輯操作,也就是說,通過運算配置指令可以 使同一個運算算子實現多種不同的功能。下面,以ADDS算子為例對運算算子進行說明。圖2為ADDS算子的結構示意圖,它包括用于實現加減操作的ADD單元和用于實現移位操作的《/》單元,通過設置控制位X的參數值,可以使ADDS算子實現多種不同的功能, 比如,圖3的表格示出了一種實施方式中不同控制位X值與不同操作的對應關系。像ADDS 這種可以通過控制位X實現多種不同功能的算子稱為可重構算子,可重構算子由于豐富的 應用功能可以用在不同的場景中,減少了算子單元庫中儲存的算子數。并且可重構算子在 其執行過程中還可以通過改變控制位的方式實現動態的重構。2、存儲類算子。如圖4所示為存儲類算子(MU)的基本結構示意圖(圖中CU表示控制算子)。存 儲算子包括存儲配置寄存器(MU configuration register)和存儲單元,存儲單元包括地 址產生單元、數據存儲器、數據產生單元和數據輸出控制單元。存儲配置寄存器可以通過數 據輸出控制單元配置存儲算子(MU)的存儲體(各種存儲介質寄存器、RAM等MEM)的寫入 和/或讀出方式,還可以配置存儲器對應的地址產生單元的工作方式。根據地址產生單元 生成的地址直接將輸入數據存儲到預定位置,并將需要的數據從存放位置輸出。3、路徑類算子。如圖5所示,為路徑類算子(LU)的通用結構示意圖。路徑類算子LU包括路由配 置寄存器(LU configuration register)和組成路由選擇單元的交換開關和數據寄存器 (REG),其中,路由配置寄存器受到控制算子CU的控制,在控制算子CU的控制作用下控制交 換開關按照期望的方式實現不同運算算子AU之間的連接。數據寄存器用于暫存運算類算 子LU和存儲類算子MU的輸入輸出數據。4、控制類算子。如圖6所示,為控制類算子(CU)的通用結構示意圖。控制類算子的作用主要是將 配置信息傳送到相應的配置寄存器,配置運算算子AU、存儲算子MU和路徑算子LU實現預定 的功能。控制算子CU的形式包括計數器、狀態機和微指令三種。其中微指令結構包含譯碼 器、程序計數器、指令存儲器和流水線控制模塊等。控制算子CU通過執行簡單的配置指令 向各功能單元發送配置信息,由于⑶支持的指令很少,因此指令寄存器容量小,譯碼器非 常簡單。5、時鐘類算子。時鐘算子用于運算類算子、存儲類算子、路徑類算子和控制類算子的時鐘控制信 號,時鐘信號包括控制時鐘起停和控制時鐘頻率的信號,時鐘信號可以按照期望的方式配置。以上五類算子是實現以下實施方式的基礎,可以理解的是,上述對根據功能將用 于集成電路設計中的算子分為五大類并非唯一的劃分方式,還可以根據實際情況有針對性 進行更寬范圍或更細范圍的劃分。在本發明的一種實施例中,提供了一種從計算機語言到集成電路下層硬件電路的 映射系統,如圖7a所示為該系統的集成電路下層硬件映射方法,包括以下步驟步驟Si,對程序進行分析,即讀取描述集成電路算法的計算機語言程序,根據該計 算機語言的規則從所述計算機語言程序中識別出被映射的執行對象和參數對象。專用集成 電路,用于實現特定的協議或者功能,而這些功能和協議通常首先用計算機語言程序進行 描述,其中的計算機語言通常采用C語言或MATLAB語言等。再將編寫的計算機語言程序輸 入到本發明的映射系統中,該映射系統根據編寫程序所用計算機語言的規則從所述計算機語言程序中識別出被映射的執行對象和參數對象。本實施方式中該執行對象包括運算指令和/或控制指令,該參數對象包括輸入數 據、輸出數據、中間數據中的至少一種。本實施例中的運算指令包括加、減、乘和移位等運笪弁。步驟S2,生成數據控制流圖,將識別出的執行對象和參數對象映射成描述集成電 路算法的數據控制流圖中的相應節點。將所述運算指令映射為處理框圖,將所述控制指令 映射為用于標識狀態、狀態轉移條件及狀態控制信號的控制流,將所述輸入數據、輸出數據 和中間數據映射為數據流上的存儲節點。步驟S3,算子時空圖生成步驟,用于根據數據控制流圖中的各節點所進行的處理 功能從預先建立的算子單元庫中取出對應功能的至少一個算子單元,將數據控制流圖轉換 成由算子單元組成的算子時空圖。先將數據控制流圖根據其數據流相關性展開,然后將展 開后的各節點轉換成可完成該節點功能的算子單元。用一個或多個算子單元的組合取代數 據控制流圖中的各節點,一個或多個算子單元的組合可完成與各節點相同的功能。。對于如 何將數據控制流圖展開,包括但不限于以下幾種方式如果數據控制流圖中的數據流為順 序相關數據流結構,則將順序相關數據流采用流水線的方式展開;如果數據控制流圖中的 數據流中存在反饋,即該數據流是一個循環時,則該數據流存在數據相關性,則該數據流不 能轉化為流水結構,但如果該數據流內部數據之間不存在數據相關性時,則將所述內部數 據不存在數據相關性的各數據流采用局部流水線的方式展開;如果數據控制流圖中的數據 流之間不存在數據相關性,則將該數據流采用并行方式展開,并轉換成由算子單元組成的 算子時空圖。步驟S4,時序約束步驟,用于根據用戶規格要求和目標集成電路工藝的要求確定 出總時序約束,對算子時空圖中的每個算子單元標注時間。另一方面,從算子單元庫中可以 提取算子時序信息,對算子時空圖做時序標注,形成時序約束的對象。從而根據數據流特性 可以將時序約束具體到算子時空圖的每個層級,實現對算子時空圖的每個層級進行時序約 束。由于算子可以構成不同算子功能塊,進而構成不同的算子功能群落,則每個算子功能群 落為一個算子層級。如果所述數據流結構為并行數據流,則將總時序約束平分給到對應的時空圖中的 每個算子層級,并將每個算子層級的時序約束平分到該算子層級中的每一個算子單元。將 數據控制流中串行各節點所對應的各算子層級總的算子的基本時序單位作為總體時序約 束,按照各算子層級中最長運算路徑所映射的運算算子的時序占各個算子層級中最長運算 路徑所映射的算子單元對應的時序總和的比例來分配各算子層級的時序。步驟S5,時空圖壓縮步驟,用于根據時間標注對時空圖進行空間上(即硬件資源 上或面積上)的聚類壓縮,并使之總體算法執行時間最接近于總時序約束。在一種實施例中,對時空圖進行壓縮包括以下步驟在算子時空圖中查找出屬性 相同的運算類算子和/或存儲屬性相同的存儲類算子;然后根據時間標注對運算屬性相同 的運算類算子在空間上進行合并壓縮和/或將存儲屬性相同的存儲類算子在空間上進行 合并壓縮;然后引入控制類算子,對壓縮后的運算類算子和/或存儲類運算算子生成相應 配置指令,實現運算類算子和/或存儲類算子的復用。聚類壓縮步驟和生成可重構算子功能塊的步驟,都會產生不只一種結果。不同的9函數調用同一子函數,由于約束時間不同,所產生的聚類結果也不同。因此需要根據時間、 面積、功耗等參數進行優化,按性能(執行時間)排出順序,恰好滿足時間約束的聚類結果 表示其硬件實現代價最小,因此選擇總體算法執行時間最接近于完成集成電路算法所需要 的總時序約束的時空圖作為聚類壓縮的優化結果。步驟S6,下層硬件映射步驟,根據聚類壓縮后的時空圖生成集成電路下層硬件邏 輯描述。基于上述的集成電路下層硬件映射方法,本發明還公開了一種集成電路下層硬件 映射裝置,請參考圖7b,本實施例的集成電路下層硬件映射裝置包括程序分析模塊1,用于讀取描述集成電路算法的計算機語言程序,根據該計算機語 言的規則從所述計算機語言程序中識別出被映射的執行對象和參數對象;數據控制流圖生 成模塊2,用于將識別出的執行對象和參數對象映射成描述集成電路算法的數據控制流圖; 算子時空圖生成模塊3,用于將數據控制流圖中的各節點根據數據流相關性展開,并根據展 開后的各節點所進行的處理功能從預先建立的算子單元庫中取出對應功能的至少一個算 子單元,從而將數據控制流圖轉換成由算子單元組成的算子時空圖;時序約束模塊4,用于 根據用戶規格需求和目標集成電路工藝的要求確定出總時序約束,對算子時空圖中的每個 算子單元標注時間,對算子時空圖的每個層級進行時序約束;時空圖壓縮模塊5,用于根據 時間標注對時空圖時進行空間上的聚類壓縮,并使之總體算法執行時間最接近于總時序約 束;下層硬件映射模塊6,根據聚類壓縮后的時空圖生成集成電路下層硬件電路。下面結合具體實施例對本發明的集成電路下層硬件映射方法和裝置進行說明。H. 264是國際電聯(ITU-T)和國際標準化組織(ISO)共同組建的聯合視頻組 (JVT)共同制定的數字視頻編碼標準。本實施例中以H. 264標準的C語言描述的X264_me_ search函數為例,對本發明的方法進行更為詳細的說明。如圖8所示,為對函數X264_me_SearCh進行分析包括步驟S11、讀取計算機語言程序,并在該計算機語言程序中查找函數。在本實施例中,首 先讀取程序,并進行語法和詞法分析,得到函數X264_me_search。S12、對該函數進行解析,得到該函數的函數調用關系以及參數對象,該參數對象 包括該函數的輸入數據、輸出數據、輸入常量,以及該上層函數的中間數據,并對該函數的 各參數對象進行相應的數據相關性、共享存儲、分布存儲等信息的標注。在本實施例中,對 函數X264_me_search進行分析得到其輸入變量、輸出變量、輸入常量和輸出常量如表1所 示表 1 信號名稱數據類型方向說明i—pixelIntIN//PIXEL_ffxHImIntIN//lambda motionp_frefuint8_t*IN//參考幀
權利要求
1.集成電路下層硬件映射方法,其特征在于包括程序分析步驟,用于讀取描述集成電路算法的計算機語言程序,根據該計算機語言的 規則從所述計算機語言程序中識別出被映射的執行對象和參數對象;數據控制流圖生成步驟,用于將識別出的執行對象和參數對象映射成描述集成電路算 法的數據控制流圖中的相應節點;算子時空圖生成步驟,用于根據數據控制流圖中的各節點所進行的功能處理從預先建 立的算子單元庫中取出對應功能的至少一個算子單元,將數據控制流圖中轉換成由算子單 元組成的算子時空圖;時序約束步驟,用于根據用戶規格需求和目標集成電路工藝的要求確定出總時序約 束,對算子時空圖中的每個算子單元標注時間,對算子時空圖的每個層級進行時序約束;時空圖壓縮步驟,用于根據時間標注對時空圖進行空間上的聚類壓縮,并使之總體算 法執行時間最接近于總時序約束;下層硬件映射步驟,根據聚類壓縮后的時空圖生成集成電路下層硬件電路邏輯描述。
2.集成電路下層硬件映射裝置,其特征在于包括程序分析模塊,用于讀取描述集成電路算法的計算機語言程序,根據該計算機語言的 規則從所述計算機語言程序中識別出被映射的執行對象和參數對象;數據控制流圖生成模塊,用于將識別出的執行對象和參數對象映射成描述集成電路算 法的數據控制流圖中的相應的節點;算子時空圖生成模塊,用于根據數據控制流圖中的各節點所進行的功能處理從預先建 立的算子單元庫中取出對應功能的至少一個算子單元,將數據控制流圖轉換成由算子單元 組成的算子時空圖;時序約束模塊,用于根據用戶規格需求和目標集成電路工藝的要求確定出總時序約 束,對算子時空圖中的每個算子單元標注時間,對算子時空圖的每個層級進行時序約束;時空圖壓縮模塊,用于根據時間標注對時空圖進行空間上的聚類壓縮,并使之總體算 法執行時間最接近于總時序約束;下層硬件映射模塊,根據聚類壓縮后的時空圖生成集成電路下層硬件電路邏輯描述。
3.時空圖生成方法,其特征在于包括 將數據控制流圖根據其數據流相關性展開;根據展開后的各節點所進行的功能處理從預先建立的算子單元庫中取出對應功能的 至少一個算子單元,將數據控制流圖轉換成由算子單元組成的算子時空圖。
4.如權利要求3所述的方法,其特征在于,所述數據控制流圖中的數據流為順序相關 數據流結構,則將所述順序相關數據流采用流水線的方式展開,并轉換成由算子單元組成 的算子時空圖。
5.如權利要求3所述的方法,其特征在于,所述數據控制流圖中的數據流存在反饋,且 所述數據流內部數據之間不存在數據相關性,則將所述內部數據不存在數據相關性的各數 據流采用局部流水線的方式展開,并轉換成由算子單元組成的算子時空圖。
6.如權利要求3所述的方法,其特征在于,所述數據控制流圖中的數據流之間不存在 數據相關性,則將所述數據流采用并行方式展開,并轉換成由算子單元組成的算子時空圖。
7.時空圖生成裝置,其特征在于包括算子單元庫,用于存儲能夠實現運算功能的算子單元;展開單元,用于將數據控制流圖根據其數據流相關性展開;算子時空圖生成模塊,用于根據展開后的各節點所進行的功能處理從算子單元庫中取 出對應功能的至少一個算子單元,將數據控制流圖中的各功能模塊轉換成由算子單元組成 的算子時空圖。
8.如權利要求7所述的裝置,其特征在于,還包括用于判斷數據流相關性類型的判斷 單元,所述展開單元根據數據流相關性類型進行相應的展開操作。
9.如權利要求8所述的裝置,其特征在于,當判斷單元判斷數據控制流圖中的數據流 為順序相關數據流結構時,所述展開單元將所述順序相關數據流采用流水線的方式展開; 當所述判斷單元判斷數據控制流圖中的數據流中存在反饋時,所述展開單元判斷存在反饋 的各數據流內部的數據之間是否存在數據相關性,如果所述各數據流內部的數據之間不存 在數據相關性,則所述展開單元用于將所述內部數據不存在數據相關性的各數據流采用局 部流水線的方式展開;當所述判斷單元判斷數據控制流圖中的數據流之間不存在數據相關 性時,所述展開單元將所述數據流采用并行方式展開。
10.如權利要求7-9中任一項所述的裝置,其特征在于,所述算子時空圖生成模塊先將 上層函數的數據流控制圖轉換為算子時空圖,然后將下層函數調用的子函數的數據流控制 圖轉換為算子時空圖。
全文摘要
本發明公開了一種集成電路下層硬件映射方法及裝置,通過對描述集成電路算方法的計算機語言程序進行分析,并將其映射為數據控制流圖,再轉換為算子時空圖,并對該數據控制流圖進行時序約束,從而根據時序標注對算子時空圖進行聚類壓縮,再生成集成電路下層硬件電路邏輯描述,從而創造了一種從計算機語言到集成電路下層硬件電路的映射工具,標準化地實現了集成電路從C或MATLAB等語言生成下層硬件的過程,實現起來方便快捷。本發明公開的算子時空圖生成方法及裝置通過根據數據控制流中數據流的數據相關性將其展開,并調用算子將數據控制流圖轉換為算子時空圖,根據本方法得到的電路,不僅版圖規整性加強,并且能夠實現低功耗的優化設計。
文檔編號G06F17/50GK102054107SQ20101061983
公開日2011年5月11日 申請日期2010年12月31日 優先權日2010年12月31日
發明者周生明, 孫亞春, 安輝耀, 張興, 王新安, 王騰, 胡子一, 謝崢, 趙秋奇, 馬芝 申請人:北京大學深圳研究生院