让找料更便捷
电子元器件
采购信息平台
生意随身带
随时随地找货
一站式电子元器件
采购平台
半导体行业观察第一站
标签:
摘要:4.6.1 算术运算符在常用的算术运算符主要是:加法(二元运算符):“+”; 减法(二元运算符):“-”; 乘法(二元运算符):“*”; 在算术运算符的使用中,注意如下两个问题: 1. 算术操作结果的位数长度算术表达式结果的长度由最长的操作数决定。在赋值语句下,算术操作结果的长度由操作符左端目标长度决定。考虑如下实例: reg [3:0] Arc, Bar, Crt; reg [5:0] Frx
4.6.1 算术运算符
在常用的算术运算符主要是:
加法(二元运算符):“+”;
减法(二元运算符):“-”;
乘法(二元运算符):“*”;
在算术运算符的使用中,注意如下两个问题:
1. 算术操作结果的位数长度
算术表达式结果的长度由最长的操作数决定。在赋值语句下,算术操作结果的长度由操作符
左端目标长度决定。考虑如下实例:
reg [3:0] Arc, Bar, Crt;
reg [5:0] Frx;
. . .
Arc = Bar + Crt;
Frx = Bar + Crt;
第一个加的结果长度由Bar ,Crt 和A rc 长度决定,长度为4 位。
第二个加法操作的长度同样由Frx 的长度决定(Frx 、Bat 和Crt 中的最长长度),长度为6
位。
在第一个赋值中,加法操作的溢出部分被丢弃;而在第二个赋值中,任何溢出的位存储在结
果位Frx [ 4 ]中。
在较大的表达式中,中间结果的长度如何确定?在Verilog HDL 中定义了如下规则:表达式中
的所有中间结果应取最大操作数的长度(赋值时,此规则也包括左端目标)。考虑另一个实例:
wire [4:1] Box, Drt;
wire [5:1] Cfg;
wire [6:1] Peg;
wire [8:1] Adt;
. . .
assign Adt = (Box + Cfg) + (Drt + Peg) ;
表达式右端的操作数最长为6 ,但是将左端包含在内时,最大长度为8 。所以所有的加操作使
用8 位进行。例如:Box 和Cfg 相加的结果长度为8 位。
2. 有符号数和无符号数
在设计中,请先按无符号数进行。
4.6.2 关系运算符
关系运算符有:
?>(大于)
2004-08-16 第22页,共41页
版权所有,侵权必究
?<(小于)
?>= (不小于)
?<= (不大于)
= = (逻辑相等)
!= (逻辑不等)
关系操作符的结果为真(1 )或假(0 )。如果操作数中有一位为X 或Z ,那么结果为X 。
例:
23 > 45
结果为假(0 ),而:
52 < 8"hxFF
结果为x 。
如果操作数长度不同,长度较短的操作数在最重要的位方向(左方)添0 补齐。例如:
"b1000 > = "b01110
等价于:
"b01000 > = "b01110
结果为假(0 )。
在逻辑相等与不等的比较中,只要一个操作数含有x 或z,比较结果为未知(x),如:
假定:
Data = "b11x0;
Addr = "b11x0;
那么:
Data = = Addr 比较结果不定,也就是说值为x 。
| 型号 | 厂商 | 价格 |
|---|---|---|
| EPCOS | 爱普科斯 | / |
| STM32F103RCT6 | ST | ¥461.23 |
| STM32F103C8T6 | ST | ¥84 |
| STM32F103VET6 | ST | ¥426.57 |
| STM32F103RET6 | ST | ¥780.82 |
| STM8S003F3P6 | ST | ¥10.62 |
| STM32F103VCT6 | ST | ¥275.84 |
| STM32F103CBT6 | ST | ¥130.66 |
| STM32F030C8T6 | ST | ¥18.11 |
| N76E003AT20 | NUVOTON | ¥9.67 |