久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4832|回復: 0
打印 上一主題 下一主題
收起左側

Verilog中parameter和define的區別

[復制鏈接]
跳轉到指定樓層
樓主
ID:105323 發表于 2016-2-23 03:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1、語法
  

聲明:

  

parameter data = 8‘d14;

  

`define data 8’d14

  

使用:
       data

  

`data

  

  

2、作用域

  

parameter 作用于聲明的那個文件;`define 從編譯器讀到這條指令開始到編譯結束都有效,或者遇到`undef命令使之失效。

  

如果想讓parameter或`define作用于整個項目,可以將如下聲明寫于單獨文件,并用`include讓每個文件都包含聲明文件:

  

`ifndef data

  

`define data  8’d14

  

或者

  

parameter data = 8‘d14;

  

`endif

  

`define也可以寫在編譯器最先編譯的文件頂部。通常編譯器都可以定義編譯順序,或者從最底層模塊開始編譯。因此寫在最底層就可以了。

  

  

3、區別

  

parameter可以用作例化時的參數傳遞。

  

在使用狀態機時候區別挺大的。狀態機的定義可以用parameter 定義,但是不推薦使用`define 宏定義的方式,因為'define 宏定義在編譯時自動替換整個設計中所定義的宏,而parameter 僅僅定義模塊內部的參數,定義的參數不會與模塊外的其他狀態機混淆。例如一個工程里面有兩個module 各包含一個FSM,如果設計時都有IDLE 這一名稱的狀態,如果使用'define 宏定義就會混淆起來,如果使用parameter 則不會造成任何不良影響。

  

一旦`define指令被編譯,其在整個編譯過程中都有效。例如,通過另一個文件中的`define指令,定義的常量可以被其他文件中被調用。直到遇到`undef;parameter只在定義的文件中有效,在其它文件中無效。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品一区二区三区在线观看 | 黄色片中文字幕 | 超碰在线国产 | 黄色片91 | 亚洲免费精品视频 | 狠狠躁夜夜躁人爽 | 91丨九色丨蝌蚪丨丝袜 | 爱爱短视频 | 黄色小视频免费观看 | 99精品久久久久久 | 黄色a一级片 | 国产精品成人免费视频 | 亚洲欧美综合 | 波多野结衣乳巨码无在线观看 | 欧美不卡一区二区三区 | 日韩在线观看中文字幕 | 久久久久久国产 | 午夜在线观看视频 | 日韩一区二区精品 | 一区二区三区久久久 | 一级片免费网站 | 黄色大片av | 国产激情视频在线 | 国产主播av | 日韩一区二区三区在线播放 | 日韩一级片视频 | 日韩1区2区| 欧美一级二级三级 | 亚洲精品乱码久久久久久 | 国产成人精品一区二区三区视频 | 性巴克成人免费网站 | 久久99九九| 色呦呦国产精品 | 日韩欧美精品 | 成人深夜 | 欧美日韩亚洲一区 | 精品在线免费视频 | 国产精品成人一区二区网站软件 | 不卡的av在线 | 日韩欧美一级 | 999国产视频 |