操作数改进
操作數(shù)改進(jìn)
1、兩態(tài)和四態(tài)類型數(shù)據(jù)的運(yùn)算
全兩態(tài)類型的運(yùn)算使用Verilog運(yùn)算法則
Verilog對大多數(shù)操作數(shù)類型的混合運(yùn)算都制定了相應(yīng)規(guī)則。
SystemVerilog包含了Verilog沒有涉及的兩態(tài)類型數(shù)據(jù)的運(yùn)算,從而對這些規(guī)則進(jìn)行了擴(kuò)展。對SystemVerilog新類型的運(yùn)算按照相同的Verilog規(guī)則進(jìn)行。這就意味著對結(jié)果的每一位,大部分運(yùn)算會返回0、1或X。當(dāng)對兩態(tài)類型進(jìn)行運(yùn)算時,一般很少會遇到X結(jié)果。不過對兩態(tài)類型的一些運(yùn)算會產(chǎn)生X,如除以0產(chǎn)生的錯誤。
2、類型強(qiáng)制轉(zhuǎn)換
SystemVerilog增加了類型強(qiáng)制轉(zhuǎn)換操作符
類型強(qiáng)制轉(zhuǎn)換使設(shè)計(jì)者可以指定在表達(dá)式計(jì)算期間的任何地方進(jìn)行轉(zhuǎn)換,而不只是作為賦值的一部分。
3、尺寸強(qiáng)制轉(zhuǎn)換
向量的位寬可以強(qiáng)制轉(zhuǎn)換為不同尺寸
允許將表達(dá)式的位數(shù)強(qiáng)制轉(zhuǎn)換為不同的尺寸。可以使用顯示強(qiáng)制轉(zhuǎn)換設(shè)置操作數(shù)的位數(shù),也可以設(shè)置操作結(jié)果的位數(shù)。
如果轉(zhuǎn)換后的表達(dá)式位數(shù)比原來小,則截去表達(dá)式左端最高位。如果轉(zhuǎn)換后的表達(dá)式位數(shù)比原來大,則進(jìn)行高位擴(kuò)展。無符號表達(dá)式用0進(jìn)行擴(kuò)展。有符號表達(dá)式用符號位擴(kuò)展。這種規(guī)則與將一個表達(dá)式賦值給位數(shù)不同的變量或線網(wǎng)時的操作是一樣的。
4、符號強(qiáng)制轉(zhuǎn)換
SystemVerilog確定操作結(jié)果是有符號還是無符號數(shù)的規(guī)則Verilog一致。SystemVerilog還可以顯示強(qiáng)制轉(zhuǎn)換值的符號。不管是操作數(shù)還是操作的結(jié)果都可以強(qiáng)制轉(zhuǎn)換符號。
SystemVerilog的符號強(qiáng)制轉(zhuǎn)換操作與Verilog中的系統(tǒng)函數(shù)$signed和 $unsigned執(zhí)行相同的轉(zhuǎn)換。
總結(jié)
- 上一篇: 设置成员操作符--inside
- 下一篇: 改进的for循环