System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于硬件安全和代碼生成,具體涉及一種硬件安全漏洞知識圖譜輔助的verilog安全代碼生成方法及裝置。
技術介紹
1、設計現代集成電路要求設計師使用硬件描述語言(如verilog)編寫代碼,以指定硬件架構并對數字系統的行為進行建模。由于超大規模集成電路(vlsi)設計的復雜性日益增加,編寫verilog變得耗時且容易出錯,迫使設計師進行多次迭代以調試語法、功能正確性和安全性。因此,降低設計成本和設計師完成硬件規范所需的努力已成為一項迫切需求。大型語言模型(llms)在理解和生成自然語言方面顯示出顯著的能力,能夠在大規模上進行處理,從而在各個領域帶來了許多潛在的應用和利益。在代碼生成領域,llm可以通過建議代碼片段、提供修復錯誤的解決方案,生成帶有解釋的代碼來協助開發者。目前在大語言模型生成硬件可以分為基于微調優化和基于機器學習的方法。
2、基于微調優化的方法,存在過擬合風險,尤其在數據集較小時;對計算資源要求較高;可能引入數據偏差,影響模型的泛化能力;存在災難性遺忘風險,使模型遺忘預訓練知識;超參數調優復雜,增加訓練難度;以及對領域依賴性較強,當預訓練任務與目標任務差異較大時,效果可能不佳。
3、基于機器學習的方法,注重生成代碼的語法和功能正確性,但缺乏修復錯誤的機制,因此難以保證生成代碼在語法、功能和安全性上的全面正確性。
技術實現思路
1、針對上述問題,本專利技術提出了一種硬件安全漏洞知識圖譜輔助的verilog安全代碼生成方法及裝置,旨在解決現
2、本專利技術解決上述技術問題采用的技術方案為:
3、一種硬件安全漏洞知識圖譜輔助的verilog安全代碼生成方法,包括如下步驟:
4、s1、根據用戶輸入的硬件代碼生成任務的自然語言描述,將硬件代碼生成任務分解為若干子任務。
5、s2、從硬件生成子任務自然語言描述中提取信號、狀態轉換和電路代碼示例。
6、s3、獲取硬件安全漏洞數據,自頂向下構建硬件漏洞安全知識圖譜。
7、s4、根據子任務的自然語言描述、子任務信號、子任務狀態轉換和子任務電路代碼示例生成verilog代碼。
8、s5、基于硬件漏洞安全知識圖譜,對verilog代碼進行安全漏洞檢測并修復安全漏洞,生成安全verilog代碼。
9、進一步地,步驟s1具體為大語言模型理解用戶輸入的硬件代碼生成任務的自然語言描述,對復雜的硬件生成任務根據功能模塊進行規劃,將硬件生成任務分解為若干硬件生成子任務。
10、進一步地,步驟s2具體為大語言模型根據硬件生成子任務的自然語言描述,提取硬件子任務的信號、狀態轉換和電路代碼示例信息。
11、進一步地,步驟s3具體從硬件安全漏洞文檔中獲取硬件漏洞知識半結構化、非結構化數據,對獲取的數據進行去除文本中的html標簽、特殊字符、停用詞等,保留文本內容。對文本進行分詞、詞干提取處理,將文本轉換為統一的格式,并組合得到數據集;自頂向下構建硬件漏洞安全知識圖譜,確定硬件安全漏洞領域的頂層本體,包括多個實體,設計用于表示這些實體之間的關系和實體所需的屬性。對實體、關系和屬性進行明確的界定,建立本體層模式。利用大語言模型對數據進行實體、關系和屬性提取。獲取硬件安全漏洞數據中的實體、關系和屬性數據,添加至數據層,生成知識圖譜。將實體、關系和屬性以三元組形式存儲在圖數據庫。
12、進一步地,步驟s4具體為根據子任務自然語言描述和提取的子任務電路信號、狀態轉換和電路代碼示例信息,大語言模型生成verilog代碼,基于生成的verilog代碼大語言模型調用語法檢查、功能檢查工具iverilog,編譯并啟動verilog仿真,若verilog代碼存在語法錯誤或與子任務功能描述不一致,工具將報告這些錯誤發生的行數和仿真結果,并提供編譯消息作和輸出信號的不匹配數量及首次不匹配的時間點,作為調用工具的反饋。大語言模型根據所調用工具返回的語法、功能錯誤信息,修復語法錯誤、功能錯誤。重復以上步驟,直到生成的verilog代碼沒有語法錯誤且與子任務描述一致為止或達到設定迭代次數。整合子任務生成verilog代碼,獲得語法功能正確的verilog代碼。
13、進一步地,步驟s5具體為通過代碼檢測方法cweat檢測語法功能正確的verilog代碼獲得verilog代碼硬件安全漏洞類型和漏洞所在位置信息,大語言模型根據cweat反饋信息調用圖檢索工具,大語言模型根據圖檢索工具從硬件安全漏洞知識圖譜中獲得的反饋信息修復漏洞,重復以上步驟,直到生成的代碼通過cweat方法檢測或達到設定的迭代次數,生成安全、語法正確和功能正確的verilog代碼。
14、進一步地,步驟s5中,圖檢索工具,是大語言模型生成檢索特定硬件漏洞安全代碼類型節點2跳內所有節點的cypher語言,利用cypher語言檢索硬件安全漏洞知識圖譜,返回對應硬件漏洞安全代碼類型實體2跳內的所有子圖節點信息。子圖節點信息包括,硬件安全漏洞自然語言描述、修正的規范性指導和漏洞錯誤修復代碼案例。
15、進一步地,步驟s5中,cweat方法采用啟發式檢測算法遍歷根據硬件安全漏洞的規則,構建verilog抽象語法樹,使用關鍵字遍歷抽象語法樹。關鍵詞匹配規則包括匹配規則和排除規則。通過關鍵詞匹配定位verilog代碼中的安全相關特征,如代碼片段關鍵詞與安全關鍵詞不匹配,則將該代碼片段標識為不安全,否則將該代碼片段標識為安全。
16、進一步地,步驟s5中,構建verilog抽象語法樹方法是遍歷verilog源代碼,解釋處理編譯指令。采用詞法分析器flex完成,識別支持的關鍵字和字面量,通過全局變量記錄當前的代碼位置,用于標注每個抽象語法樹節點的來源位置。采用解析生成器bison完成,bison生成一個抽象語法樹,每個抽象語法樹節點都標注了代碼中的來源位置,支持不同類型的verilog語法和結構,如模塊、函數、任務、參數、數組、操作符、邏輯塊等。
17、第二方面,本專利技術還提供一種硬件安全漏洞知識圖譜輔助的verilog安全代碼生成裝置,其中,所述裝置包括:
18、任務規劃模塊,用于將用戶輸入的硬件代碼生成任務,分解為若干子任務。
19、電路信號信息提取模塊,用于通過大語言模型,提取子任務的信號、狀態轉換和電路示例信息。
20、知識圖譜構建模塊,根據硬件安全漏洞數據,構建硬件安全漏洞知識圖譜。
21、verilog代碼生成模塊,根據子任務自然語言描述和提取的子任務電路信號、狀態轉換和電路代碼示例,通過大語言模型生本文檔來自技高網...
【技術保護點】
1.一種硬件安全漏洞知識圖譜輔助的Verilog安全代碼生成方法,其特征在于,包括如下步驟:
2.根據權利要求1所述的硬件安全漏洞知識圖譜輔助的Verilog安全代碼生成方法,其特征在于,所述步驟S1具體實現過程為:通過大語言模型理解用戶輸入的硬件代碼生成任務的自然語言描述,對硬件代碼生成任務根據功能模塊進行規劃,將硬件生成任務分解為若干硬件生成子任務。
3.根據權利要求2所述的硬件安全漏洞知識圖譜輔助的Verilog安全代碼生成方法,其特征在于,所述步驟S2具體實現過程為:通過大語言模型根據子任務的自然語言描述,提取子任務的信號、狀態轉換和電路代碼示例。
4.根據權利要求3所述的硬件安全漏洞知識圖譜輔助的Verilog安全代碼生成方法,其特征在于,所述步驟S3具體實現過程如下:
5.根據權利要求4所述的硬件安全漏洞知識圖譜輔助的Verilog安全代碼生成方法,其特征在于,所述步驟S4具體實現過程如下:
6.根據權利要求5所述的硬件安全漏洞知識圖譜輔助的Verilog安全代碼生成方法,其特征在于,所述步驟S5具體實現過程
7.根據權利要求6所述的硬件安全漏洞知識圖譜輔助的Verilog安全代碼生成方法,其特征在于,所述圖檢索工具,是大語言模型生成檢索硬件漏洞安全代碼類型節點2跳內所有節點的Cypher語言,利用Cypher語言檢索硬件安全漏洞知識圖譜,返回對應硬件漏洞安全代碼類型實體2跳內的所有子圖節點信息;子圖節點信息包括,硬件安全漏洞自然語言描述、修正的規范性指導和漏洞錯誤修復代碼案例。
8.根據權利要求6所述的硬件安全漏洞知識圖譜輔助的Verilog安全代碼生成方法,其特征在于,所述代碼檢測方法采用啟發式檢測算法遍歷根據硬件安全漏洞的規則,構建Verilog抽象語法樹,使用關鍵字遍歷抽象語法樹;關鍵詞匹配規則包括匹配規則和排除規則;通過關鍵詞匹配定位Verilog代碼中的安全相關特征,若代碼片段關鍵詞與安全關鍵詞不匹配,則將該代碼片段標識為不安全,否則將該代碼片段標識為安全。
9.根據權利要求6所述的硬件安全漏洞知識圖譜輔助的Verilog安全代碼生成方法,其特征在于,所述構建Verilog抽象語法樹具體實現為:遍歷Verilog源代碼,解釋處理編譯指令;采用詞法分析器flex完成,識別支持的關鍵字和字面量,通過全局變量記錄當前的代碼位置,用于標注每個抽象語法樹節點的來源位置;采用解析生成器bison完成,bison生成一個抽象語法樹,每個抽象語法樹節點都標注了代碼中的來源位置,支持不同類型的Verilog語法和結構。
10.一種硬件安全漏洞知識圖譜輔助的Verilog安全代碼生成裝置,用于實現權利要求1至9任一所述的代碼生成方法,其特征在于,包括如下模塊:
...【技術特征摘要】
1.一種硬件安全漏洞知識圖譜輔助的verilog安全代碼生成方法,其特征在于,包括如下步驟:
2.根據權利要求1所述的硬件安全漏洞知識圖譜輔助的verilog安全代碼生成方法,其特征在于,所述步驟s1具體實現過程為:通過大語言模型理解用戶輸入的硬件代碼生成任務的自然語言描述,對硬件代碼生成任務根據功能模塊進行規劃,將硬件生成任務分解為若干硬件生成子任務。
3.根據權利要求2所述的硬件安全漏洞知識圖譜輔助的verilog安全代碼生成方法,其特征在于,所述步驟s2具體實現過程為:通過大語言模型根據子任務的自然語言描述,提取子任務的信號、狀態轉換和電路代碼示例。
4.根據權利要求3所述的硬件安全漏洞知識圖譜輔助的verilog安全代碼生成方法,其特征在于,所述步驟s3具體實現過程如下:
5.根據權利要求4所述的硬件安全漏洞知識圖譜輔助的verilog安全代碼生成方法,其特征在于,所述步驟s4具體實現過程如下:
6.根據權利要求5所述的硬件安全漏洞知識圖譜輔助的verilog安全代碼生成方法,其特征在于,所述步驟s5具體實現過程為:通過代碼檢測方法檢測語法功能正確的verilog代碼,獲得verilog代碼硬件安全漏洞類型和漏洞所在位置信息,大語言模型根據代碼檢測方法的反饋信息調用圖檢索工具,大語言模型根據圖檢索工具從硬件安全漏洞知識圖譜中獲得的反饋信息修復漏洞,重復以上過程,直到生成的代碼通過代碼檢測方法檢測或達到設定的迭代次數,生成安全、語法正確和功能正確的verilog代碼。
7.根據權利要求6...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。