FPGA模塊越寫越多,規范性和可移植性卻堪憂。要是有一個工具可以根據模塊接口描述文件生成verilog和c頭文件就好了。苦苦搜尋找到了幾款免費的工具,SystemRDL、cheby和rggen。筆者學習了下cheby和reksio,reksio是gui版的cheby,這是是歐洲核子研究中心 (CERN)的控制電子和機電一體化 (CEM) 部門開源的接口生成工具,使用體驗非常棒,直接看效果。
1、使用reksio圖形軟件描述寄存器屬性
-
Noders tree面板中是寄存器的樹形結構描述,可以靈活添加各種對象,如block、reg
-
Attributes面板是每個對象具有的屬性,可以在此界面修改屬性
-
右下角的Children overview中是子對象的的整體預覽
2、生成sv格式接口包裝
使用cheby命令自動生成sv代碼,sdma.sv中將axi總線命令轉換成了寄存器的讀寫
cheby --hdl=sv --gen-hdl=sdma.sv -i sdma.yaml
3、生成c頭文件
使用cheby命令自動生成c頭文件代碼
cheby --gen-c=sdma.h -i sdma.yaml
4、生成模塊接口文檔
這個功能就niub了,能直接生成接口文檔,再也不用擔心接口文檔寫錯了。
cheby --gen-doc=sdma.html -i sdma.yaml
最后,附上以上工具源碼位置
https://gitlab.cern.ch/be-cem-edl/common/cheby
https://gitlab.cern.ch/Cheburashka/reksio