版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、systemverilog語言簡介(下)不能將一個值強制轉換成不同的數(shù)據(jù)類型。systemverilog通過用法操作符提供了數(shù)據(jù)類型的強制轉換功能。這種強制轉換可以轉換成隨意類型,包括用戶定義的類型。例如:int (2.0 * 3.0) / 將結果轉換為int類型mytype (foo) / 將foo轉換為mytype類型一個值還可以通過在強制轉換操作符前指定一個10進制數(shù)來轉換成不同的向量寬度,例如:17 (x - 2) / 將結果轉換為17位寬度也可以將結果轉換成有符號值,例如:signed (x) / 將x轉換為有符號值16. 操作符verilog沒有的遞增(+)和遞減(-)操作符。而s
2、ystemverilog加入了幾個新的操作符:+和-:遞增和遞減操作符;+=、-=、*=、/=、%=、&=、=、|=、>=、>>=賦值操作符;17. 唯一性和優(yōu)先級打算語句在verilog中,假如沒有遵循嚴格的編碼風格,它的if-else和case語句會在rtl和rtl綜合間具有不全都的結果。假如沒有正確用法full_case和parallel_case綜合命令還會引起一些其它的錯誤。systemverilog能夠顯式地指明什么時候一條打算語句的分支是唯一的,或者什么時候需要計算優(yōu)先級。我們可以在if或case關鍵字之前用法 unique或requires關鍵字。這些
3、關鍵字可以向仿真器、綜合編譯器、以及其它工具指示我們期望的硬件類型。工具用法這些信息來檢查if或 case語句是否正確建模了期望的規(guī)律。例如,假如用法unique限定了一個打算語句,那么在不希翼的case值浮現(xiàn)的時候仿真器就能夠發(fā)布一個警告信息。bit 2:0 a;unique if (a=0) | (a=1) y = in1;else if (a=2) y = in2;else if (a=4) y = in3; / 值3、5、6、7會引起一個警告priority if (a2:1=0) y = in1; / a是0或1else if (a=0) y = in2; / a是2或3else y
4、 = in3; / 假如a為其他的值unique case (a)0, 1: y = in1;2: y = in2;4: y = in3;endcase / 值3、5、6、7會引起一個警告priority casez (a)2b00? : y = in1; / a是0或12b0? : y = in2; / a是2或3default : y = in3; /假如a為其他的值endcase18. 底部檢測的循環(huán)verilog包含for、while和repeat循環(huán),這幾個循環(huán)都是在循環(huán)的起始處檢測循環(huán)條件。systemverilog加入了一個do-while循環(huán),這種循環(huán)在執(zhí)行語句的結尾處檢測循環(huán)
5、條件。19. 跳轉語句在語句的執(zhí)行過程中,c語言提供了幾種方式來跳轉到新的語句,包括:return、break、continue和goto。在verilog中除了通過用法disable語句跳轉到語句組的尾部外,沒有提供任何其它跳轉語句。用法disable語句執(zhí)行中止和繼續(xù)功能要求加入塊的名字,并且會產生不直觀的代碼。systemverilog加入了c語言的break和continue關鍵字,這兩個關鍵字不要求用法塊名字。另外,systemverilog還加入了一個return關鍵字,它可以用來在任何執(zhí)行點上退出一個任務或函數(shù)。break:退出一個循環(huán),與c語言相同;continue:跳轉到一個
6、循環(huán)的尾部,與c語言相同;return 表達式:退出一個函數(shù);return:退出一個任務或void類型的函數(shù)。systemverilog沒有包含c語言中的goto語句。20. 塊名字和語句標簽在verilog中,我們可以通過在begin或fork關鍵字之后指定名字來為begin-end或fork-jion語句指定名字。這個指定的名字代表囫圇語句塊。systemverilog還允許在end或jion關鍵字之后指定一個匹配的塊名字。這種機制很簡單將end或jion與對應的 begin或fork聯(lián)系起來,尤其是在一個長的塊或嵌套的塊中。塊結尾處的名字是可選的,但假如用法的話,它必需與塊起始處的名字相
7、同。例如:begin: foo/ 在begin之后的塊名字fork: bar / 具出名字的嵌套的塊jion: bar / 必需具有相同的名字end: foo / 必需具有相同的名字systemverilog還允許像c語言一樣為單個語句設置標簽。語句標簽放置在語句的前面,用來標識這條語句。例如:initial begintest1: read_enable = 0;test2: for (i=0; i21. 對大事控制的增加verilog用法標志來控制基于特定大事的執(zhí)行流,systemverilog增加了大事控制。*有條件的大事控制標志的一個基本應用就是判斷一個具有使能輸入的鎖存器。下面的例子
8、演示了一個鎖存器建模的基本風格。always (data or en)if (en) y 22. 新的過程verilog用法always過程來表示時序規(guī)律、組合規(guī)律和鎖存規(guī)律的rtl模型。綜合工具和其它軟件工具必需按照過程起始處的大事控制列表以及過程內的語句來判斷always過程的意圖。這種判斷會導致仿真結果和綜合結果之間的不全都。systemverilog增強了三個新的過程來顯式地指示規(guī)律的意圖。always_ff:表示時序規(guī)律的過程;always_comb:表示組合規(guī)律的過程;always_latch:表示鎖存規(guī)律的過程。例如:always_comb (a or b or sel) beg
9、inif (sel) y = a;else y = b;end軟件工具能夠檢查大事控制敏感列表和過程的內容來保證規(guī)律的功能匹配過程的類型。例如,工具能夠檢查一個always_comb過程能夠敏感過程內讀取的全部外部值,對規(guī)律的每一個分支的相同變量舉行賦值,并且檢查分支是否籠罩了全部可能的條件。假如任何一個條件沒有滿足,軟件工具均會報告該過程沒有正確建模組合規(guī)律。23. 動態(tài)過程verilog通過用法fork-jion提供了一種靜態(tài)的并發(fā)過程。每一個分支都是一個分別的、并行的過程。fork-jion中任何語句的執(zhí)行必需在組內的每一個過程完成后才會執(zhí)行。例如:initial beginforkse
10、nd_packet_task (1, 255, 0);send_packet_task (7, 128, 5);watch_result_task (1, 255, 0);watch_result_task (7, 128, 5);jion / 全部的任務必需完成后才會到達這里endsystemverilog通過process關鍵字加入了一個新的、動態(tài)的過程。它為一個過程產生分支,然后繼續(xù)執(zhí)行而無需等待其他過程完成。過程不會堵塞過程或任務內的語句執(zhí)行。這種方式能夠建模多線程的過程。例如:initial beginprocess send_packet_task (1, 255, 0);proc
11、ess send_packet_task (7, 128, 5);process watch_result_task (1, 255, 0);process watch_result_task (7, 128, 5);end / 全部的過程并行運行24. 任務和函數(shù)增加systemverilog為verilog的任務和函數(shù)作了幾個增加。* 靜態(tài)和自動的存儲缺省狀況下,在verilog任務或函數(shù)內的全部存儲都是靜態(tài)的。verilog-2001允許將任務和函數(shù)聲明成自動的。在systemverilog 中:(1). 在一個靜態(tài)任務和函數(shù)內的特定數(shù)據(jù)可以顯式地聲明成自動的。聲明成自動的數(shù)據(jù)在塊中具有
12、完整的生命周期,并且在任務和函數(shù)調用的入口處初始化;(2). 在一個自動的任務或函數(shù)中的特定數(shù)據(jù)可以顯式地聲明成靜態(tài)的。自動的任務或函數(shù)中聲明成靜態(tài)的數(shù)據(jù)在一個塊的本地范圍內具有靜態(tài)的生命周期。* 從任何點返回verilog在一個任務或函數(shù)中執(zhí)行到endtask或endfunction關鍵字的時候返回。函數(shù)的返回值是給函數(shù)名賦的最后一個值。systemverilog加入了一個return關鍵字,用法這個關鍵字,一個任務或函數(shù)可以在任何點上返回。*多語句verilog要求一個任務或函數(shù)只具有一個語句或語句塊。多條語句必需組合到一個單一的begin-end或fork-jion塊中。 systemv
13、erilog去除了這種限制。因此,多條語句可以在一個任務或函數(shù)中列出而無需用法的begin-end或fork-jion。每有分組的語句就像在begin-end中一樣挨次執(zhí)行。我們還可以產生一個沒有語句的任務或函數(shù)定義。*void函數(shù)verilog要求一個函數(shù)具有一個返回值,函數(shù)的調用接收這個返回值。systemverilog加入了一個void數(shù)據(jù)類型,這個數(shù)據(jù)類型可以作為一個函數(shù)的返回值類型。void函數(shù)可以像verilog任務一樣舉行調用,而無需接收一個返回值。void函數(shù)和任務的差別在于函數(shù)存在幾個限制,例如沒有時光控制等。*函數(shù)的輸入和輸出verilog標準要求一個函數(shù)起碼具有一個輸入并
14、且函數(shù)只能具有輸入。systemverilog去除了這些限制。函數(shù)可以具有隨意數(shù)目的輸入、輸出以及輸入輸出,也可以什么也沒有。25. 延續(xù)賦值的增加在verilog中,延續(xù)賦值語句的左側只能是線網(wǎng)類型,例如wire。延續(xù)賦值語句被認為是線網(wǎng)的驅動源,而線網(wǎng)可以擁有隨意數(shù)據(jù)的驅動源。 systemverilog允許除reg類型以外的任何數(shù)據(jù)類型用于延續(xù)賦值語句的左側。與線網(wǎng)不同,全部其它數(shù)據(jù)類型被限制為只能有一個延續(xù)賦值語句驅動。為相同的變量混合用法延續(xù)賦值語句和過程賦值語句是不被允許的。26. $bit系統(tǒng)函數(shù)在verilog中沒有類似于c語言中sizeof的函數(shù)。systemverilog加
15、入一個新的$bit內建函數(shù)。這個函數(shù)返回保存一個值所需的硬件位的數(shù)目(一個四態(tài)值要求一個硬件位),這個函數(shù)還可以用來確定一個結構體所代表的硬件位的數(shù)目。27. define的增加systemverilog增加了define編譯器命令的能力以便支持將字符串作為宏的參數(shù)。宏的文本字符串中可以包含一個隔離的引號,它的前面必需具有一個反勾號(”),這就允許字符串中包含宏參數(shù)。宏文本可以在行的尾部包含一個反斜杠()來表示在下一行繼續(xù)。假如宏文本字符串中包含反斜杠,則反斜杠應當被放在兩個反勾號之間,這樣它就不會被認為是verilog轉義標識符的開頭。宏文本字符串還可以包含雙反勾號(),它允許標識符能夠從參數(shù)中構建。這些增加使得define命令越發(fā)靈便。例如:include命令后可以緊跟一個宏名字來替代一個字符串。define f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版高科技產品出口許可與合同履行協(xié)議3篇
- 二零二五版國際貿易合同擔保法風險管理合同3篇
- 碎石加工設備2025年度保險合同2篇
- 二零二五版企業(yè)員工勞務派遣與員工福利保障合同3篇
- 二零二五年度糧食儲備與農業(yè)產業(yè)化合作合同3篇
- 二零二五年度高層綜合樓公共收益分配管理合同3篇
- 二零二五年度校車運營服務與兒童座椅安全檢測合同3篇
- 二零二五版帶儲藏室裝修包售二手房合同范本3篇
- 二零二五年房地產合作開發(fā)與股權讓渡綜合合同2篇
- 二零二五年度花木種植與生態(tài)農業(yè)園區(qū)建設合同3篇
- 飛行原理(第二版) 課件 第4章 飛機的平衡、穩(wěn)定性和操縱性
- 暨南大學珠海校區(qū)財務辦招考財務工作人員易考易錯模擬試題(共500題)試卷后附參考答案
- 羊水少治療護理查房
- 中華人民共和國保守國家秘密法實施條例培訓課件
- 管道坡口技術培訓
- OQC培訓資料教學課件
- 2024年8月CCAA國家注冊審核員OHSMS職業(yè)健康安全管理體系基礎知識考試題目含解析
- 體育賽事組織與實施操作手冊
- 2024年浙江省公務員考試結構化面試真題試題試卷答案解析
- 2023年航空公司招聘:機場安檢員基礎知識試題(附答案)
- 皮膚儲存新技術及臨床應用
評論
0/150
提交評論