集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 955|回复: 2

`define、parameter、localparam三者的区别

[复制链接]
d643189658 发表于 2017-8-8 22:38:16 | 显示全部楼层 |阅读模式

对于这三个东东,各有用处,仅做点小笔记。
`define:
可以跨模块的定义,写在模块名称上面,在整个设计工程都有效。一旦‘define指令被编译,其在整个编译过程中都有效。例如,通过另一个文件中的`define指令,定义的常量可以被其他文件中被调用。直到遇到 ‘undef;
`define data 8’d14
使用时则为
`data
parameter:
本module内有效的定义,可用于参数传递;
在模块内部定义时无法进行参数传递,
若在模块名后照下面这样写则可以进行传递
module rxtx
#(parameter baud = 9600,
mhz = 25
)
(
clk,
rst,
rx
);
调用此模块的时候可以像端口信号传递一样进行参数传递
rxtx
#( .baud ( 9600 ),
.mhz ( 50 )
)
u_uart (
.clk(clk_50m),
.rst(~HRST_N),
.rx(rx)
);
localparam:
本module内有效的定义,不可用于参数传递;localparamcannot be used within the module port parameter list.
一般情况下,状态机的参数都是用localparam的。
芙蓉王 发表于 2017-8-9 09:30:26 | 显示全部楼层
`define、parameter、localparam三者的区别
zhangyukun 发表于 2017-8-9 09:34:50 | 显示全部楼层

`define、parameter、localparam三者的区别
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2025-4-20 12:37 , Processed in 0.061394 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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