Verilog HDL算術(shù)運(yùn)算符
發(fā)布時(shí)間:2008/5/28 0:00:00 訪問次數(shù):2602
4.6.1 算術(shù)運(yùn)算符
在常用的算術(shù)運(yùn)算符主要是:
加法(二元運(yùn)算符):“+”;
減法(二元運(yùn)算符):“-”;
乘法(二元運(yùn)算符):“*”;
在算術(shù)運(yùn)算符的使用中,注意如下兩個(gè)問題:
1. 算術(shù)操作結(jié)果的位數(shù)長度
算術(shù)表達(dá)式結(jié)果的長度由最長的操作數(shù)決定。在賦值語句下,算術(shù)操作結(jié)果的長度由操作符
左端目標(biāo)長度決定?紤]如下實(shí)例:
reg [3:0] arc, bar, crt;
reg [5:0] frx;
. . .
arc = bar + crt;
frx = bar + crt;
第一個(gè)加的結(jié)果長度由bar ,crt 和a rc 長度決定,長度為4 位。
第二個(gè)加法操作的長度同樣由frx 的長度決定(frx 、bat 和crt 中的最長長度),長度為6
位。
在第一個(gè)賦值中,加法操作的溢出部分被丟棄;而在第二個(gè)賦值中,任何溢出的位存儲在結(jié)
果位frx [ 4 ]中。
在較大的表達(dá)式中,中間結(jié)果的長度如何確定?在verilog hdl 中定義了如下規(guī)則:表達(dá)式中
的所有中間結(jié)果應(yīng)取最大操作數(shù)的長度(賦值時(shí),此規(guī)則也包括左端目標(biāo))?紤]另一個(gè)實(shí)例:
wire [4:1] box, drt;
wire [5:1] cfg;
wire [6:1] peg;
wire [8:1] adt;
. . .
assign adt = (box + cfg) + (drt + peg) ;
表達(dá)式右端的操作數(shù)最長為6 ,但是將左端包含在內(nèi)時(shí),最大長度為8 。所以所有的加操作使
用8 位進(jìn)行。例如:box 和cfg 相加的結(jié)果長度為8 位。
2. 有符號數(shù)和無符號數(shù)
在設(shè)計(jì)中,請先按無符號數(shù)進(jìn)行。
4.6.2 關(guān)系運(yùn)算符
關(guān)系運(yùn)算符有:
?>(大于)
2004-08-16 第22頁,共41頁
版權(quán)所有,侵權(quán)必究
?<(小于)
?>= (不小于)
?<= (不大于)
= = (邏輯相等)
!= (邏輯不等)
關(guān)系操作符的結(jié)果為真(1 )或假(0 )。如果操作數(shù)中有一位為x 或z ,那么結(jié)果為x 。
例:
23 > 45
結(jié)果為假(0 ),而:
52 < 8'hxff
結(jié)果為x 。
如果操作數(shù)長度不同,長度較短的操作數(shù)在最重要的位方向(左方)添0 補(bǔ)齊。例如:
'b1000 > = 'b01110
等價(jià)于:
'b01000 > = 'b01110
結(jié)果為假(0 )。
在邏輯相等與不等的比較中,只要一個(gè)操作數(shù)含有x 或z,比較結(jié)果為未知(x),如:
假定:
data = 'b11x0;
addr = 'b11x0;
那么:
data = = addr 比較結(jié)果不定,也就是說值為x 。
4.6.1 算術(shù)運(yùn)算符
在常用的算術(shù)運(yùn)算符主要是:
加法(二元運(yùn)算符):“+”;
減法(二元運(yùn)算符):“-”;
乘法(二元運(yùn)算符):“*”;
在算術(shù)運(yùn)算符的使用中,注意如下兩個(gè)問題:
1. 算術(shù)操作結(jié)果的位數(shù)長度
算術(shù)表達(dá)式結(jié)果的長度由最長的操作數(shù)決定。在賦值語句下,算術(shù)操作結(jié)果的長度由操作符
左端目標(biāo)長度決定?紤]如下實(shí)例:
reg [3:0] arc, bar, crt;
reg [5:0] frx;
. . .
arc = bar + crt;
frx = bar + crt;
第一個(gè)加的結(jié)果長度由bar ,crt 和a rc 長度決定,長度為4 位。
第二個(gè)加法操作的長度同樣由frx 的長度決定(frx 、bat 和crt 中的最長長度),長度為6
位。
在第一個(gè)賦值中,加法操作的溢出部分被丟棄;而在第二個(gè)賦值中,任何溢出的位存儲在結(jié)
果位frx [ 4 ]中。
在較大的表達(dá)式中,中間結(jié)果的長度如何確定?在verilog hdl 中定義了如下規(guī)則:表達(dá)式中
的所有中間結(jié)果應(yīng)取最大操作數(shù)的長度(賦值時(shí),此規(guī)則也包括左端目標(biāo))?紤]另一個(gè)實(shí)例:
wire [4:1] box, drt;
wire [5:1] cfg;
wire [6:1] peg;
wire [8:1] adt;
. . .
assign adt = (box + cfg) + (drt + peg) ;
表達(dá)式右端的操作數(shù)最長為6 ,但是將左端包含在內(nèi)時(shí),最大長度為8 。所以所有的加操作使
用8 位進(jìn)行。例如:box 和cfg 相加的結(jié)果長度為8 位。
2. 有符號數(shù)和無符號數(shù)
在設(shè)計(jì)中,請先按無符號數(shù)進(jìn)行。
4.6.2 關(guān)系運(yùn)算符
關(guān)系運(yùn)算符有:
?>(大于)
2004-08-16 第22頁,共41頁
版權(quán)所有,侵權(quán)必究
?<(小于)
?>= (不小于)
?<= (不大于)
= = (邏輯相等)
!= (邏輯不等)
關(guān)系操作符的結(jié)果為真(1 )或假(0 )。如果操作數(shù)中有一位為x 或z ,那么結(jié)果為x 。
例:
23 > 45
結(jié)果為假(0 ),而:
52 < 8'hxff
結(jié)果為x 。
如果操作數(shù)長度不同,長度較短的操作數(shù)在最重要的位方向(左方)添0 補(bǔ)齊。例如:
'b1000 > = 'b01110
等價(jià)于:
'b01000 > = 'b01110
結(jié)果為假(0 )。
在邏輯相等與不等的比較中,只要一個(gè)操作數(shù)含有x 或z,比較結(jié)果為未知(x),如:
假定:
data = 'b11x0;
addr = 'b11x0;
那么:
data = = addr 比較結(jié)果不定,也就是說值為x 。
熱門點(diǎn)擊
- Verilog HDL的wire和tri線網(wǎng)
- Verilog HDL 結(jié)構(gòu)建模實(shí)例化語句
- Verilog HDL算術(shù)運(yùn)算符
- Verilog HDL實(shí)例數(shù)組
- 基于FPGA的可編程定時(shí)器/計(jì)數(shù)器8253的
- Verilog HDL數(shù)據(jù)類型
- PLC和PLD的區(qū)別與聯(lián)系
- Verilog HDL移位操作符
- 用CP1306實(shí)現(xiàn)ADPCM編解碼功能
- Verilog HDL條件語句
推薦技術(shù)資料
- 聲道前級設(shè)計(jì)特點(diǎn)
- 與通常的Hi-Fi前級不同,EP9307-CRZ這臺分... [詳細(xì)]
- AMOLED顯示驅(qū)動芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計(jì)
- GB300 超級芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個(gè)最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究