集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1649|回复: 3

paramter 和 localparam 有什么区别?

[复制链接]
晓灰灰 发表于 2018-4-27 11:46:54 | 显示全部楼层 |阅读模式
这是一个Verilog中有争议的问题,即Parameter即作为常数,也作为参数使用是否合理合法的问题。

在IEEE 2005标准之前,Verilog就是这样做的。但常数不仅需要安全的封装,而且还涉及知识产权(IP),常数参数不区分带来很多质疑,随这EDA规模发展,IP意识加强,常数更需要安全,因此IEEE在2005之后,加入localpara保留字,用于定义常数。
常数用于定义当前工程和文件中那些固定不变的变量。而参数则是可以用作LPM交换的数值,类似于C语言中的形式参数。Verilog中的代码模型被重复引用时,使用LPM可以根据现场需要,修改这些参数进行定制。

显然常数是不需要被传递出去,不需要也不允许被现场定制的。在2005版Verilog之前,常数参数不分的情况下,重用代码的使用者和重用代码的设计者可能不是同一个人(或团队),这样,很容易造成不明内部细节的使用者,不经意的修改常数,使得原本稳定的系统出问题,并反馈给该重用代码的设计者。

另外一种情况,或更严峻的情况是,IP核的复杂性和成本都在增加。保护IP的意识在争强,而攻击破解IP的人和团队也开始出现。这就使得IP作者必须保护自己的代码,常数如果作为参数传递出去,是一个非常重要的攻击漏洞,当然要补上。

因此,从现在开始,我们要将常数封装好,保护好自己的代码。
 楼主| 晓灰灰 发表于 2018-4-27 11:50:02 | 显示全部楼层
paramter 和 localparam 有什么区别?
zhangyukun 发表于 2018-4-28 09:05:44 | 显示全部楼层
paramter 和 localparam 有什么区别
阿朋 发表于 2018-4-30 22:21:58 来自手机 | 显示全部楼层
paramter 和 localparam 有什么区别
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-2 16:42 , Processed in 0.058412 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表