在Modelsim 仿真中出现报错 a parameter override is not allowed for localparam“xxxx“.

报错提示如下:

本人错误代码大致如下:

在实例化中,直接确定了A,B两个值,并在后面定义了C = B/A

uart_rx
#
(
    .A    ('d9600),
    .B    ('d50_000_000)
)
parameter    C = B/A;

在仿真文件下,想将C的值重定义为52,编译通过,但仿真报错

defparam    .uart_rx_inst.C = 52;

错误的整体代码:

uart_rx
#
(
    .A    ('d9600),
    .B    ('d50_000_000)
)
parameter    C = B/A;

defparam    .uart_rx_inst.C = 52;//此句代码在仿真文件中

修改方法:

1.在.v文件中,对A,B进行常量定义,并将他们实例化

parameter    A = 'd9600,
             B = 'd50_000_000;
parameter    C = B/A;

uart_rx
#
(
    .A    (A),
    .B    (B)
)

2.在仿真文件中,通过修改B的值来间接修改C的值,将B缩小,即是将C缩小

defparam    .uart_rx_inst.B = 500_000;

修改后整体代码如下:

parameter    A = 'd9600,
             B = 'd50_000_000;
parameter    C = B/A;

uart_rx
#
(
    .A    (A),
    .B    (B)
)

defparam    .uart_rx_inst.B = 500_000;//此句代码在仿真文件中

即可通过仿真,并将C的值修改完成

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值