芯片项目之BUSMATRIX总线矩阵生成工具应用

电子说

1.3w人已加入

描述

在实际的芯片项目中,AMBA中AXI/AHB/APB BUSMATRIX 总线矩阵被普遍应用。对于这些BUSMATRIX如果 自己手动写,会花费很多的工作量。通常我们对这些BUSMATRIX是通过工具进行配置和生成。

下面介绍一套BUSMATRIX总线矩阵生成工具 gen_abma.

gen_amba是一组用于生成AMBA总线Verilog-HDL的程序,其中包括AMBA AXI、AMBA AHB和AMBA APB。

gen_amba_axi:用于多主机和多从机的AMBA AXI总线生成器,支持AMBA AXI4和AXI3。

gen_amba_ahb:用于多主机和多从机的AMBA AHB总线生成器。

gen_amba_apb:用于生成AMBA AXI或AHB的AMBA APB总线桥接器生成器。

gen_amba_axi

它生成AMBA AXI switch

$ ./gen_amba_axi -h
[Usage] ./gen_amba_axi [options]
-M,--master=num   num of masters (default: 2)
-S,--slave=num    num of slaves  (default: 2)
-D,--module=str   module name (default: "amba_axi_mXsY")
-P,--prefix=str   prefix of module (default: none)
-O,--output=file  output file name (stdout if not given)
-3,--axi3         force to use AXI3 (AIX4 by default, if not given)
-g,--verbose=num  verbose level  (default: 0)
-v,--version      print version
-l,--license      print license message

 

 

-h print help message

'--prefix'选项用于在内部模块中使用前缀,这样可以通过防止多个定义模块的警告在同一设计中使用多个AXI总线。

'--axi3'选项强制生成AMBA AXI3,该选项使用'AxLENG[3:0]'、'AxLOCK[1:0]'和'WID[..]',而不使用'--axi3'选项时,'gen_amba_axi'生成AMBA AXI4。

状态机

gen_amba_ahb

这个产生AMBA AHB bus.

 

 

$ ./gen_amba_ahb -h
[Usage] ./gen_amba_ahb [options]
-T,--lite         AMBA AHB-lite
-M,--master=num   num of masters (default: 2)
-S,--slave=num    num of slaves  (default: 2)
-D,--module=str   module name (default: "amba_ahb_mXsY")
-P,--prefix=str   prefix of module
-O,--output=file  output file name (stdout if not given)
-g,--verbose=num  verbose level  (default: 0)
-v,--version      print version
-l,--license      print license message
-h                print help message

note: amba_ahb_lite_s? for -M 1

 

 

'--prefix'选项用于在内部模块中使用前缀,这使得可以在同一设计中使用多个AHB总线,通过防止多个定义模块的警告。

状态机

gen_amba_apb

这个产生 AMBA AHB2APB 或者 AXI2APB

 

 

$ ./gen_amba_apb -h
[Usage] ./gen_amba_ahb [options]
-X|H,--axi|ahb    make "axi_to_apb" or "ahb_to_apb" (axi if not given)
-S,--slave=num    num of APB ports  (default: 2)
-D,--module=str   module name (default: "axi_to_apb_sX" or "ahb_to_apb_sX")
-P,--prefix=str   prefix of sub-module name (none if not given)
-O,--output=file  output file name (stdout if not given)
-g,--verbose=num  verbose level  (default: 0)
-v,--version      print version
-l,--license      print license message
-h                print help message

 

 

'--prefix'选项使用前缀为内部模块命名,从而可以在同一设计中使用多个APB总线,并防止多个定义模块的警告。

状态机

尝试下效果

AXI BUSMATRIX 接口信息

状态机

AXI内部部分状态机

状态机

AHB2APB接口信息

状态机

AHB2APB内部部分状态机

状态机

审核编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分