日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

Verilog HDL編譯指令

出處:seugujun 發(fā)布于:2007-04-29 10:15:44

以`(反引號)開始的某些標(biāo)識符是編譯器指令。在Verilog 語言編譯時,特定的編譯器指令在整個編譯過程中有效(編譯過程可跨越多個文件),直到遇到其它的不同編譯程序指令。完整的標(biāo)準(zhǔn)編譯器指令如下:

* `define, `undef
* `ifdef, `else, `endif
* `default_nettype
* `include
* `resetall
* `timescale
* `unconnected_drive, `nounconnected_drive
* `celldefine, `endcelldefine

3.5.1 `define 和`undef

  `define指令用于文本替換,它很像C語言中的#define 指令,如:

`define MAX_BUS_SIZE 32
. . .
reg [ `MAX_BUS_SIZE - 1:0 ] AddReg;

一旦`define 指令被編譯,其在整個編譯過程中都有效。例如,通過另一個文件中的`define指令,MAX_BUS_SIZE 能被多個文件使用。
`undef 指令取消前面定義的宏。例如:

`define WORD 16 //建立一個文本宏替代。
. . .
wire [ `WORD : 1] Bus;
. . .
`undef WORD
// 在`undef編譯指令后, WORD的宏定義不再有效.

3.5.2 `ifdef、`else 和`endif

  這些編譯指令用于條件編譯,如下所示:

`ifdef WINDOWS
parameter WORD_SIZE = 16
`else
parameter WORD_SIZE = 32
`endif

  在編譯過程中,如果已定義了名字為WINDOWS的文本宏,就選擇種參數(shù)聲明,否則選擇第二種參數(shù)說明。
  `else 程序指令對于`ifdef 指令是可選的。

3.5.3 `default_nettype

  該指令用于為隱式線網(wǎng)指定線網(wǎng)類型。也就是將那些沒有被說明的連線定義線網(wǎng)類型。

`default_nettype wand

  該實(shí)例定義的缺省的線網(wǎng)為線與類型。因此,如果在此指令后面的任何模塊中沒有說明的連線,那么該線網(wǎng)被假定為線與類型。

3.5.4 `include

  `include 編譯器指令用于嵌入內(nèi)嵌文件的內(nèi)容。文件既可以用相對路徑名定義,也可以用全路徑名定義, 例如:

`include " . . / . . /primitives.v"

  編譯時,這一行由文件“../../primitives.v” 的內(nèi)容替代。

3.5.5 `resetall

  該編譯器指令將所有的編譯指令重新設(shè)置為缺省值。
`resetall
例如,該指令使得缺省連線類型為線網(wǎng)類型。

3.5.6 `timescale

  在Verilog HDL 模型中,所有時延都用單位時間表述。使用`timescale編譯器指令將時間單位與實(shí)際時間相關(guān)聯(lián)。該指令用于定義時延的單位和時延。`timescale編譯器指令格式為:

`timescale time_unit / time_precision
time_unit 和time_precision 由值1、10、和100以及單位s、ms、us、ns、ps和fs組成。例如:
`timescale 1ns/100ps

表示時延單位為1ns, 時延為100ps。`timescale 編譯器指令在模塊說明外部出現(xiàn), 并且影響后面所有的時延值。例如:

`timescale 1ns/ 100ps
module AndFunc (Z, A, B);
output Z;
input A, B;

and # (5.22, 6.17 ) Al (Z, A, B);
//規(guī)定了上升及下降時延值。
endmodule

  編譯器指令定義時延以ns為單位,并且時延為1/10 ns(100 ps)。因此,時延值5.22對應(yīng)5.2 ns, 時延6.17對應(yīng)6.2 ns。如果用如下的`timescale程序指令代替上例中的編譯器指令,

`timescale 10ns/1ns

  那么5.22對應(yīng)52ns, 6.17對應(yīng)62ns。
  在編譯過程中,`timescale指令影響這一編譯器指令后面所有模塊中的時延值,直至遇到另一個`timescale指令或`resetall指令。當(dāng)一個設(shè)計中的多個模塊帶有自身的`timescale編譯指令時將發(fā)生什么?在這種情況下,模擬器總是定位在所有模塊的時延上,并且所有時延都相應(yīng)地?fù)Q算為時延。例如,

`timescale 1ns/ 100ps
module AndFunc (Z, A, B);
output Z;
input A, B;

and # (5.22, 6.17 ) Al (Z, A, B);
endmodule

`timescale 10ns/ 1ns
module TB;
reg PutA, PutB;
wire GetO;

initial
begin
PutA = 0;
PutB = 0;
#5.21 PutB = 1;
#10.4 PutA = 1;
#15 PutB = 0;
end
AndFunc AF1(GetO, PutA, PutB);
endmodule

  在這個例子中,每個模塊都有自身的`timescale編譯器指令。`timescale編譯器指令次應(yīng)用于時延。因此,在個模塊中,5.22對應(yīng)5.2 ns, 6.17對應(yīng)6.2 ns; 在第二個模塊中5.21對應(yīng)52 ns, 10.4對應(yīng)104 ns, 15對應(yīng)150 ns。如果仿真模塊TB,設(shè)計中的所有模塊時間為100 ps。因此,所有延遲(特別是模塊TB中的延遲)將換算成為100 ps。延遲52 ns現(xiàn)在對應(yīng)520*100 ps,104對應(yīng)1040*100 ps,150對應(yīng)1500*100 ps。更重要的是,仿真使用100 ps為時間。如果仿真模塊AndFunc,由于模塊TB不是模塊AddFunc的子模塊,模塊TB中的`timescale程序指令將不再有效。

3.5.7 `unconnected_drive和`nounconnected_drive

  在模塊實(shí)例化中,出現(xiàn)在這兩個編譯器指令間的任何未連接的輸入端口或者為正偏電路狀態(tài)或者為反偏電路狀態(tài)。

`unconnected_drive pull1
. . .
/*在這兩個程序指令間的所有未連接的輸入端口為正偏電路狀態(tài)(連接到高電平)*/
`nounconnected_drive

`unconnected_drive pull0
. . .
/*在這兩個程序指令間的所有未連接的輸入端口為反偏電路狀態(tài)(連接到低電平)*/
`nounconnected_drive

3.5.8 `celldefine 和 `endcelldefine

  這兩個程序指令用于將模塊標(biāo)記為單元模塊。它們表示包含模塊定義,如下例所示。

`celldefine
module FD1S3AX (D, CK, Z) ;
. . .
endmodule
`endcelldefine

  某些PLI例程使用單元模塊。


  
關(guān)鍵詞:Verilog HDL編譯指令

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!