1、 讨论VerilogHDL的主要运算符并与VHDL的运算符进行比较 参考文献 IEEEstandardforVeriloghardwaredescriptionlanguage 1364 2005 逻辑运算符 按位运算符 缩位运算符 移位运算符 目录 运算符的优先级 算术运算符 关系运算符 相等运算符 条件运算符 拼接运算符 复制运算符 运算符的优先级 算术运算符 a ba ba ba ba b a b a的b次方 在VHDL中 算术运算符还包括REM取余 ABS取绝对值 求模 在VHDL中运算符是 MOD 11 3结果为212 3结果为0 10 3结果为 111 3结果为2 整数相除 结果的
2、符号与被除数相同 数值为余数 10 3 75结果为2 5 10 3 75 10 floor 10 3 75 3 75 10 2 3 75 2 5 关系运算符 1 2 3 4 a b a b a b a b 相等运算符 1 2 逻辑相等 逻辑不等 全等 不全等 逐位比较对x z不进行比较 若包含x z 则比较结果为x 为 的结果取非 逐位比较对x z也进行比较 完全相同则结果为真 为 的结果取非 举例 A 4 bxx01 B 4 bxx01则A B运算结果为xA B运算结果为1 逻辑运算符 not and or 逻辑操作符的结果为1位逻辑值 1fortrue 0forfalse 逻辑操作符只对逻
3、辑值进行运算 操作数每一位都为零 则其逻辑值为false 操作数有任一位为1 则其逻辑值为true 操作数只包含0 x z 则其逻辑值为x 将nonzeroortrue的操作数转换为0 将0转换为1 举例 if inword 等同于if inword 0 按位运算符 缩位运算符 第0位与第1位进行运算 得到结果再与第1位进行运算 得到结果与更高位进行运算 依次进行下去 是单目运算符 结果为1位 移位运算符 1 2 逻辑移位运算符 算术移位运算符 右边的缺位都填0 左边的缺位填0 左边的缺位填MSB i e 有符号数的符号 若MSB是x或z 则填x 结果为0100 结果为1110 条件运算符 若
4、expression1判定false 0 则执行expression3若判定为true 1 则执行expression2若为模糊值 x z 则expression2和3都被执行 执行结果按下表按位计算出来 若expression2或3的结果中包含实数 则最终令执行结果为0 assignout sel 0 a b 若sel为0则将a赋给out若sel为1则将b赋给out若sel为x或z则 若a b同为1则将1赋给out 若a b同为0则将0赋给out 若a b值不同或有x或z则将x赋给out expression1 expression2 expression3 拼接运算符 拼接采用 例2 1 b1 3 b101 等价于 1 b1 1 b1 1 b0 1 b1 其值为4 b1101 例1 hello world 其值为 helloworld 复制运算符 复制的遍数 要复制的东西 例3 4 w 等价为 w w w w 例4 b 3 a b 等价为 b a b a b a b 在VHDL中 只有拼接功能 没有复制功能拼接采用的符号是 或 例5 c 0 0 1 a c 0 0 1 a 结果都是001a