parameter localparam define的区别
`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的区别的更多相关文章
- 在php中定义常量时,const与define的区别?
问]在php中定义常量时,const与define的区别? [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很 ...
- typedef 和 #define 的区别
本文已迁移至: http://www.danfengcao.info/c/c++/2014/02/25/difference-between-define-and-typedef.html typed ...
- typedef与#define的区别
1. typedef typedef故名思意就是类型定义的意思,但是它并不是定义一个新的类型而是给已有的类型起一个别名,在这一点上与引用的含义类似,引用是变量或对象的别名,而typedef定义的是类 ...
- typedef 和define的区别
总结一下typedef和#define的区别 1.概念 #define 它在编译预处理时进行简单的替换,不作正确性检查.它是预处理指令. typedef 它在自己的作用域内给一个已经存在的类型一个别名 ...
- typedef 与define 的区别
typedef和#define的用法与区别 typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译 ...
- parameter和argument的区别
根据网上一些资料,对parameter和argument的区别,做如下的简单说明.1. parameter是指函数定义中参数,而argument指的是函数调用时的实际参数.2. 简略描述为:param ...
- typedef和#define的区别
转自:http://www.cnblogs.com/kerwinshaw/archive/2009/02/02/1382428.html 一.typedef的用法在C/C++语言中,typedef常用 ...
- 学习笔记--【转】Parameter与Attribute的区别&servletContext与ServletConfig区别
原文链接http://blog.csdn.net/saygoodbyetoyou/article/details/9006001 Parameter与Attribute的区别 request. ...
- C++ 中 const和define的区别
来源网址:http://wujiangping.blog.163.com/blog/static/195182011201255115125205/ 请区别用#define命令定义的符号常量和用con ...
随机推荐
- vuejs组件参数校验
父组件向子组件传递一些参数,那么子组件有权对这些参数进行一个校验,这个就是组件参数校验 需求:父组件传递过来的必须是个字符串,这个要怎么去校验呢 <div id='root'> <c ...
- 2017.10.20 jsp用户登陆界面连接数据库
用户登陆界面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8 ...
- N76E003---看门狗
看门狗的设置 比较简单,根据芯片手册上的说明进行设置.值得一提的是设置看门狗的寄存器是保护寄存器,所以在写寄存器的时候要解除保护 void wtd_init(void) { TA=0xAA; TA=0 ...
- SpringBoot发布WAR启动报错:Error assembling WAR: webxml attribute is required
Spring Boot发布war包流程: 1.修改web model的pom.xml <packaging>war</packaging> SpringBoot默认发布的都是j ...
- sup inf max min
来自这里,觉得定义和举例都是最清楚的.http://www.math.illinois.edu/~ajh/347.summer14/completeness.pdf
- javaWeb CSS 图像签名
<html> <head> <meta charset="utf-8" /> <title>CSS布局之图像签名</title ...
- lincode 680 Split String
Split String 描述 笔记 数据 评测 Give a string, you can choose to split the string after one character or ...
- gd库 给底图写入文字问题
png-8的图片 设置颜色会返回false,换成png-24的就可以了
- 懒下载软件,一行代码连接wifi^_^
按键盘的windows+R,输入cmd,回车键 设置语句netsh wlan set hostednetwork mode=allow ssid=user key=possword 按回车键 启动语句 ...
- 还在使用pdf、word简历?简单五步实现github托管个人逼格简历
写在前面: 什么是git.github? git 版本控制工具 github 通过git工具做的版本控制的项目托管平台 项目开发肯定不止一个程序猿,多个程序猿针对同一个文件进行代码读写操作时,是先保存 ...