IEEE standard for verilog (Expressions)

4.Expressions

ieee verilog 2001的阅读笔记

4.1 operators

4.1.8 Equality operators


项目Value
a===ba与b相等包括x与z的状态
a!==ba与b不相等包括x与z的状态

4.1.10 bit-wise(按位) operators

x与z的操作结果与x的操作结果相同

4.1.11 Reduction operators


项目Value
^xor 异或 odd number 1 set
~^xnor 同或 even(偶数) number 1 set

4.1.12 shift operators

逻辑移位操作 “<<”,“>>” 算术移位操作 “>>>”,“<<<”
算术移位操作右移时根据最高位的值进行填充

4.1.13 Conditional operators

条件运算符也叫(ternary)三目运算符.如果表达式1的结果是模糊值(ambiguous value)x,z那么结果是表达式2和表达式3的组合值。组合值按位组合相同则输出相同值(除开z),不同则输出未知x。如果位数不相等则更短的数高位进行0扩展。

4.1.14 concatenations

concatenations连接运算符,以commas逗号分隔。表达式的第一项应该非0,非未知x,非高阻z。未知大小的数字不允许出现在连接运算符中。{a,b}

4.2 Operands

4.2.1 Vector bit-select and part-select addressing

bit-select中如果位选择的地址范围超过大小或者地址是X或者Z那么返回的值是x。part-selects中选择几个contiguous相邻的位。

vect[msb_expr:lsb_expr]

向量的part-select

reg [15:0]big_vect;
reg [0:15]little_vect;

big_vect[lsb_base_expr +:width_expr]
little_vect[msb_base_expr +:width_expr]

big_vect[msb_base_expr -:width_expr]
little_vect[lsb_base_expr -:width_expr]

位宽表达式必须为常量width_expr,base_expr位基表达式可以运行时变化

4.2.2 Array and memory addressing

申明一个位宽为8长度为1024的数组

reg [7:0] mem_name[0:1023]

多维数组

wire threed_arry[0:255] [0:255] [0:7]

4.2.3 Strings

操作符会把字符串当做数值进行操作。字符串对应一个8位的ASCII码。
1.string opeerations:有复制、拼接、比较三种操作对应赋值、拼接、等号操作符。
2.String value padding and potential problems:字符串进行赋值操作会进行0填充最高位会影响拼接与比较的结果。
3.NUll string handing:空字符串(" ")的值等于ASCII NULL(“\0”)其值为0.

4.3 Minimum, typical,and maximum delay expressions

延迟表达式可以定义为3种表达式通过colons(冒号)分隔包围在parentheses(括号中)

(a:b:c)  min:typ:max

4.4 Expression bit lengths

处理在运算时结果的位数是未知的情况。

4.4.1 Rules for expression bit lengths

self-determined expression:表达式的位长仅仅由表达式自身决定
context-determined expression:由表达式的位长以及另一个表达式的结果。

4.4.2 An example of an expression bit-length problem

在对一个表达式进行评估时,interim(临时)的结果采用最大操作数的结果。

4.4.3 Example of self-determined expressions

4.5 Signed expressions

返回的值与表达式相同位宽相同类型由函数确定

$signed()   regS= $signed(4'b1100) regS = -4
$unsigned() regA = $unsigned(-4) regA=4'b1100

4.5.1 Rules for expression types

实数通过类型强制(coercion)转换到整数是有符号的。

4.5.2 steps for evaluating an expression

只有操作数是有符号类型的才进行有符号拓展

4.5.3 Steps for evaluating an assignment

只有表达式右值是有符号类型才进行有符号的拓展

4.5.4 Handling X and Z in signed expressions

有符号操作数被拓展成更大的有符号数时有符号位为X

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值