我们在很多情况下都需要多次调用具有相同功能的门或者开关实例。这些实例之间功能完全相同,区别仅在于它们的信号端口所连接矢量索引值不同。
为了指定一个实例数组,应在实例名称后加上范围说明。范围应由两个常量表达式指定,即左手索引(lhi)和右手索引(rhi),以冒号分隔,并用一对方括号括起来。[lhi:rhi]的范围表示 abs(lhi-rhi)+1 个实例的数组。两个常量表达式都不要求为零,也不要求 lhi 大于 rhi。如果两个常量表达式相等,则只生成1个实例。
实例数组应具有连续的范围。在声明实例数组时,一个实例标识符只能与一个范围相关联。
且范围说明应为可选项,如果没有指定范围,则只能创建1个实例。说了这么多,博主和小伙伴们一样,头都晕了,咱们举个例子一看就明白了~
例如下面的声明是非法的:
nand #2 t_nand[0:3] ( ... ), t_nand[4:7] ( ... ) ;
以下声明才是正确的,它可以声明为一个包含8个实例的数组,也可以声明为2个具有唯一名称的数组,每个数组包含四个元素:
nand #2 t_nand[0:7]( ... );
nand #2 x_nand[0:3] ( ... ), y_nand[4:7] ( ... );
点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!