資源描述:
《system_verilog教程》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、基于斷言的驗(yàn)證技術(shù)SystemVerilogTutorials下面的手冊會幫助你了解一些SystemVerilog中最重要的新特點(diǎn)。手冊還提供了一些代碼樣本和例子使你可以對語言有更好"感覺"。這些輔導(dǎo)假設(shè)你們已經(jīng)了解了一些Verilog語言。如果沒有,你可以先去看看Verilog設(shè)計(jì)者指南(VerilogDesigner’sGuide)。*Datatypes*RTLdesign*Interfaces*Clocking*Assertion-basedverification*Classes*Testbenchautomationandconstraints*Th
2、eDirectProgrammingInterface(DPI)SystemVerilog的數(shù)據(jù)類型這個手冊將描述Systemverilog新引進(jìn)的數(shù)據(jù)類型。他們大多數(shù)都是可以綜合的,并且可以使RTL級描述更易于理解和書寫。整型和實(shí)型SystemVerilog引進(jìn)了幾種新的數(shù)據(jù)類型。C語言程序員會熟悉其中的大多數(shù)。引進(jìn)新的數(shù)據(jù)類型構(gòu)思是這樣的,如果C語言和SystemVerilog有相同的數(shù)據(jù)類型可以使C語言算法模型更容易的轉(zhuǎn)化為SystemVerilog模型。Verilog的變量類型有四態(tài):既是0,1,X,Z。SystemVerilog引進(jìn)了新的兩態(tài)數(shù)據(jù)類型
3、,每一位只可以是0或是1。當(dāng)你不需要使用的X和Z值時,譬如在寫Testbench和做為for語句的循環(huán)變量。使用兩態(tài)變量的RTL級模型,可以使模擬器更有效率。并且使用得當(dāng)?shù)脑拰⒉粫C合結(jié)果產(chǎn)生影響。二態(tài)整型類型描述例子Bituser-definedsizebit[3:0]a_nibble;Byte8bits,unsignedbytea,b;Shortint16bits,signedshortintc,d;Int32bits,signedinti,j;Longint64bits,signedlongintlword;注意到和C語言不一樣,SystemVeril
4、og指定了一些固定寬度的類型。四態(tài)整型類型描述例子Reguser-definedsizereg[7:0]a_byte;Logicidenticaltoregineverywaylogic[7:0]a_byte;Integer32bits,signedintegeri,j,k;logic是一種比reg型更好的類型,他更加的完善。我們將會看到你可以在過去veriloghdl中用reg型或是wire型的地方用logic型來代替。非整數(shù)類型類型描述例子Time64-bitunsignedtimenow;ShortreallikefloatinCshortrealf;R
5、eallikedoubleinCdoubleg;Realtimeidenticaltorealrealtimenow;數(shù)組在Verilog-1995中,你可以定義標(biāo)量或是矢量類型的網(wǎng)線和變量。你也可以定義一維數(shù)組變量類型的存儲器數(shù)組。在Verilog-2001中允許多維的網(wǎng)線和變量數(shù)組存在,并且取消了一些存儲器數(shù)組用法的限制。在SystemVerilog中數(shù)組有了新的發(fā)展,并對數(shù)組重新進(jìn)行了重新定義,從而允許對數(shù)組進(jìn)行更多的操作。在SystemVerilog,中,數(shù)組可以具有壓縮數(shù)組或是非壓縮數(shù)組的屬性,也可以同時具有兩種屬性。考慮下面的例子:reg[3:0]
6、[7:0]register[0:9];壓縮數(shù)組是[3:0]和[7:0],非壓縮數(shù)組是[0:9]。(只要你喜歡可以有同樣多的壓縮數(shù)組和非壓縮數(shù)組)壓縮數(shù)組*保證將在存儲器中產(chǎn)生持續(xù)的數(shù)據(jù)*可以復(fù)制到任何其他的壓縮對象中*可切片("部分選取")*僅限于"bit"類型(bit,logic,int等),其中有些(如int)有固定的尺寸相比之下,非壓縮數(shù)組可以放在模擬器選擇的任何地方,可以可靠地復(fù)制到另一個相同數(shù)據(jù)類型的數(shù)組中。對于不同數(shù)據(jù)類型的數(shù)組,你必須使用映射(有幾個非壓縮數(shù)組映射到壓縮數(shù)組的規(guī)則)。非壓縮數(shù)組可以是任何的類型,如實(shí)數(shù)數(shù)組。SystemVerilo
7、g允許對完整的非壓縮數(shù)組和部分選取的非壓縮數(shù)組進(jìn)行一些操作。對與此,部分選取的數(shù)組必須是相同的數(shù)據(jù)類型和大小。如非壓縮數(shù)組必須要有相同的位數(shù)和長度。而壓縮數(shù)組不一樣,只要選取的部分有相同數(shù)量的位數(shù)。允許的操作有*讀和寫整個數(shù)組*讀和寫部分選取的數(shù)組*讀和寫數(shù)組中的位*在數(shù)組,部分選取的數(shù)組和數(shù)組的位有同樣的優(yōu)先級SystemVerilog也支持動態(tài)數(shù)組(在仿真中數(shù)組長度可以改變)和關(guān)聯(lián)數(shù)組(數(shù)組中的數(shù)據(jù)非連續(xù)排列)。為了支持這些數(shù)組類型,SystemVerilog中提供了一些數(shù)組查找的函數(shù)和方法。如你可以使用$dimensions函數(shù)查詢一個數(shù)組變量的的維數(shù)。
8、TypedefSystemVerilo