引言
寄存器模塊在集成電路SOC和IP開發中是常見的模塊,主要是讓用戶軟件可以操作硬件,是軟件和硬件的橋梁,也是固件開發者和終端軟件開發者最關注的部分;
寄存器模塊的一端跟芯片內部總線相連,如AXI/AHB/APB等,另一端則直接跟模塊的核心相連,通過這個橋梁,用戶軟件可以配置、操作硬件,也可以讀取硬件狀態;
圍繞寄存器模塊,工程師有許多工作需要做,比如硬件源代碼,驗證UVM代碼,驗證C代碼,C頭文件,Trace32寄存器描述文件,開發文檔,用戶手冊等等;這些工作重復且有規律,非常適合用自動化工具來生成;
寄存器工具
開發一個通用的寄存器工具,需要滿足以下幾個方面的需求,才能適應更廣的使用場景:
數據文件格式的多樣性,如Excel、XML、ipxact、批處理命令文件,其它文本等
數據文件之間可以相互轉換
數據輸入的多樣性,如圖形界面、數據文件、命令行等
支持更多數據類型的數據模型
豐富的輸出文件類型,且支持用戶擴展
對用戶輸入數據的有效性進行驗證
支持豐富的數據操作,如合并、分拆、復制、移動、刪除、重復、查找、過濾、批處理等
可靈活配置的硬件源代碼生成,如接口類型,同步異步等
支持豐富的寄存器類型和位域類型,包括關聯型的和獨立型
RegFab
RegFab是筆者開發的通用寄存器工具,遵循以上全部原則,力求為工程師打造一個好用的工具,便捷,高效; 為了支持第三方IP,RegFab支持標準的ipxact文件,intel的XML文件,SVD文件;對于自研IP模塊,支持固定的Excel模板,或者用戶使用工具提供的命令寫一個批處理文件,用命令創建寄存器及一些配置信息;另外工具還提供GUI界面創建、編輯寄存器內容,直觀明了;各個文件格式之間可以相互轉換,方便對外交流; RegFab內部數據模型除了寄存器、位域,還有常數、參數、寄存器組、接口、復位、訪問、枚舉、存儲器、中斷等模型,模型的屬性基本上涵蓋了全部寄存器相關的信息,力求可以處理所有跟寄存器有關的需求; 寄存器工具最重要的部分是輸出特定格式的文件,目前RegFab支持下面幾種文件類型:
Verilog寄存器模塊源代碼
HTML格式的開發文檔,適合內部使用
驗證用UVM代碼
驗證用C語言代碼
C語言的頭文件,定義一些宏、結構體、函數
軟件開發工具Trace32用的寄存器描述文件
docx格式的寄存器用戶手冊
當然,除了這些工具自帶的文件類型,用戶可以擴展自己的文件類型,RegFab支持使用模板機制來做擴展,包括擴展不同排版風格的docx用戶手冊; Verilog源代碼是寄存器工具最重要的輸出文件,它包含以下內容:
可選擇的接口類型:AXI、AHB、APB、MEM
可選擇地生成輸入/輸出同步器
可選擇的同步復位和異步復位,以及復位掩膜
可選擇的豐富寄存器類型,及位域類型
除了以上的基本功能外,RegFab還開發了一些數據級的功能,以滿足開發過程中所遇到的困難和需求,可以批量執行一些操作,比如以下一些例子:
檢查用戶輸入數據的有效性,比如:地址重疊,信息缺失,類型沖突等
將一個地址范圍內的寄存器移動到另外一個地址段
批量修改滿足一定名字匹配規則的寄存器、位域,或者其它類型的屬性
相同類型的寄存器以一定地址間隔重復一些次數,只有名字后綴上的差別,其它完全相同
將多個模塊的寄存器文件合并起來產生輸出文件
對于工具的使用形式,RegFab提供以下幾種工作模式,最大程度滿足各類工程師的工作習慣:
GUI界面模式
命令行模式
命令行交互模式
批處理文件模式
總結
在大規模集成電路產品開發中,龐大的硬件規模必然對應眾多的寄存器模塊,隨之而來的就是巨大的工作量 ;所以出現自動化的寄存器工具是自然而然的想法,工具的開發難度不算高,帶來的好處卻是肉眼可見的;一款想工程師之所想,憂工程師之所憂,功能強大,配置靈活,使用方便的寄存器工具,也是工程師們喜聞樂見的心頭好!
審核編輯:黃飛
-
集成電路
+關注
關注
5382文章
11396瀏覽量
360952 -
寄存器
+關注
關注
31文章
5325瀏覽量
120052
原文標題:集成電路開發中的自動化工具 - 寄存器工具
文章出處:【微信號:Rocker-IC,微信公眾號:路科驗證】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論