色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Verilog HDL中常用預編譯命令介紹

FPGA之家 ? 來源:時沿科技 ? 作者:NemoYxc ? 2022-03-15 11:24 ? 次閱讀

“ 此小節中介紹Verilog HDL中提供的常用預編譯命令:`define ;`timescale ;`include ;`ifdef 、`elsif、`endif 。”

01、時間尺度`timescale

`timescale命令用于在文件中指明時間單位和時間精度,通常在對文件進行仿真時體現。EDA工具可以支持在一個設計中可根據仿真需要在不同模塊里面指定不同的時間單位。如模塊A仿真的時間單位為皮秒(ps),模塊B仿真的時間單位為納秒(ns)。使用`timescale命令語句格式如下:

`timescale 《時間單位》 / 《時間精度》

使用時注意《時間單位》和《時間精度》必須是整數,且時間精度不能大于時間單位值。

其中時間單位是定義仿真時間和延遲時間的基準單位;時間精度是定義模塊仿真時間的精確程度的,又被稱為取整精度(在仿真前,被用來對延遲的時間值進行取整操作,例程中會對此進行介紹)。如果在同一個設計中,出現多個`timescale命令,工具會采用最小的時間精度值來決定仿真的時間單位。

下面舉例說明`timescale用法。

`timescale 1ns / 1ps:此命令已定義模塊中的時間單位為1ns,即仿真模塊中所有的延遲時間單位都是1ns的整數倍;定義了模塊的時間精度為1ps,即仿真模塊中延遲單位可以指定到小數點后3位,小數超過3位會進行取小數點后3位的操作。

02、宏定義`define

在設計中,為了提高程序可讀性和簡化程序描述,可以使用指定的標識符來代替一個長的字符串,或者使用一個簡單的名字來代替沒有含義的數字或者符號,此時需使用到宏定義命令`define。它的使用形式如下:

`define signal(宏名) string(宏內容)

在設計中進行了以上聲明后,在與編譯處理時,在此命令后程序中所有的signal都替換成string,此過程稱為“宏展開”。具體使用方法如下:

例1 :`define LENGTH 16

reg[ `LENGTH–1 : 0 ] writedata;//即定義reg[15:0]writedata;

例2 :`define expression a+b+c

assign data = `expression + d ; // 經宏展開之后assign //add_data = a+b+c+d;

例3 :`define A a+b

`define B c+`A

assign data = `B ; // 即data = c + a + b;

03、文件包含指令`includ

C語言中聲明頭文件很類似。其一般形式為:`include “文件名”

例:

文件para.v有一個宏定義 `defineA 2+3

test.v文件中可以直接調用

`timescale1ns/1ps`include"para.v"`include"para2.v"module test(    input    wire          clk,  outputreg[7:0]result);  always@(posedge  clk)    beginresult<=?`A+10;endendmodule

仿真結果如下:

e20d57bc-9645-11ec-952b-dac502259ad0.png

關于“文件包含的幾點說明”:

  1. 一個`include只能指定一個包含文件;

  2. `include中的文件名可以是相對路徑,也可以是絕對路徑(ISE中調用Modelsim仿真的時候得用絕對路徑,否則Modelsim會報錯);

  3. 如果文件1包含文件2,而文件2要用到文件3的內容,那么在文件1中用`include命令分別包含文件2和文件3文件3在文件2的前面

例:

para.v: `define A 2+3

para2.v : `define B `A+2

test.v中:

`timescale 1ns / 1ps`include"para.v"`include  " para2.v"module test(     input    wire          clk,       output    reg    [7:0]    result   );  always@(posedge  clk)    beginresult<=?`B+10;    endendmodule

仿真結果如下所示:

e2279230-9645-11ec-952b-dac502259ad0.png

04、 條件編譯指令(`ifdef、`elsif、`endif)

條件預編譯指令有如下幾種形式:

1. `ifdef宏名

程序段1

`elsif

程序段2

`endif

當宏名被定義,則對程序段1進行編譯,程序段2被忽略;否則編譯程序段2,程序段1倍忽略。

`ifdef宏名

程序段1

`endif

其中程序段可以是語句組也可以是命令行

例:

`timescale1ns/1ps`defineMODE_ADD`defineMODE_ENABLEmodule test_add(    input                            clk,input    rst_n,    output  reg     [ 15 : 00 ]      data_cal,    output  reg     [ 15 : 00 ]      data_cal2  );wire[15:0]data;  `ifdef  MODE_ADD    always@(posedge  clk  or  negedge  rst_n) begin      if(!rst_n)        data_cal    <=    1'b0;      else         data_cal    <=    data_cal  + 16'd100;   end  `elsif   MODE_ADD2    always@(posedge  clk  or  negedge  rst_n) begin      if(!rst_n)        data_cal    <=    1'b0;      else        data_cal    <=    data_cal  + 16'd200;       end  `endif
  `ifdef  MODE_ENABLE      `define    M    10  `elsif   MODE_ENABLE2      `define    M    20`endif  always@(posedge  clk  or  negedge  rst_n) begin    if(!rst_n)      data_cal2  <=    1'b0;    else      data_cal2  <=    `M;endassigndata=`M;endmodule

仿真結果如下:

e25366e4-9645-11ec-952b-dac502259ad0.png

如果將:

`defineMODE_ADD`defineMODE_ENABLE改成`defineMODE_ADD2`defineMODE_ENABLE2

仿真結果如下:


e27a6294-9645-11ec-952b-dac502259ad0.png

審核編輯:郭婷


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 仿真
    +關注

    關注

    50

    文章

    4070

    瀏覽量

    133552
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110077
  • eda
    eda
    +關注

    關注

    71

    文章

    2755

    瀏覽量

    173204

原文標題:Verilog基礎知識學習筆記(五)

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    未能獲得預編譯的模擬庫信息

    HDL模擬庫”中的“編譯庫目錄”屬性中設置模擬庫路徑模擬行為模型“過程。 - 如果庫尚未編譯,請通過運行“編譯HDL仿真庫”過程或在
    發表于 03-17 10:17

    Verilog-HDL實踐與應用系統設計

    Verilog-HDL實踐與應用系統設計本書從實用的角度介紹了硬件描述語言Verilog-HDL。通過動手實踐,體驗Verilog-HDL的語法結構、功能等內涵。在前五章,以簡單的實例
    發表于 11-14 22:57 ?147次下載
    <b class='flag-5'>Verilog-HDL</b>實踐與應用系統設計

    Verilog HDL華為入門教程

    Verilog HDL 華為入門教程 本文主要介紹Verilog HDL 語言的一些基本知識,目的是使初學者能夠迅速掌握
    發表于 02-11 08:35 ?140次下載

    Verilog HDL入門教程(華為絕密資料)

    Verilog HDL入門教程(華為絕密資料) 本文主要介紹Verilog HDL 語言的一些基本知識,目的是使初學者能夠迅速掌握
    發表于 04-02 11:52 ?0次下載

    Verilog HDL程序設計與實踐

    Verilog HDL程序設計與實踐著重介紹Verilog HDL語言
    發表于 10-29 14:45 ?21次下載

    Verilog HDL硬件描述語言_Verilog語言要素

    本章介紹Verilog HDL的基本要素,包括標識符、注釋、數值、編譯程序指令、系統任務和系統函數。另外,本章還介紹
    發表于 04-25 16:09 ?17次下載

    Verilog HDL入門教程

    本文主要介紹Verilog HDL 語言的一些基本知識,目的是使初學者能夠迅速掌握HDL設計方法,初步了解并掌握Verilog
    發表于 07-15 15:27 ?0次下載

    Verilog HDL入門教程之Verilog HDL數字系統設計教程

    本文檔的主要內容詳細介紹的是Verilog HDL入門教程之Verilog HDL數字系統設計教程。
    發表于 09-20 15:51 ?83次下載
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>入門教程之<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>數字系統設計教程

    如何設計常用模塊的Verilog HDL

    本文檔的主要內容詳細介紹的是常用模塊的Verilog HDL設計詳細資料免費下載。
    發表于 10-16 11:12 ?20次下載
    如何設計<b class='flag-5'>常用</b>模塊的<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>?

    Verilog教程之Verilog命令格式資料說明

    本文檔的主要內容詳細介紹的是Verilog HDL教程之Verilog HDL命令格式資料說明
    發表于 01-09 08:00 ?31次下載
    <b class='flag-5'>Verilog</b>教程之<b class='flag-5'>Verilog</b>的<b class='flag-5'>命令</b>格式資料說明

    Verilog HDL入門教程

    本文主要介紹Verilog HDL 語言的一些基本知識,目的是使初學者能夠迅速掌握HDL 設計方法,初步了解并掌握Verilog
    發表于 02-11 08:00 ?99次下載
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>入門教程

    Verilog HDL基礎語法入門

    簡單介紹Verilog HDL語言和仿真工具。
    發表于 05-06 16:17 ?618次下載

    Verilog HDL 編譯器指令說明

    Verilog HDL 編譯器指令 復雜一點的系統在進行設計或者驗證時,都會用到一些編譯器指令,那么什么是編譯器指令? ?
    的頭像 發表于 11-03 09:31 ?3721次閱讀
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b> <b class='flag-5'>編譯</b>器指令說明

    Verilog HDL入門教程-Verilog HDL的基本語法

    Verilog HDL入門教程-Verilog HDL的基本語法
    發表于 01-07 09:23 ?179次下載

    什么是預編譯

    預編譯就是處理以#開頭的指令,比如賦值#include包含的文件、#define宏定義的替換、條件編譯等。預編譯就是為編譯前做準備工作的階段,主要處理以#開頭的
    發表于 01-13 13:52 ?0次下載
    什么是<b class='flag-5'>預編譯</b>
    主站蜘蛛池模板: 受被三个攻各种道具PLAY| 免费观看激烈日板子| 两个奶被男人揉了一个晚上| 欧美最猛黑人XXXXWWW| 亚洲AV无码专区国产精品麻豆| 在线不卡日本v二区到六区| 草莓AV福利网站导航| 精品亚洲麻豆1区2区3区| 欧美午夜精品久久久久久浪潮 | 95国产欧洲精华液| 灌满内射HP1V1| 久久精品嫩草影院免费看| 日本漫画母亲口工子全彩| 野花日本大全免费高清完整版| 成年美女黄网站色app| 九九热伊人| 十分钟免费观看高清视频大全| 在线视频一区二区三区在线播放| 国产WW久久久久久久久久| 蜜桃99影院| 亚洲性夜夜色综合网站| 高清国产在线播放成人| 恋夜影院安卓免费列表uc| 亚州三级视频| 波多野结衣 熟女| 久久无码AV亚洲精品色午夜| 无码国产伦一区二区三区视频| 99久久久无码国产精品免费人妻 | 国产精品久久久久久熟妇吹潮软件| 美女被艹网站| 亚洲欧美自拍清纯中文字幕| 国产360激情盗摄全集| 墨西哥美女主播| 一本道综合久久免费| 国产成人高清精品免费5388密| 男男被强bl高h文| 一区二区三区国产亚洲网站| 国产亚洲精品久久久久久鸭绿欲| 日产久久视频| av在线不卡中文网| 美国VICTORY DAY在线|