`define

语法格式

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

作用区域

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


parameter 和 localparam

语法格式

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

localparam     A     =    'd2600;   //同上

作用区域

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

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

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

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

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

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

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

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

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

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

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

  

parameter localparam define的区别的更多相关文章

  1. 在php中定义常量时,const与define的区别?

    问]在php中定义常量时,const与define的区别?  [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很 ...

  2. typedef 和 #define 的区别

    本文已迁移至: http://www.danfengcao.info/c/c++/2014/02/25/difference-between-define-and-typedef.html typed ...

  3. typedef与#define的区别

    1.  typedef typedef故名思意就是类型定义的意思,但是它并不是定义一个新的类型而是给已有的类型起一个别名,在这一点上与引用的含义类似,引用是变量或对象的别名,而typedef定义的是类 ...

  4. typedef 和define的区别

    总结一下typedef和#define的区别 1.概念 #define 它在编译预处理时进行简单的替换,不作正确性检查.它是预处理指令. typedef 它在自己的作用域内给一个已经存在的类型一个别名 ...

  5. typedef 与define 的区别

    typedef和#define的用法与区别   typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译 ...

  6. parameter和argument的区别

    根据网上一些资料,对parameter和argument的区别,做如下的简单说明.1. parameter是指函数定义中参数,而argument指的是函数调用时的实际参数.2. 简略描述为:param ...

  7. typedef和#define的区别

    转自:http://www.cnblogs.com/kerwinshaw/archive/2009/02/02/1382428.html 一.typedef的用法在C/C++语言中,typedef常用 ...

  8. 学习笔记--【转】Parameter与Attribute的区别&servletContext与ServletConfig区别

    原文链接http://blog.csdn.net/saygoodbyetoyou/article/details/9006001   Parameter与Attribute的区别   request. ...

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

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

随机推荐

  1. vuejs组件参数校验

    父组件向子组件传递一些参数,那么子组件有权对这些参数进行一个校验,这个就是组件参数校验 需求:父组件传递过来的必须是个字符串,这个要怎么去校验呢 <div id='root'> <c ...

  2. 2017.10.20 jsp用户登陆界面连接数据库

    用户登陆界面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8 ...

  3. N76E003---看门狗

    看门狗的设置 比较简单,根据芯片手册上的说明进行设置.值得一提的是设置看门狗的寄存器是保护寄存器,所以在写寄存器的时候要解除保护 void wtd_init(void) { TA=0xAA; TA=0 ...

  4. SpringBoot发布WAR启动报错:Error assembling WAR: webxml attribute is required

    Spring Boot发布war包流程: 1.修改web model的pom.xml <packaging>war</packaging> SpringBoot默认发布的都是j ...

  5. sup inf max min

    来自这里,觉得定义和举例都是最清楚的.http://www.math.illinois.edu/~ajh/347.summer14/completeness.pdf

  6. javaWeb CSS 图像签名

    <html> <head> <meta charset="utf-8" /> <title>CSS布局之图像签名</title ...

  7. lincode 680 Split String

    Split String    描述 笔记 数据 评测 Give a string, you can choose to split the string after one character or ...

  8. gd库 给底图写入文字问题

    png-8的图片 设置颜色会返回false,换成png-24的就可以了

  9. 懒下载软件,一行代码连接wifi^_^

    按键盘的windows+R,输入cmd,回车键 设置语句netsh wlan set hostednetwork mode=allow ssid=user key=possword 按回车键 启动语句 ...

  10. 还在使用pdf、word简历?简单五步实现github托管个人逼格简历

    写在前面: 什么是git.github? git 版本控制工具 github 通过git工具做的版本控制的项目托管平台 项目开发肯定不止一个程序猿,多个程序猿针对同一个文件进行代码读写操作时,是先保存 ...