集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1845|回复: 3

关于Verilog的常数和参数

[复制链接]
晓灰灰 发表于 2018-2-27 11:45:11 | 显示全部楼层 |阅读模式
关于Verilog的常数和参数:
1. 常参不分是IEEE 2001版之前的一个问题。常数constant,是用于电路逻辑内部固定不变的一个数值,用于内部逻辑的实现;参数parameter,是用于电路模型的LPM实现时,现场定制的数值,是一个可变,用于交换的数值。
2. 参数这在高级语言中是一个基本语法规则,例如C语言中的函数参数(值交换,值引用);常数在高级语言中用于内部封装的固定数值,是不允许外部调用和修改的。
3. 可是在2005版Verilog之前,这个问题却被忽视了(有人指出是菲尔莫比Phil Moorby团队的商业行为所致),常参不分导致本应该被安全封装的常数,却作为参数出现在LPM模式使用者面前,使得LPM模块的安全性能很差,也不利于知识产权保护。
4. 于是,2005发布的修订后的Verilog,加入localparam作为常数定义。
5. 我们知道,在写状态机的时候,状态机的变量分配,应该是一个被封装的常数,是不可以被这段代码的使用者修改的,也不需要被修改。如果在2005年之前,作者这样写是不得已。2005之后,一定要将常数封装到localparam中,避免代码使用者有意无意修改,导致错误发生。也是知识产权保护的措施之一。
6. 从LPM代码使用者角度出发,参数列表中,仅包含可以被引用传递(现场定制)的参数,而不是一大段列出包含常数的参数,要简单方便的多。
 楼主| 晓灰灰 发表于 2018-2-27 13:41:06 | 显示全部楼层
2005发布的修订后的Verilog,加入localparam作为常数定义。
zhangyukun 发表于 2018-2-28 10:31:54 | 显示全部楼层
关于Verilog的常数和参数
大鹏 发表于 2022-5-23 14:23:19 | 显示全部楼层
关于Verilog的常数和参数
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2024-12-24 10:08 , Processed in 3.721594 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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