![芯片验证调试手册:验证疑难点工作锦囊](https://wfqqreader-1252317822.image.myqcloud.com/cover/927/47548927/b_47548927.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.1.10 parameter、localparam和const有什么联系和差别?
相比于localparam,parameter可以在实例例化时从外部修改。parameter值的修改,可以在实例例化时通过#以order list或name list的方式来完成,也可以通过defparam赋值语句来实现。
localparam是局部参数,无法再次修改,自然也不能通过在实例例化时从外部修改。localparam在赋值时可以引用parameter。
parameter与localparam都是在elaboration时确定的,而const常量则是在仿真时确定的。与localparam类似的地方在于,const一旦定义和初始化也就无法再修改它的值。
关键词:
parameter,localparam,const
避坑指南:
parameter的值除了在设计代码中给定,也可以在编译时通过添加与参数修改有关的选项来给定(也可以覆盖设计代码中的给定parameter值),但它们的特征都会在elaboration阶段确定下来,与parameter有关的设计结构、数据位宽、逻辑行为等也因此都会在编译阶段确定下来。
const常量虽然在代码中不能再次对其进行赋值,但仍然可以通过在仿真时的force处理来修改它的值,继而影响与其相关的逻辑行为。需要注意的是,不能通过force来修改parameter和localparam的数值。
参考代码:sv_para_localpara_const_diff.sv
![](https://epubservercos.yuewen.com/563682/26947507002660206/epubprivate/OEBPS/Images/txt002_14.jpg?sign=1739285748-ch1uZpuEgL1OYqoSTEWGk8vZKaJGEiOM-0-8b96e186a4b0a6b7e688e1ac0f71e672)
![](https://epubservercos.yuewen.com/563682/26947507002660206/epubprivate/OEBPS/Images/txt002_15.jpg?sign=1739285748-y14g6pGfCa2rhBAHAPrnJ5uxQAa4rMKV-0-dd72f9a6852b65985f5b019d5c178da7)
阅读手记: