`define

语法格式

`define    A            12     //注意不加;不能忘记" ` "

作用区域

在整个工程中均有效,因为它是可以跨模块的定义


parameter 和 localparam

语法格式

parameter      A    =    16'd2600 ;   //不定义位宽的时候默认是32位

localparam     A     =    16'd2600;   //同上

作用区域

parameter 、localparam 只在定义的本模块内有效。

两者的区别是 parameter 可以进行参数例化,而 localparam 则不可以。

参数传递我将举下面这个例子进行说明

首先定义了一个模块 led_driver ,并且定义了一个参数 DATA ,代表了 led 灯的个数,此处代表有 7 个 led 灯

module led_driver (clk    ,rst_n,led   );
parameter   DATA = 7;  //定义一个参数
input clk,rst_n;  //输入
output [ DATA-1 : 0]  led;  //输出
............
endmodule

当要在顶层模块例化 led_driver 这个模块时,假设由于工程需要,要将 led 个数改为 4 个,

第一个方法 led_driver 内的 parameter 参数直接改为 3 。

另一种方法 在例化 led_driver 时,将参数 DATA 也进行例化,方法如下面这个代码

led_driver                     //被调用的模块
#(.DATA(4))                    // 参数例化
u_led_driver(                  //例化模块
                    .clk    (clk),.rst_n(rst_n),.led    (led) );


在实际应用中,如果想让 parameter 或 `define 作用于整个工程中,可以单独声明一个文件,并且用 `include 让每个文件都包含声明文件。

原文链接:http://www.cnblogs.com/aslmer/p/6022152.html

  

转载于:https://www.cnblogs.com/aslmer/p/6022152.html

parameter localparam define的区别相关推荐

  1. 如何巧妙的更改ip核中的参数 以及parameter localparameter,`define 的区别

    通过直接调用IP核可以节省很多功夫,Quartus II自带的宏功能模块LPM是如此,但是有时因为配置的不同IP核可能只在某些参数上发生了变化.因此我们只需要更改一些参数就可以大大提高IP核的可移植性 ...

  2. parameter与define 区别

    1.语法 声明: parameter xx = yy; `define XX YY 使用: xx `XX 2 .作用域 parameter  作用于声明的那个文件: `define  从编译器读到这条 ...

  3. const与define相比优点_const与#define的区别、优点

    const与#define的区别 编译器处理方式不同 define宏是在预处理阶段展开. 补充:预处理器根据以#开头的命令,修改原始的程序.比如我们常见的#include 命令告诉处理器读取系统头文件 ...

  4. C++中typedef和define的区别

    typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: ...

  5. typedef与#define宏区别

    先让我们了解一下typedef的功能,typedef简单来说就是给类型取一个别名: 如 typedef int New   那么int就有一个别名叫New了,以后size就和int这个类型一共用法了. ...

  6. C语言-typedef与#define的区别

    目录 1 typedef 1.1 将复杂的声明简单化 1.2 定义平台无关的类型 1.3 与struct的结合使用 1.4 typedef使用公式 2 typedef与#define的区别 2.1 执 ...

  7. C++ 中 const和define的区别

    来源网址:http://wujiangping.blog.163.com/blog/static/195182011201255115125205/ 请区别用#define命令定义的符号常量和用con ...

  8. enum的介绍以及和#define的区别

    在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是: 复制代码 #define MON 1 #define TUE 2 #define WED ...

  9. C语言typedef与#define的区别

    typedef和#define define 没有参加编译,在预处理的时候就被替换掉了. typedef参加编译和链接.typedef是重命名,可以为枚举结构体等等重新命名,提高代码整洁. 一.typ ...

最新文章

  1. 2020年人工神经网络第二次作业-参考答案第三题
  2. response.getWriter().write 传递中文乱码
  3. .net 根据书签往word中插入数据_word目录制作技巧:快速生成文档总目录和章节下子目录...
  4. 物料信息记录中几个常见的数据表
  5. 从桌面向手机移植Silverlight应用
  6. CentOS安装jdk和tomcat
  7. 终于,我读懂了所有Java集合——List篇
  8. 关于Cocos2d-x发布游戏的时候遇到的问题和解决
  9. SQL Server将DataTable传入存储过程(Table Value Parameter)
  10. @Autowired与@Resource用法
  11. java 删除文件夹及文件夹中的子文件
  12. 教你用易语言编写一个简单的电脑病毒
  13. html调取android手机录音并保存,html5网页录音插件Recorder
  14. 动态爱心表白代码(绝对炫酷)
  15. 计算机启动到安全模式,电脑正常开机会进入安全模式怎么办
  16. 《数据库系统工程师》备考指南
  17. *********ADO接口简介*********
  18. 【zookeeper】Apache curator优点介绍
  19. 房讯房屋租赁管理软件新版上线 专为房东朋友定制
  20. 锐龙R5 4500 怎么样 相当于什么水平

热门文章

  1. ★Kali信息收集~3.子域名系列
  2. 以架构师的眼睛看世界-Architect Inside
  3. Java---类加载
  4. Android开发--真机调试出现device offline提示
  5. DAO模式多表联查案例
  6. java中对集合操作的易错点01
  7. 第二十二章:动画(八)
  8. 解决Unable to create group (name already exists)
  9. [2019HDU多校第一场][HDU 6590][M. Code]
  10. POJ 2251 Dungeon Master