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