在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3007|回复: 15

[求助] verilog port 问题

[复制链接]
发表于 2019-10-10 15:05:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
楼主正在写一个ahb2apb 桥,其中顶层的port list,要有最大32组的apb slave端口,
现要求硬件可以配置slave 的个数, 楼主使用define 的方式,定义每一个slave 的port list
但发现需要定义32 个define 才行,代码写起来特别乱
请教各位,这种情况有什么好的方法来定义端口
发表于 2019-10-10 17:09:31 | 显示全部楼层
贴代码~~
发表于 2019-10-10 19:07:47 | 显示全部楼层
parameter写个二维数组不就行了?
 楼主| 发表于 2019-10-11 11:47:43 | 显示全部楼层


我的写法如下:但感觉 定义这么多define 太麻烦了
`ifdef SLAVE00
       input        [APB_DATA_WIDTH-1:0]    ps00_prdata,
       input                                ps00_pready,
       input                                ps00_pslverr,
       output logic                         ps00_psel,
`endif
`ifdef SLAVE01
       input        [APB_DATA_WIDTH-1:0]    ps01_prdata,
       input                                ps01_pready,
       input                                ps01_pslverr,
       output logic                         ps01_psel,
`endif
`ifdef SLAVE02

       input        [APB_DATA_WIDTH-1:0]    ps02_prdata,
       input                                ps02_pready,
       input                                ps02_pslverr,
       output logic                         ps02_psel,
`endif
`ifdef SLAVE03

       input        [APB_DATA_WIDTH-1:0]    ps03_prdata,
       input                                ps03_pready,
       input                                ps03_pslverr,
       output logic                         ps03_psel,
`endif


 楼主| 发表于 2019-10-11 11:50:39 | 显示全部楼层


iknowzxc 发表于 2019-10-10 19:07
parameter写个二维数组不就行了?


我明白您说的parameter 的数组, 但不明白您怎么用这个parameter 简化的设计,能否举个例子
发表于 2019-10-11 12:21:00 | 显示全部楼层
verilog没那么智能,在用宏替代~
 楼主| 发表于 2019-10-11 13:37:30 | 显示全部楼层


A1985 发表于 2019-10-11 12:21
verilog没那么智能,在用宏替代~


您说的用宏代替,和我写的有区别吗, 我那种写法感觉太反锁了,代码可读性非常差
发表于 2019-10-11 14:38:36 | 显示全部楼层
module xxxx
#(
parameter SLV_NUM = 3
) (

       input        [APB_DATA_WIDTH-1:0]    prdata[0:SLV_NUM-1],
       input                               pready[0:SLV_NUM-1],
       input                                pslverr[0:SLV_NUM-1],
       output logic                         psel[0:SLV_NUM-1],

发表于 2019-10-11 15:49:13 | 显示全部楼层
我见过的设计,基本就是你这种写的,ifdef或者宏
 楼主| 发表于 2019-10-12 08:49:41 | 显示全部楼层


iknowzxc 发表于 2019-10-11 14:38
module xxxx
#(
parameter SLV_NUM = 3


您这种写法,看起来是简洁多了,但是我有个疑问, 您上层例化的时候,要用generate ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /3 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 15:15 , Processed in 0.042777 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表