System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本說明書涉及電子設計自動化領域,更具體地說,本申請涉及一種硬件描述語言預編譯方法及相關設備。
技術介紹
1、隨著數字電路和系統設計日益復雜,verilog及其預處理技術在硬件設計領域中的應用變得越來越廣泛。無論是用于簡單的數字邏輯設計,還是復雜的系統級設計,verilog都發揮著至關重要的作用。在fpga(field-programmable?gate?array,現場可編程門陣列)和asic(application-specific?integrated?circuit,應用特定集成電路)設計中,verilog更是不可或缺的工具。近年來,隨著5g、人工智能(artificial?intelligence,ai)和物聯網(internet?of?things,iot)等新興技術的快速發展,對硬件設計提出了更高的性能和功能要求,這使得verilog及其預處理技術也不斷演進,以支持更高級的設計方法和驗證技術。
2、在大型硬件設計項目中,手動編寫和管理verilog代碼可能由于項目的規模擴大而變得冗長和復雜,進而導致代碼的可讀性和可維護性下降。盡管目前已有一些工具和方法可以自動生成verilog代碼,但這些工具往往依賴于特定的軟件環境或專門的工具鏈,且生成的代碼的可讀性較差,還需要進一步的人工預處理來滿足項目的需要。
3、因此,有必要提出一種硬件描述語言預編譯方法和相關設備裝置,以降低特定的軟件環境的依賴性,使其夠在更靈活的條件下實現代碼的預編譯和優化,提高硬件描述語言代碼的可讀性和可重用性,從而滿足現代硬件設
技術實現思路
1、在
技術實現思路
部分中引入了一系列簡化形式的概念,這將在具體實施方式部分中進一步詳細說明。本申請的
技術實現思路
部分并不意味著要試圖限定出所要求保護的技術方案的關鍵特征和必要技術特征,更不意味著試圖確定所要求保護的技術方案的保護范圍。
2、第一方面,本申請提出一種硬件描述語言預編譯方法,包括:
3、獲取目標硬件描述語言文件;
4、將上述目標硬件描述語言文件輸入至預處理算法單元,以獲取預處理后的目標硬件描述語言文件,其中,上述預處理算法單元包括代碼格式與結構管理模塊、模塊化處理與管理模塊、條件處理與宏定義模塊、代碼生成與實例化模塊,每個模塊包括一個或多個處理組件,每個上述處理組件是基于不同的正則表達式構建的;
5、將上述預處理后的目標硬件描述語言文件封裝保存,以獲取預編譯硬件描述語言文件。
6、在一種可行的實施方式中,上述預處理算法單元是基于python語言建立的;
7、上述代碼格式與結構管理模塊包括頭文件處理組件和格式統一組件,上述頭文件處理組件用于規范代碼的頭文件,上述格式統一組件用于規范代碼的格式;
8、上述模塊化處理與管理模塊包括模塊名稱處理組件和多模塊處理組件,上述模塊名稱處理組件用于標準化名稱和刪除不可讀的注釋內容,上述多模塊處理組件用于將模塊的硬件描述語言拆分為獨立文件,以使獨立文件中僅包括一個模塊;
9、上述條件處理與宏定義模塊包括第一條件處理模塊和第二條件處理模塊,上述第一條件處理模塊用于篩選實際運行的代碼,上述第二條件處理模塊用于包括滿足條件的代碼分支;
10、上述代碼生成與實例化模塊包括重復結構處理模塊和例化部分處理模塊,上述重復結構處理模塊用于基于重復次數展開重復結構,上述例化部分用于規范例化代碼的格式。
11、在一種可行的實施方式中,上述格式統一組件的處理步驟包括:
12、匹配模塊聲明行,以提取模塊名稱、參數列表和端口列表;
13、格式化模塊行,將上述參數列表和上述端口列表中的逗號替換為換行符;
14、重新構建并保存格式化后的模塊行,將其存入處理后的代碼行列表。
15、在一種可行的實施方式中,上述模塊名稱處理組件的處理步驟包括:
16、控制上述模塊名稱處理組件刪除單行注釋和空行;
17、控制上述名稱處理組件標記多行注釋的開始語句和結束語句;
18、在上述開始語句和上述結束語句之間清除注釋,以獲取有效代碼。
19、在一種可行的實施方式中,還包括:
20、將上述預編譯硬件描述語言文件輸入至仿真模型,以獲取仿真報錯結果;
21、基于上述仿真報錯結果提取報錯類型統計信息和報錯位置統計信息;
22、基于上述報錯類型統計信息確定問題正則表達式;
23、基于上述報錯位置統計信息系確定問題語句塊,其中,上述問題語句塊為特定語句組合形式對應的區域;
24、基于上述問題正則表達式進行表達式更新處理;
25、基于上述問題語句塊進行語句塊拆分處理,并基于拆分處理后的語句再次進行基于上述預處理算法單元進行預處理操作。
26、在一種可行的實施方式中,上述基于上述報錯位置統計信息確定問題語句塊,包括:
27、基于上述報錯位置統計信息計算多因子鄰近性評分和語句塊復雜性評分;
28、基于上述多因子鄰近性評分和上述語句塊復雜性評分確定上述問題語句塊。
29、在一種可行的實施方式中,上述多因子鄰近性評分基于下式確定:
30、
31、其中,為多因子鄰近性評分,為距離權重系數、為錯誤類型相似性權重系數,為嵌套層次差異權重系數,是i和j兩個報錯的行號距離,是報錯語句的嵌套層次差異,為錯誤類型的相似性;
32、上述語句塊復雜性評分基于下式確定:
33、
34、其中,為嵌套深度的權重,為語句塊的嵌套層次,為操作符的整體權重,為第i類操作符的權重,為第i類操作符在該語句塊中的數量,為變量引用和作用域的權重,為第j個變量的作用域權重,為第j個變量在該語句塊中的引用次數,為數據依賴的權重,為數據依賴復雜性評分,為邏輯復雜性的權重,為邏輯表達式的復雜性評分;
35、上述數據依賴復雜性評分基于下式確定:
36、
37、其中,表示第l條依賴關系鏈的長度;
38、上述邏輯表達式的復雜性評分基于下式確定:
39、
40、其中,為控制流圖中邊的數量,n為控制流圖中節點的數量,p為連通組件的數量。
41、第二方面、本申請提出一種硬件描述語言預編譯裝置,包括:
42、第一獲取單元,用于獲取目標硬件描述語言文件;
43、第二獲取單元,用于將所述目標硬件描述語言文件輸入至預處理算法單元,以獲取預處理后的目標硬件描述語言文件,其中,所述預處理算法單元包括代碼格式與結構管理模塊、模塊化處理與管理模塊、條件處理與宏定義模塊、代碼生成與實例化模塊,每個模塊包括一個或多個處理組件,每個所述處理組件是基于不同的正則表達式構建的;
44、第三獲取單元,用于將所述預處理后的目標硬件描述語言文件封裝保存,以獲取預本文檔來自技高網...
【技術保護點】
1.一種硬件描述語言預編譯方法,其特征在于,包括:
2.根據權利要求1所述的硬件描述語言預編譯方法,其特征在于,所述預處理算法單元是基于Python語言建立的;
3.根據權利要求2所述的硬件描述語言預編譯方法,其特征在于,所述格式統一組件的處理步驟包括:
4.根據權利要求2所述的硬件描述語言預編譯方法,其特征在于,所述模塊名稱處理組件的處理步驟包括:
5.根據權利要求2所述的硬件描述語言預編譯方法,其特征在于,還包括:
6.根據權利要求5所述的硬件描述語言預編譯方法,其特征在于,所述基于所述報錯位置統計信息確定問題語句塊,包括:
7.根據權利要求6所述的硬件描述語言預編譯方法,其特征在于,
8.一種硬件描述語言預編譯裝置,其特征在于,包括:
9.一種電子設備,包括:存儲器和處理器,其特征在于,所述處理器用于執行存儲器中存儲的計算機程序時實現如權利要求1-7中任一項所述的硬件描述語言預編譯方法的步驟。
10.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機
...【技術特征摘要】
1.一種硬件描述語言預編譯方法,其特征在于,包括:
2.根據權利要求1所述的硬件描述語言預編譯方法,其特征在于,所述預處理算法單元是基于python語言建立的;
3.根據權利要求2所述的硬件描述語言預編譯方法,其特征在于,所述格式統一組件的處理步驟包括:
4.根據權利要求2所述的硬件描述語言預編譯方法,其特征在于,所述模塊名稱處理組件的處理步驟包括:
5.根據權利要求2所述的硬件描述語言預編譯方法,其特征在于,還包括:
6.根據權利要求5所述的硬件描述語言預編譯方法,其特征...
【專利技術屬性】
技術研發人員:馬飛,張哲,
申請(專利權)人:北京湯谷軟件技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。