北大數(shù)字集成電路--5verilog的符號(hào)標(biāo)識(shí)ppt課件_第1頁(yè)
北大數(shù)字集成電路--5verilog的符號(hào)標(biāo)識(shí)ppt課件_第2頁(yè)
北大數(shù)字集成電路--5verilog的符號(hào)標(biāo)識(shí)ppt課件_第3頁(yè)
北大數(shù)字集成電路--5verilog的符號(hào)標(biāo)識(shí)ppt課件_第4頁(yè)
北大數(shù)字集成電路--5verilog的符號(hào)標(biāo)識(shí)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)字集成電路設(shè)計(jì)入門-從HDL到幅員于敦山 北大微電子學(xué)系第五章第五章 Verilog的詞匯商定的詞匯商定(Lexical convention)了解了解Verilog中運(yùn)用的詞匯商定中運(yùn)用的詞匯商定認(rèn)識(shí)言語(yǔ)公用標(biāo)志認(rèn)識(shí)言語(yǔ)公用標(biāo)志(tokens)學(xué)習(xí)學(xué)習(xí)timescale學(xué)習(xí)內(nèi)容:學(xué)習(xí)內(nèi)容:術(shù)語(yǔ)及定義術(shù)語(yǔ)及定義空白符:空格、空白符:空格、tabs及換行及換行Identifier: 標(biāo)志符,標(biāo)志符,Verilog中對(duì)象中對(duì)象(如模塊或端如模塊或端口口)的名字的名字Lexical: 言語(yǔ)中的字或詞匯,或與其相關(guān)。由其言語(yǔ)中的字或詞匯,或與其相關(guān)。由其文法文法grammar)或語(yǔ)法或語(yǔ)法(synt

2、ax)區(qū)分。區(qū)分。LSB:最低有效位:最低有效位(Lease significant bit)MSB:最高有效位:最高有效位(Most significant bit)空白符和注釋空白符和注釋module MUX2_1 (out, a, b, sel); / Port declarations output out; input sel, / control input b, /* data inputs */ a;/* The netlist logic selects input a when sel = 0 and it selects b when sel = 1.*/ not (se

3、l_, sel); and (a1, a, sel_), (b1, b, sel); / What does this line do? or (out, a1, b1);endmodule格式自在格式自在運(yùn)用空白符提高可讀性及代碼組運(yùn)用空白符提高可讀性及代碼組織???。Verilog忽略空白符除非用于忽略空白符除非用于分開(kāi)其它的言語(yǔ)標(biāo)志。分開(kāi)其它的言語(yǔ)標(biāo)志。多行注釋,在多行注釋,在/* */內(nèi)內(nèi)單行注釋單行注釋到行末終了到行末終了整數(shù)常量和實(shí)數(shù)常量整數(shù)常量和實(shí)數(shù)常量整數(shù)的大小可以定義也可以不定義。整數(shù)表示為:整數(shù)的大小可以定義也可以不定義。整數(shù)表示為: 其中其中 size :大小,由十進(jìn)制數(shù)表

4、示的位數(shù):大小,由十進(jìn)制數(shù)表示的位數(shù)(bit)表示。缺省為表示。缺省為32位位 base:數(shù)基,可為:數(shù)基,可為2(b)、8(o)、10(d)、16(h)進(jìn)制。進(jìn)制。缺省為缺省為10進(jìn)制進(jìn)制 value:是所選數(shù)基內(nèi)恣意有效數(shù)字,包括:是所選數(shù)基內(nèi)恣意有效數(shù)字,包括X、Z。實(shí)數(shù)常量可以用十進(jìn)制或科學(xué)表示法表示。實(shí)數(shù)常量可以用十進(jìn)制或科學(xué)表示法表示。 Verilog中,常量中,常量(literals)可是整數(shù)也可以是實(shí)數(shù)可是整數(shù)也可以是實(shí)數(shù)12 unsized decimal (zero-extended to 32 bits)H83a unsized hexadecimal (zero- ex

5、tended to 32 bits)8b1100_ 0001 8-bit binary64hff01 64-bit hexadecimal (zero- extended to 64 bits)9O17 9-bit octal32bz01x Z-extended to 32 bits3b1010_ 1101 3-bit number, truncated to 3b1016.3 decimal notation32e- 4 scientific notation for 0.00324.1E3 scientific notation for 4100整數(shù)常量和實(shí)數(shù)常量整數(shù)常量和實(shí)數(shù)常量整數(shù)的大

6、小可以定義也可以不定義。整數(shù)表示為:整數(shù)的大小可以定義也可以不定義。整數(shù)表示為:數(shù)字中數(shù)字中_忽略,便于查看忽略,便于查看沒(méi)有定義大小沒(méi)有定義大小(size)整數(shù)缺省為整數(shù)缺省為32位位缺省數(shù)基為十進(jìn)制缺省數(shù)基為十進(jìn)制數(shù)基數(shù)基(base)和數(shù)字和數(shù)字(16進(jìn)制進(jìn)制)中的字母無(wú)大小寫之分中的字母無(wú)大小寫之分當(dāng)數(shù)值當(dāng)數(shù)值value大于指定的大小時(shí),截去高位。如大于指定的大小時(shí),截去高位。如 2b1101表示的是表示的是2b01實(shí)數(shù)常量實(shí)數(shù)常量實(shí)數(shù)可用科學(xué)表示法或十進(jìn)制表示實(shí)數(shù)可用科學(xué)表示法或十進(jìn)制表示科學(xué)表示法表示方式:科學(xué)表示法表示方式: , 表示:表示: 尾尾數(shù)數(shù)10指數(shù)指數(shù)字符串字符串str

7、ing)字符串要在一行中用雙引號(hào)括起來(lái),也就是不能跨行。字符串要在一行中用雙引號(hào)括起來(lái),也就是不能跨行。字符串中可以運(yùn)用一些字符串中可以運(yùn)用一些C言語(yǔ)本義言語(yǔ)本義(escape)符,如符,如t n可以運(yùn)用一些可以運(yùn)用一些C言語(yǔ)格式符言語(yǔ)格式符(如如%b)在仿真時(shí)產(chǎn)生格式在仿真時(shí)產(chǎn)生格式化輸出:化輸出: This is a normal string This string has a t tab and ends with a new linen This string formats a value: val = %bVerilog中,字符串大多用于顯示信息的命令中。中,字符串大多用于顯示信

8、息的命令中。Verilog沒(méi)沒(méi)有字符串?dāng)?shù)據(jù)類型有字符串?dāng)?shù)據(jù)類型字符串字符串string)本義符及格式符將在驗(yàn)證支持部分討論本義符及格式符將在驗(yàn)證支持部分討論 格式符格式符%h%o%d%b%c%s%v%m%thexoctdecbinACSIIstringstrengthmoduletime本義符tn”tab換行反斜杠雙引號(hào)ASCII representation of above格式符%0d表示沒(méi)有前導(dǎo)0的十進(jìn)制數(shù)標(biāo)識(shí)符標(biāo)識(shí)符(identifiers)標(biāo)識(shí)符是用戶在描畫時(shí)給標(biāo)識(shí)符是用戶在描畫時(shí)給Verilog對(duì)象起的名字對(duì)象起的名字標(biāo)識(shí)符必需以字母標(biāo)識(shí)符必需以字母(a-z, A-Z)或或( _

9、)開(kāi)頭,后面可以是字母、數(shù)字、開(kāi)頭,后面可以是字母、數(shù)字、( $ )或或( _ )。最長(zhǎng)可以是最長(zhǎng)可以是1023個(gè)字符個(gè)字符標(biāo)識(shí)符區(qū)分大小寫,標(biāo)識(shí)符區(qū)分大小寫,sel和和SEL是不同的標(biāo)識(shí)符是不同的標(biāo)識(shí)符模塊、端口和實(shí)例的名字都是標(biāo)識(shí)符模塊、端口和實(shí)例的名字都是標(biāo)識(shí)符module MUX2_1 (out, a, b, sel);output out;input a, b, sel; not not1 (sel_, sel); and and1 (a1, a, sel_); and and2 (b1, b, sel); or or1 (out, a1, b1);endmoduleVerilog標(biāo)

10、識(shí)符標(biāo)識(shí)符標(biāo)識(shí)符標(biāo)識(shí)符(identifiers)有效標(biāo)識(shí)符舉例:有效標(biāo)識(shí)符舉例: shift_reg_a busa_index _bus3無(wú)效標(biāo)識(shí)符舉例:無(wú)效標(biāo)識(shí)符舉例: 34net / 開(kāi)頭不是字母或開(kāi)頭不是字母或“_ a*b_net / 包含了非字母或數(shù)字,包含了非字母或數(shù)字, “$ “_ n238 /包含了非字母或數(shù)字,包含了非字母或數(shù)字, “$ “_Verilog區(qū)分大小寫,一切區(qū)分大小寫,一切Verilog關(guān)鍵詞運(yùn)用小寫字母。關(guān)鍵詞運(yùn)用小寫字母。本義標(biāo)識(shí)符本義標(biāo)識(shí)符( Escaped identifiers)可以包含任何可打印字符可以包含任何可打印字符反斜杠及空白符不是標(biāo)識(shí)符的一部分

11、反斜杠及空白符不是標(biāo)識(shí)符的一部分module 2:1MUX (out, a, b, sel);output out;input a, b, sel; not not1(sel ,sel); and and1( a1, a, sel ); and and2( b1, b, sel); or or1( out, a1, b1);endmodule運(yùn)用本義符能夠會(huì)產(chǎn)生一些問(wèn)題,并且不是一切工具都支持。運(yùn)用本義符能夠會(huì)產(chǎn)生一些問(wèn)題,并且不是一切工具都支持。有時(shí)用本義符完成一些轉(zhuǎn)換,如產(chǎn)生邏輯圖的有時(shí)用本義符完成一些轉(zhuǎn)換,如產(chǎn)生邏輯圖的Verilog網(wǎng)表。綜網(wǎng)表。綜合工具輸出綜合網(wǎng)表時(shí)也運(yùn)用本義符。不建

12、議運(yùn)用本義符。合工具輸出綜合網(wǎng)表時(shí)也運(yùn)用本義符。不建議運(yùn)用本義符。本義標(biāo)識(shí)符由反斜杠“開(kāi)場(chǎng),空白符終了Escaped Identifiers本義標(biāo)識(shí)符本義標(biāo)識(shí)符( Escaped identifiers)本義標(biāo)識(shí)符允許用戶在標(biāo)識(shí)符中運(yùn)用非法字符。如: #sel busa+ index A,B top. 3inst 1 / 在層次化名字中本義符 本義標(biāo)識(shí)符必需以空格終了言語(yǔ)公用標(biāo)志言語(yǔ)公用標(biāo)志( tokens)系統(tǒng)義務(wù)及函數(shù) $符號(hào)指示這是系統(tǒng)義務(wù)和函數(shù)符號(hào)指示這是系統(tǒng)義務(wù)和函數(shù)系統(tǒng)函數(shù)有很多,如:系統(tǒng)函數(shù)有很多,如:前往當(dāng)前仿真時(shí)間前往當(dāng)前仿真時(shí)間$time顯示顯示/監(jiān)視信號(hào)值監(jiān)視信號(hào)值($d

13、isplay, $monitor)停頓仿真停頓仿真$stop終了仿真終了仿真$finish $monitor($time, “a = %b, b = %h, a, b); 當(dāng)信號(hào)當(dāng)信號(hào)a或或b的值發(fā)生變化時(shí),系統(tǒng)義務(wù)的值發(fā)生變化時(shí),系統(tǒng)義務(wù)$monitor顯示顯示當(dāng)前仿真時(shí)間,信號(hào)當(dāng)前仿真時(shí)間,信號(hào)a值值(二進(jìn)制格式二進(jìn)制格式), 信號(hào)信號(hào)b值值16進(jìn)進(jìn)制格式。制格式。言語(yǔ)公用標(biāo)志言語(yǔ)公用標(biāo)志( tokens)延時(shí)闡明延時(shí)闡明“#用于闡明過(guò)程用于闡明過(guò)程(procedural)語(yǔ)句和門的實(shí)例的延時(shí),但不能用語(yǔ)句和門的實(shí)例的延時(shí),但不能用于模塊的實(shí)例化。于模塊的實(shí)例化。module MUX2_

14、1 (out, a, b, sel) ;output out ;input a, b, sel ;not #1 not1( sel_, sel);and #2 and1( a1, a, sel_);and #2 and2( b1, b, sel);or #1 or1( out, a1, b1);endmodule門延時(shí)有很多類名字:門延時(shí)門延時(shí)有很多類名字:門延時(shí)(gate delay),傳輸延時(shí),傳輸延時(shí)(propagation delay),固有延時(shí),固有延時(shí)(intrinsic delay),對(duì)象內(nèi)在延時(shí),對(duì)象內(nèi)在延時(shí)(intra-object delay)編譯指點(diǎn)編譯指點(diǎn)(Compil

15、er Directives) ( )符號(hào)闡明一個(gè)編譯指點(diǎn)符號(hào)闡明一個(gè)編譯指點(diǎn) 這些編譯指點(diǎn)使仿真編譯器進(jìn)展一些特殊的操作這些編譯指點(diǎn)使仿真編譯器進(jìn)展一些特殊的操作 編譯指點(diǎn)不斷堅(jiān)持有效直到被覆蓋或解除編譯指點(diǎn)不斷堅(jiān)持有效直到被覆蓋或解除 resetall 復(fù)位一切的編譯指點(diǎn)為缺省值,應(yīng)該在其它編復(fù)位一切的編譯指點(diǎn)為缺省值,應(yīng)該在其它編譯指點(diǎn)之前運(yùn)用譯指點(diǎn)之前運(yùn)用文本交換文本交換(substitution) - define編譯指點(diǎn)編譯指點(diǎn)define提供了一種簡(jiǎn)單的文本交換的功能提供了一種簡(jiǎn)單的文本交換的功能 define 在編譯時(shí)在編譯時(shí)交換交換。可提高描??商岣呙璁嫷目勺x性。畫的可讀性。d

16、efine not_delay #1define and_delay #2define or_delay #1module MUX2_1 (out, a, b, sel);output out;input a, b, sel;not not_delay not1( sel_, sel);and and_delay and1( a1, a, sel_);and and_delay and2( b1, b, sel);or or_delay or1( out, a1, b1);endmodule定義定義not_delay運(yùn)用運(yùn)用not_delay文本交換文本交換(substitution) 解除定

17、義的宏,運(yùn)用解除定義的宏,運(yùn)用 undef macro_name 運(yùn)用編譯指點(diǎn)運(yùn)用編譯指點(diǎn)define,可以,可以 提高描畫的可讀性提高描畫的可讀性 定義全局設(shè)計(jì)參數(shù),如延時(shí)和矢量的位數(shù)。這些參數(shù)定義全局設(shè)計(jì)參數(shù),如延時(shí)和矢量的位數(shù)。這些參數(shù)可以定義在同一位置。這樣,當(dāng)要修正設(shè)計(jì)配置時(shí),可以定義在同一位置。這樣,當(dāng)要修正設(shè)計(jì)配置時(shí),只需求在一個(gè)地方修正。只需求在一個(gè)地方修正。 定義定義Verilog命令的簡(jiǎn)寫方式命令的簡(jiǎn)寫方式 define vectors_ file /usr1/chrisz/library/vectors define results_ file / usr1/chrisz

18、/library/results 可以將可以將define放在一個(gè)文件中,與其它文件一同編譯。放在一個(gè)文件中,與其它文件一同編譯。文本包含文本包含(inclusion) - include 編譯指點(diǎn)編譯指點(diǎn)include在當(dāng)前內(nèi)容中插入一個(gè)文件在當(dāng)前內(nèi)容中插入一個(gè)文件 格式:格式: include “如如include global.vinclude parts/count. vinclude ././library/mux. v include可用于:可用于: include保管在文件中的全局的或經(jīng)常用到的一些定義,如保管在文件中的全局的或經(jīng)常用到的一些定義,如文本宏文本宏 在模塊內(nèi)部在模塊

19、內(nèi)部include一些義務(wù)一些義務(wù)tasks),提高代碼的可維護(hù),提高代碼的可維護(hù)性。性??梢允窍鄬?duì)途徑或絕對(duì)途徑Timescaletimescale 闡明時(shí)間單位及精度闡明時(shí)間單位及精度格式:格式:timescale / 如:如:timescale 1 ns / 100 ps time_unit: 延時(shí)或時(shí)間的丈量單位延時(shí)或時(shí)間的丈量單位time_precision: 延時(shí)值超出精度要先舍入后運(yùn)用延時(shí)值超出精度要先舍入后運(yùn)用timescale必需在模塊之前出現(xiàn)必需在模塊之前出現(xiàn)timescale 1 ns / 10 ps/ All time units are in multiples of

20、 1 nanosecondmodule MUX2_1 (out, a, b, sel);output out;input a, b, sel;not #1 not1( sel_, sel);and #2 and1( a1, a, sel_);and #2 and2( b1, b, sel);or #1 or1( out, a1, b1);endmoduleTimescale time_precision不能大于不能大于time_unit time_precision和和time_unit的表示方法:的表示方法:integer unit_string integer : 可以是可以是1, 10,

21、 100 unit_string: 可以是可以是s(second), ms(millisecond), us(microsecond), ns(nanosecond), ps(picosecond), fs(femtosecond) 以上以上integer和和unit_string可恣意組合可恣意組合 precision的時(shí)間單位應(yīng)盡量與設(shè)計(jì)的實(shí)踐精度一樣。的時(shí)間單位應(yīng)盡量與設(shè)計(jì)的實(shí)踐精度一樣。 precision是仿真器的仿真時(shí)間步。是仿真器的仿真時(shí)間步。 假設(shè)假設(shè)time_unit與與precision_unit差別很大將嚴(yán)重影響仿差別很大將嚴(yán)重影響仿真速度。真速度。 如闡明一個(gè)如闡明一個(gè)

22、timescale 1s / 1ps,那么仿真器在,那么仿真器在1秒內(nèi)要秒內(nèi)要掃描其事件序列掃描其事件序列1012次;而次;而timescale 1s/1ms那么只需那么只需掃描掃描103次。次。 假設(shè)沒(méi)有假設(shè)沒(méi)有timescale闡明將運(yùn)用缺省值,普通是闡明將運(yùn)用缺省值,普通是ns。Timescale 一切一切timescale中的最小值決議仿真時(shí)的最小時(shí)間單位。中的最小值決議仿真時(shí)的最小時(shí)間單位。 這是由于仿真器必需對(duì)整個(gè)設(shè)計(jì)進(jìn)展準(zhǔn)確仿真這是由于仿真器必需對(duì)整個(gè)設(shè)計(jì)進(jìn)展準(zhǔn)確仿真 在下面的例子中,仿真時(shí)間單位在下面的例子中,仿真時(shí)間單位STU為為100fstimescale 1ns/ 10psmodule1 (. . .);not #1.23 (. . .) / 1.23ns or 12300 STUs. . .endmoduletimescale 100ns/

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論