版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.wdVerilog_1995和Verilog_2001的比擬版本記錄表作者版本號(hào)日期修改內(nèi)容王長(zhǎng)友V1.00.a2021 .5.24第一次創(chuàng)立作為一門如今世界最流行的硬件描述語(yǔ)言之一,Verilog HDL擁有自己的獨(dú)有的特點(diǎn)和優(yōu)勢(shì)。當(dāng)然同時(shí)作為一門不斷完善和開展的硬件描述語(yǔ)言,他同樣也具有他的缺乏之處。Verilog HDL是在用途最廣泛的C語(yǔ)言的根底上開展起來(lái)的一種硬件描述語(yǔ)言,它是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首創(chuàng)的,最初只設(shè)計(jì)了一個(gè)仿真與驗(yàn)證工具,之后又陸續(xù)開發(fā)了相關(guān)的故障模擬與時(shí)序分析工具。1985年Moorb
2、y推出它的第三個(gè)商用仿真器verilog-XL,獲得了巨大的成功,從而使得Verilog HDL迅速得到推廣應(yīng)用。1989年CADENCE公司收購(gòu)了GDA公司,使得VerilogHDL成為了該公司的獨(dú)家專利。1990年CADENCE公司公開發(fā)表了Verilog HDL,并成立LVI組織以促進(jìn)Verilog HDL成為IEEE標(biāo)準(zhǔn),即IEEE Standard 1364-1995。Verilog HDL雖然得到了廣泛的應(yīng)用,但是然們?cè)趹?yīng)用過(guò)程中也發(fā)同大多數(shù)新興的編程語(yǔ)言一樣,有很多的不完善、缺陷。在2001年,OVI(Open Verilog Initiative)向IEEE提交了一個(gè)改善了用戶
3、覺(jué)得原始的Verilog1995標(biāo)準(zhǔn)缺陷的新的標(biāo)準(zhǔn)。這一擴(kuò)展版本成為了 IEEE1364-2001標(biāo)準(zhǔn),也就是Verilog 2001。Verilog 2001是1995的增補(bǔ),現(xiàn)在幾乎所有的工具都支持Verilog 2001。Verilog 2001也被稱作Verilog 2.0。作為一個(gè)verilog的初學(xué)者,根底是最重要的?,F(xiàn)在將我在學(xué)習(xí)中了解到的verilog的IEEE1364-95標(biāo)準(zhǔn)和最新的IEEE1364-2001標(biāo)準(zhǔn)做一個(gè)簡(jiǎn)單的比擬和分析,希望可以在加深我的學(xué)習(xí)和理解的同時(shí)可以方便大家的探討、學(xué)習(xí)和補(bǔ)充。我從以幾個(gè)方面來(lái)比擬verilog HDL的IEEE1364-1995標(biāo)準(zhǔn)
4、和IEEE1364-2001的變化:1、 模塊聲明的擴(kuò)展1、Verilog- 2001允許將端口聲明和數(shù)據(jù)類型聲明放在同一條語(yǔ)句中,例如:Verilog -1995:Module mux8(y,a,b,en);output 7:0 y;input 7:0a,b;input en; reg 7:0 y; wire 7:0 a,b;wire en;Verilog-2001:Module mux8(y,a,b,en);output reg 7:0 y;input wire 7:0 a,b;input wire en;2)、Verilog- 2001中增加了ANSI C風(fēng)格的輸入輸出端口說(shuō)明,可以用于
5、module、task和function。例如:Verilog -1995:Module mux8(y,a,b,en); output 7:0 y; input 7:0a,b; input en; reg 7:0 y; wire 7:0 a,b;wire en;Verilog-2001: Module mux8(output reg 7:0 y;input wire 7:0 a,b;input wire en);3)、對(duì)于含有parameter的module, 例如:Verilog -1995:Module adder(sum, co, a, b, ci); parameter MSB = 3
6、1, LSB = 0;output MSB:LSB sum; output co; input MSB:LSB a,b; input ci; reg MSB:LSB sum; reg co; wire MSB:LSB a,b; wire ci;.Verilog-2001:Module adder #(parameter MSB = 31,LSB = 0) ( output reg MSB:LSB sum,output reg co, input wire MSB:LSB a,b, input wire ci;);.2、 帶有初始化的存放器類型變量聲明在Verilog-1995中定義和初始化re
7、g需要兩條語(yǔ)句,而在Verilog-2001中可以合成一條語(yǔ)句。實(shí)例如下:Verilog-1995:reg clock;initialclk = 0;Verilog-2001:reg clock = 0;3、 敏感表的改良1、Verilog-2001使用逗號(hào)隔開敏感信號(hào)Verilog-2001中可以用逗號(hào)來(lái)代替or隔開敏感信號(hào)or也可以Verilog-1995:always (a or b or c or d or sel)Verilog-2001:always (a, b, c, d, sel)2、Verilog-2001組合邏輯敏感信號(hào)通配符在組合邏輯設(shè)計(jì)中,需要在敏感信號(hào)列表中包含所有組
8、合邏輯輸入信號(hào),以免產(chǎn)生鎖存器。在大型的組合邏輯中比擬容易遺忘一些敏感信號(hào),因此在Verilog-2001中可以使用*包含所有的輸入信號(hào)作為敏感信號(hào)。Verilog-1995:always (sel or a or b)if (sel)y = a;elsey = b;Verilog-2001always * /combinational logic sensitivityif (sel)y = a;elsey = b;這樣做的好處是防止敏感表切合不完整導(dǎo)致的latch。4、 帶有符號(hào)算數(shù)運(yùn)算的擴(kuò)展1、net型和reg型可以聲明為帶符號(hào)的變量,如:Reg signed 63:0 data;Wir
9、e signed 11:0address;2、函數(shù)的返回值可以是有符號(hào)的數(shù),例如:Function signed 128:0 alu;3、literal integer number 可以定義為有符號(hào)的,如: 16hc501 /an unsigned 16-bit hex value 16shc501 /a singned 16-bit hex value4、增加了算數(shù)的左移和右移>>>,<<< 操作符“<<<和“>>>。對(duì)于符號(hào)數(shù),執(zhí)行算數(shù)移位操作時(shí),將符號(hào)填補(bǔ)移出的位。例如: D=8b10100011; D>&g
10、t;3; /邏輯右移的結(jié)果為:8b00010100 D>>>3; /算數(shù)右移的結(jié)果是:8111101005、增加了系統(tǒng)函數(shù)$signed,$unsigned。用于在有符號(hào)和無(wú)符號(hào)數(shù)之間的轉(zhuǎn)換。如:Reg 63:0 a;/unsigned data type always(a) begin result1 = a/2; / unsfned arithmetic result2 = $signed(a)/2; /signed ariithmetic end5、 可變向量域的選擇<starting_bt>+:<width> part-select incre
11、ments from the staeting bit<starting_bt>-:<width> part-select increments from the staeting bitReg 63:0 vector1; /little-endianReg 0:63 ventor2; /big-endianByte = vector131-:8; /selects vector131:24Byte = vector124+:8; /selects vector131:24Byte = vector231-:8; /selects vector124:31Byte =
12、vector224+:8; /selects vector124:31其中,起始位可以是變量,但是位寬必須是整數(shù)。因此可以用變量域選擇,用循環(huán)語(yǔ)句選取一個(gè)很長(zhǎng)的向量所有位。for(j=0;j<=31;j=j+1) byte=data1(j*8)+:8;/用于初始化向量的一個(gè)域data1(byteNum*8)+:8=8b0;6、 多維數(shù)組的建立Verilog-1995中只允許對(duì)reg,integer和time建立一維數(shù)組,常用于RAM,ROM的建模。Verilog-2001中可以對(duì)net和variable建立多維數(shù)組。/-dimensional array of 8-bit reg var
13、ibales/(allowed n verilog-1995 and verilog-2001)Reg 7:0 array1 0:255;Wire 7:0 out1 = array1address;/3-dimensional array of 8-bit wire nets/(new for verilog-2001)Wire 7:0 array2 0:255 0:255 0:15;Wire 7:0 out2 =array2addr1addr2addr3;7、 多維數(shù)組的賦值Verilog-1995不允許直接訪問(wèn)矩陣的某一位或者某幾位,必須將整個(gè)矩陣字復(fù)制到另一個(gè)暫存變量中,從暫存中訪問(wèn)。V
14、erilog-2001 可以直接訪問(wèn)矩陣的某一維或者某一位如:Verilog-1995:Reg 31:0 ram 0:255;Reg 7:0 high_btye;Reg 31:0 temp; temp =ram5; high_btye = temp 31:24;verilog-2001 reg 31:0 ram 0:255; reg 7:0 high_btye; high_btye =ram531:24;/select the high_order byte of one word in a 2-dimensional array of 32-bit reg variablesReg 31:0
15、 array20:2550:15;Wire 7:0 out = array2100731:24;8、 乘方運(yùn)算符增加乘方運(yùn)算power operate,運(yùn)算符是“*,如果其中有一個(gè)操作數(shù)是real類型的,返回值講師real類型的。兩個(gè)操作數(shù)都是integer類型的,返回值才是integer類型的。9、 自動(dòng)可重入任務(wù)和自動(dòng)遞歸函數(shù)1、可重入任務(wù) 任務(wù)本質(zhì)上是靜態(tài)的,同時(shí)并發(fā)的多個(gè)任務(wù)共享存儲(chǔ)區(qū)。當(dāng)某個(gè)任務(wù)在多個(gè)模塊中被調(diào)用,那么這些任務(wù)對(duì)同一塊存儲(chǔ)空間進(jìn)展操作,結(jié)果可能是錯(cuò)誤的。Verilog-2001增加了關(guān)鍵之a(chǎn)utomatic,內(nèi)存空間是動(dòng)態(tài)分配的,是任務(wù)變?yōu)榭芍厝氲摹?、遞歸函數(shù):例如
16、:Function automatic 63:0 factorial;Input 31:0 n;If(n=1)factorial =1;else factoral = n*factorial(n-1); endfunction10、 自動(dòng)寬位擴(kuò)展Verilog-1995中對(duì)不指定位數(shù)的位寬超過(guò)32位的總線賦高阻是:只對(duì)低32位賦值為高阻,高位將為0。Verilog-2001將高阻或者不定態(tài)賦值給未指定位寬的信號(hào)時(shí),可以自動(dòng)擴(kuò)展到整個(gè)位寬范圍。11、 常數(shù)函數(shù)Verilog語(yǔ)法規(guī)定必須使用數(shù)值或者常數(shù)表達(dá)式來(lái)定義向量的位寬和陣列的規(guī)模。如:parameter width = 8;Wire wid
17、th-1:0 data ;Verilog-1995中要求上述表達(dá)式必須為算數(shù)操作。Verilog-2001中可以使用函數(shù),成為常數(shù)函數(shù),它的數(shù)值在編譯或者詳細(xì)描述中被確定。如:Parameter ram_size =1024;Input clogb(ram_size)-1:0 address_bus;.Function integer clogb;Input31:0 depth;BeginFor(clogb=0;depth>0;clogb=clogb+1)Depth =depth>>1;Endendfunction12、 增加了文件輸入輸出操作Verilog-1995中在文件
18、的輸入、輸出操作方面功能非常有限,文件操作疆場(chǎng)借助于verilog PLI接口編程語(yǔ)言,通常與c語(yǔ)言的文件輸入、輸出庫(kù)的訪問(wèn)來(lái)處理。并且規(guī)定同時(shí)翻開的I/O文件不能超過(guò)31個(gè)。Verilog-2001增加了新的系統(tǒng)任務(wù)和函數(shù),并且規(guī)定同時(shí)翻開的文件數(shù)目為230個(gè)。13、 顯示參數(shù)重載Verilog-1995中參數(shù)的重載有兩種方法:一種是defparam語(yǔ)句顯式重新定義。第二種是在模塊實(shí)體調(diào)用時(shí)使用#符號(hào)隱式的重新定義參數(shù)。Verilog-2001中增加了一種新的方法,成為顯式重載。14、 Generate語(yǔ)句Verilog-2001新增了語(yǔ)句“generate,通過(guò)generate循環(huán),可以產(chǎn)
19、生一個(gè)對(duì)象比方一個(gè)元件或者一個(gè)模塊等的多個(gè)例化,為可變尺度的設(shè)計(jì)提供了方便。Generate語(yǔ)句一般在循環(huán)和條件語(yǔ)句中使用。Verilog-2001增加了四個(gè)關(guān)鍵字generate、endgenerate、genvar和localparam,其中個(gè)genvar是一個(gè)新的數(shù)據(jù)類型,用在generate循環(huán)中的標(biāo)尺變量必須定義為genvar類型數(shù)據(jù)。15、 Redister變成了variable由于自1998年的verilog一來(lái),regiser一直用來(lái)描述一種變量的類型,常常讓人誤以為register和硬件的存放器一致,在verilog-2001參考手冊(cè)中將register變成了variable
20、。16、 對(duì)條件編譯的改良Verilog-1995中支持ifdef、else、endif、undef進(jìn)展條件編譯,verilog-2001中增加了ifndef和elseif17、 文件和行編譯顯示Verilog需要不斷的跟蹤元代碼的行號(hào)和文件名,可編程語(yǔ)言接口PLI可以取得并利用行號(hào)和源文件的信息,以標(biāo)記運(yùn)行是錯(cuò)誤的。但是如果verilog代碼經(jīng)過(guò)其他工具的處理,源代碼的行號(hào)和文件名可能喪失。故在verilog-2001中增加了line,用來(lái)標(biāo)定元代碼的行號(hào)和文件名。 18、 屬性隨著仿真器之外的工具把verilog作為設(shè)計(jì)輸入,這些工具需要verilog語(yǔ)言能夠參加指定工具有關(guān)的信息和命令。Verilog么有定義標(biāo)準(zhǔn)的屬性,屬性名和數(shù)值由工具廠商或者其他標(biāo)準(zhǔn)來(lái)定義。目前尚
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理工作中的人文關(guān)懷
- 2024辦公設(shè)備維修保養(yǎng)協(xié)議書
- 幼兒園消防安全演習(xí)記錄制度
- 幼兒教師職業(yè)培訓(xùn)
- 公司及項(xiàng)目部安全培訓(xùn)試題及答案【典優(yōu)】
- 舊樓電梯井改造施工方案
- 廠級(jí)安全培訓(xùn)試題答案打印
- 2022幼兒園教師評(píng)優(yōu)方案
- 新入職員工安全培訓(xùn)試題完整參考答案
- 新員工入職前安全培訓(xùn)試題及完整答案(奪冠系列)
- 申請(qǐng)人生產(chǎn)條件未發(fā)生變化的聲明(空白)
- 電子商務(wù)專業(yè)《04.電子商務(wù)平臺(tái)站內(nèi)推廣試題04(轉(zhuǎn)化率和客單價(jià))4》
- GB/T 16935.1-2008低壓系統(tǒng)內(nèi)設(shè)備的絕緣配合第1部分:原理、要求和試驗(yàn)
- 第十三章醫(yī)療服務(wù)管理課件
- 小學(xué)《道德與法治》新課程標(biāo)準(zhǔn)
- 自動(dòng)消防設(shè)施工作原理講解課件
- 高考地理復(fù)習(xí):過(guò)程類推理綜合題解析-以地貌景觀題為例
- 1+X智能財(cái)稅考證理論考核試題及答案
- 施工圖交接表
- 盤扣支模架工程監(jiān)理細(xì)則
- CT增強(qiáng)檢查及風(fēng)險(xiǎn)知情同意書
評(píng)論
0/150
提交評(píng)論