本發(fā)明涉及集成電路,特別是涉及一種寄存器置換級設(shè)計的處理方法、裝置、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、隨著集成電路技術(shù)的不斷發(fā)展迭代,其功能和結(jié)構(gòu)也變得越來越復(fù)雜。傳統(tǒng)的前端驗證方法已經(jīng)無法完全保證asic(application?specific?integrated?circuit,專用集成電路)設(shè)計的有效性和滿足相應(yīng)驅(qū)動軟件協(xié)同開發(fā)的需求。在這種背景下,fpga(fieldprogrammable?gate?array,現(xiàn)場可編程門陣列)原型驗證平臺的出現(xiàn)為解決上述問題提供了一種方法,該平臺旨在等效模擬asic設(shè)計的硬件環(huán)境,幫助asic設(shè)計人員提升設(shè)計的穩(wěn)定性,并為軟件開發(fā)人員提供真實的物理平臺。
2、目前asic設(shè)計的規(guī)模變得越來越大,同時也越來越復(fù)雜,單片fpga已經(jīng)不能滿足原型驗證的資源要求,因此“haps原型驗證平臺”,一種服務(wù)于多片fpga驗證平臺技術(shù)的產(chǎn)品應(yīng)運而生。它能夠為asic/soc(system?on?chip,系統(tǒng)級芯片)設(shè)計者提供高性能、高容量的基于fpga的原型驗證平臺,為設(shè)計者提供更多的便利,提升了開發(fā)效率。
3、傳統(tǒng)方法中,對于較大規(guī)模芯片的原型驗證,具體處理流程如圖1所示:
4、第一步:輸入rtl設(shè)計。設(shè)計源文件可以與asic源文件相同或自asic源文件修改替換得到。
5、第二步:預(yù)檢測。添加rtl調(diào)試檢測。
6、第三步:編譯。在此階段將驗證輸入的文件,完成設(shè)計編譯。通常使用統(tǒng)一編譯模式,在vcs中編譯rtl。
7、第四步:預(yù)分割。讀入約束文件timing?constraints(fdc)、target?system?spec(tts)。其中.fdc文件是時序約束文件,.tss文件是haps平臺配置文件,如時鐘來源、cable連接、外接子板類型及位置。運行資源評估,通過妥善處理直通、重復(fù)的輸出、未連接的或無負載的頂層輸入端口等問題來為分割做好準備。這一步驟需要花費較長的時間。
8、第五步:分割。讀入約束文件target?system?spec(tss)、partition?constraints(pcf)。其中.pcf文件設(shè)置partition的約束,如pin?location、cell的分配以及partition策略的控制。分割是一個迭代的過程,在這個過程中,將不斷改進結(jié)果,直到符合要求,如沒有unrouted(無法布線)和cut?clock(交叉時鐘)。
9、第六步:系統(tǒng)布線。在每片fpga間進行系統(tǒng)布線。在此階段,工具將fpga間的網(wǎng)絡(luò)分配給haps板卡走線,并根據(jù)需要執(zhí)行時域復(fù)用。
10、第七步:系統(tǒng)生成。根據(jù)分割方案,生成單個fpga系統(tǒng)級的相關(guān)文件。
11、第八步:綜合、布局、布線。針對single?fpgas,將邏輯設(shè)計映射到特定的fpga芯片,生成設(shè)計相對應(yīng)的網(wǎng)表文件,完成每片fpga的布局、布線。
12、第九步:生成比特流文件,并生成相關(guān)配置文件。
13、但是,上述流程存在以下問題:
14、1)編譯階段的處理對象是整個rtl設(shè)計,如果rtl設(shè)計需要修改,無論改動波及的范圍有多大,都需要在全部rtl設(shè)計的基礎(chǔ)上進行后面步驟的運行。而后續(xù)運行到預(yù)分割、分割、系統(tǒng)布線和生成等階段時,往往還需要不斷嘗試直至結(jié)果滿足要求。這就增加了版本迭代的時間成本,降低了版本制作的效率。
15、2)傳統(tǒng)流程中的fpga綜合實現(xiàn)是放在最后部分的,此時分割方案已經(jīng)確定,但具體的邏輯映射關(guān)系還需要通過綜合才能得到,故而此時的分割方案是不具備準確的映射關(guān)系和時序信息的,可實現(xiàn)性難免有所欠缺。這就增加了fpga時序收斂的難度,需要在后期手動進行時序修復(fù),實在無法滿足時序收斂時,甚至還需要重新分割。
技術(shù)實現(xiàn)思路
1、鑒于上述問題,提出了本發(fā)明實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種寄存器置換級設(shè)計的處理方法、裝置、電子設(shè)備及存儲介質(zhì)。
2、第一方面,本發(fā)明實施例公開了一種寄存器置換級設(shè)計的處理方法,所述方法包括:
3、響應(yīng)于針對待處理的寄存器置換級rtl設(shè)計的處理指令,對所述rtl設(shè)計進行劃分,得到至少一個目標(biāo)模塊;
4、對各個所述目標(biāo)模塊進行綜合處理,得到各個所述目標(biāo)模塊對應(yīng)的第一網(wǎng)表;
5、對各個所述第一網(wǎng)表進行組合,得到頂層網(wǎng)表;
6、對所述頂層網(wǎng)表進行分割,得到至少一個第二網(wǎng)表;
7、對各個所述第二網(wǎng)表進行布局布線,并生成對應(yīng)的至少一個比特流文件;
8、基于各個比特流文件生成所述rtl設(shè)計對應(yīng)的配置文件。
9、可選的,所述對所述rtl設(shè)計進行劃分,得到至少一個目標(biāo)模塊,包括:
10、對所述rtl設(shè)計中的所有模塊進行過濾,確定具有時鐘域的至少一個第一候選模塊;
11、按照所述時鐘域的類型對各個所述第一候選模塊進行劃分,得到至少一個第二候選模塊和至少一個第三候選模塊;其中,所述第二候選模塊的所述時鐘域的類型為同時鐘域,所述第三候選模塊的所述時鐘域的類型為跨時鐘域;
12、基于時鐘頻率對各個所述第二候選模塊進行劃分,得到至少一個第四候選模塊、至少一個第五候選模塊和至少一個第六候選模塊;其中,所述第四候選模塊的最高時鐘頻率小于最高時鐘頻率閾值,且不小于所述最高時鐘頻率閾值的三分之二,所述第五候選模塊的最高時鐘頻率小于所述最高時鐘頻率閾值的三分之二,且不小于所述最高時鐘頻率閾值的三分之一,所述第六候選模塊的最高時鐘頻率小于所述最高時鐘頻率閾值的三分之一;
13、基于復(fù)用率對各個所述第四候選模塊進行劃分,得到至少一個第七候選模塊和至少一個第八候選模塊,以及,對各個所述第五候選模塊進行劃分,得到至少一個第九候選模塊和至少一個第十候選模塊,以及,對各個所述第六候選模塊進行劃分,得到至少一個第十一候選模塊和至少一個第十二候選模塊;其中,所述第七候選模塊、所述第九候選模塊和所述第十一候選模塊的復(fù)用率超過復(fù)用率閾值,所述第八候選模塊、所述第十候選模塊和所述第十二候選模塊的復(fù)用率不超過所述復(fù)用率閾值;
14、基于數(shù)據(jù)流對各個所述第七候選模塊、各個所述第八候選模塊、各個所述第九候選模塊、各個所述第十候選模塊、各個所述第十一候選模塊和各個所述第十二候選模塊分別進行劃分,得到至少一個第一目標(biāo)模塊。
15、可選的,還包括:
16、基于所述復(fù)用率對各個所述第三候選模塊進行劃分,得到至少一個第十三候選模塊和至少一個第十四候選模塊;其中,所述第十三候選模塊的復(fù)用率超過所述復(fù)用率閾值,所述第十四候選模塊的復(fù)用率不超過所述復(fù)用率閾值;
17、基于所述數(shù)據(jù)流對各個所述第十三候選模塊和各個所述第十四候選模塊進行劃分,得到至少一個第二目標(biāo)模塊。
18、可選的,所述對各個所述第一網(wǎng)表進行組合,得到頂層網(wǎng)表,包括:
19、創(chuàng)建空白網(wǎng)表,并將所述空白網(wǎng)表設(shè)置為頂層;
20、基于各個所述第一網(wǎng)表的層次結(jié)構(gòu)將各個所述第一網(wǎng)表填充至所述空白網(wǎng)表中,得到頂層網(wǎng)表。
21、可選的,所述對所述頂層網(wǎng)表進行分割,得到至少一個第二網(wǎng)表,包括:
22、根據(jù)每片現(xiàn)場可編程門陣列fpga的特性對所述頂層網(wǎng)表進行分割,得到至少一個第二網(wǎng)表;其中,所述fpga的數(shù)量與所述第二網(wǎng)表的數(shù)量相同,任意一個所述第二網(wǎng)表包括至少一個所述第一網(wǎng)表,且,任意兩個所述第二網(wǎng)表中不包括相同的第一網(wǎng)表。
23、可選的,還包括:
24、獲取針對各個所述目標(biāo)模塊中任意一個目標(biāo)模塊的修改指令;
25、若所述修改指令用于修改所述任意一個目標(biāo)模塊的數(shù)據(jù)交互接口,則觸發(fā)所述處理指令,并跳轉(zhuǎn)至所述響應(yīng)于針對待處理的寄存器置換級rtl設(shè)計的處理指令,對所述rtl設(shè)計進行劃分,得到至少一個目標(biāo)模塊的步驟。
26、可選的,還包括:
27、若所述修改指令不用于修改所述任意一個目標(biāo)模塊的數(shù)據(jù)交互接口,則對所述任意一個目標(biāo)模塊進行綜合處理,得到第三網(wǎng)表;
28、采用所述第三網(wǎng)表對所述頂層網(wǎng)表進行更新,得到更新后的頂層網(wǎng)表,并針對所述更新后的頂層網(wǎng)表,跳轉(zhuǎn)至所述對所述頂層網(wǎng)表進行分割,得到至少一個第二網(wǎng)表的步驟。
29、第二方面,本發(fā)明實施例公開了一種寄存器置換級設(shè)計的處理裝置,所述裝置包括:
30、劃分模塊,用于響應(yīng)于針對待處理的寄存器置換級rtl設(shè)計的處理指令,對所述rtl設(shè)計進行劃分,得到至少一個目標(biāo)模塊;
31、綜合模塊,用于對各個所述目標(biāo)模塊進行綜合處理,得到各個所述目標(biāo)模塊對應(yīng)的第一網(wǎng)表;
32、組合模塊,用于對各個所述第一網(wǎng)表進行組合,得到頂層網(wǎng)表;
33、分割模塊,用于對所述頂層網(wǎng)表進行分割,得到至少一個第二網(wǎng)表;
34、實現(xiàn)模塊,用于對各個所述第二網(wǎng)表進行布局布線;
35、生成模塊,用于生成對應(yīng)的至少一個比特流文件,并基于各個比特流文件生成所述rtl設(shè)計對應(yīng)的配置文件。
36、第三方面,本發(fā)明還公開了一種電子設(shè)備,包括:處理器、存儲器及存儲在所述存儲器上并能夠在所述處理器上運行的計算機程序,所述計算機程序被所述處理器執(zhí)行時實現(xiàn)如上述的寄存器置換級設(shè)計的處理方法的步驟。
37、第四方面,本發(fā)明還公開了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上述的寄存器置換級設(shè)計的處理方法的步驟。
38、本發(fā)明實施例包括以下優(yōu)點:
39、響應(yīng)于針對待處理的寄存器置換級rtl設(shè)計的處理指令,對所述rtl設(shè)計進行劃分,得到至少一個目標(biāo)模塊;對各個所述目標(biāo)模塊進行綜合處理,得到各個所述目標(biāo)模塊對應(yīng)的第一網(wǎng)表;對各個所述第一網(wǎng)表進行組合,得到頂層網(wǎng)表;對所述頂層網(wǎng)表進行分割,得到至少一個第二網(wǎng)表;對各個所述第二網(wǎng)表進行布局布線,并生成對應(yīng)的至少一個比特流文件;基于各個比特流文件生成所述rtl設(shè)計對應(yīng)的配置文件。通過上述方式,在進行分割階段前,已經(jīng)生成了網(wǎng)表,擁有較為準確的映射關(guān)系和時序信息,以使得后續(xù)對新的網(wǎng)表進行分割時,分割得到的結(jié)果更貼合實際情況,有益于后續(xù)的時序收斂。
40、而且,根據(jù)fpga的特征對頂層網(wǎng)表進行分割,不僅使得分割得到的結(jié)果更貼合實際情況,有益于后續(xù)的時序收斂,而且可以不再嚴格按照傳統(tǒng)方法中預(yù)分割-分割的流程,而是直接運行分割,從而提高處理效率。