[發明專利]支持內嵌腳本語言的HDL代碼生成方法在審
| 申請號: | 202211116542.6 | 申請日: | 2022-09-14 |
| 公開(公告)號: | CN115455873A | 公開(公告)日: | 2022-12-09 |
| 發明(設計)人: | 陳生偉 | 申請(專利權)人: | 深存科技(無錫)有限公司 |
| 主分類號: | G06F30/323 | 分類號: | G06F30/323;G06F115/02;G06F115/08;G06F115/06 |
| 代理公司: | 無錫市匯誠永信專利代理事務所(普通合伙) 32260 | 代理人: | 曹慧萍 |
| 地址: | 214000 江蘇省無錫市*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 支持 腳本語言 hdl 代碼 生成 方法 | ||
1.一種支持內嵌腳本語言的HDL代碼生成方法,其特征在于,所述方法包括:
獲取HDL源代碼文件,讀取文件的每行HDL代碼;所述HDL源代碼文件中嵌入有Perl和/或Python腳本語言,所述腳本語言用于解釋和生成HDL代碼文件;
響應于讀取到HDL代碼行中內嵌的所述腳本語言的檢測標識,確定所述腳本語言的腳本類型,以及根據所述檢測標識和所述腳本類型生成目標腳本格式的隱藏可執行腳本文件;
調用API腳本庫執行所述隱藏可執行腳本文件,生成目標HDL代碼文件;所述API腳本庫中包含所有用于翻譯內嵌的所述腳本語言的庫函數;所述目標HDL代碼文件中不含內嵌的所述腳本語言,且包含有用于描述硬件電路的所有電路結構、參數和名稱的HDL代碼行。
2.根據權利要求1所述的方法,其特征在于,所述響應于讀取到HDL代碼行中內嵌的所述腳本語言的檢測標識,確定所述腳本語言的腳本類型,以及根據所述檢測標識和所述腳本類型生成目標腳本格式的隱藏可執行腳本文件,包括:
當讀取到內嵌的所述檢測標志時,對所述檢測標志進行編號,并根據所述檢測標志的類型確定所述腳本語言的腳本類型,以及確定腳本的語言類型;腳本類型分為單行腳本語言和多行腳本語言;
當指示所述腳本語言為單行腳本語言時,直接將所述單行腳本語言的行代碼提取,并根據編號和語言類型生成目標腳本格式的所述隱藏可執行腳本文件;
當指示所述腳本語言為多行腳本語言時,將當前位置行標記為起始行,并繼續讀取代碼行,直至讀取到檢測結束標志,所述檢測標記為多行腳本語言的結束標志;
基于所述檢測標志和所述結束標志提取行代碼,并根據編號和語言類型生成目標腳本格式的所述隱藏可執行腳本文件。
3.根據權利要求2所述的方法,其特征在于,所述調用API腳本庫執行所述隱藏可執行腳本文件,生成目標HDL代碼文件,包括:
調用所述API腳本庫執行生成的所述隱藏可執行腳本文件,通過庫函數對多行腳本語言或單行腳本語言進行翻譯,生成對應的HDL代碼片段;
根據所述檢測標志的編號順序,將所述HDL代碼片段對所述HDL源代碼文件中對應單行腳本語言進行替換或多行腳本語言進行替換,拼接生成所述目標HDL代碼文件。
4.根據權利要求3所述的方法,其特征在于,所述API腳本庫中至少包括有單腳本庫函數、多腳本庫函數、哈希數組數據和多維數組中的至少一種。
5.根據權利要求4所述的方法,其特征在于,當單行腳本語言為通用串行外圍設備SPI接口顯示指令時,基于所述單腳本庫函數生成所有外圍接口的信號輸入/出HDL行代碼;其中,所述信號輸入/出HDL行代碼包括接口名稱、輸入輸出類型和數據位寬中的至少一種。
當多行腳本語言為測試信號顯示指令時,基于所述多腳本庫函數生成所有測試信號的測試HDL行代碼,輸入/出HDL行代碼以及測試HDL行代碼用于在示波器上顯示硬件接口和測試信號的波形圖。
6.根據權利要求4所述的方法,其特征在于,當多行腳本語言中包含復用模塊數據時,確定其中的復用模塊數據、所有電路結構名稱和數量;所述復用模塊數據是各電路結構執行硬件電路功能必備的公共參數模板;
基于所述API腳本庫獲取所述復用模塊數據的公共參數,并根據電路結構名稱和數量生成對應電路結構的HDL行代碼;不同的硬件電路描述語言分別包含有各自電路結構完整的名稱、內容和參數,相互電路結構之間不存在復用的公共參數。
7.根據權利要求4所述的方法,其特征在于,當多行腳本語言中包含哈希數組時,確定對硬件接口或測試信號的名稱、數量和功能,調用哈希數組數據生成基于硬件接口或測試信號的HDL功能行代碼;其中,所述HDL功能行代碼包括片選指令、信號名稱、使能指令、功能指令、讀寫指令以及位寬指令中的至少一種。
8.根據權利要求1-7任一所述的方法,其特征在于,檢測標志以“//”起始,后續連接符號存以不超過4個占位符組成;
單行腳本語言的檢測標志至少包括“//:”、“//;”、“//|”和“//!”的至少一種;
多行語言腳本語言的檢測標志至少包括“//:{”和“//:Begin”中的至少一種;對應的檢測結束標志位為“//:}”和“//:End”;生成的隱藏可執行腳本文件的格式包括“.eperl.pl”或“.epython.py”。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深存科技(無錫)有限公司,未經深存科技(無錫)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211116542.6/1.html,轉載請聲明來源鉆瓜專利網。





