zoukankan      html  css  js  c++  java
  • Verilog HDL按位操作符与归约操作符的区别

    以下来自百度知道:http://zhidao.baidu.com/question/420476218.html

    按位是二元操作符,是将操作符两边的操作数进行 操作符所规定的运算 ,
    
    例如:a & b(a=1,b=1),出来结果为1;
    归约是一元操作符,是将操作数的几个bit位当成1bit的操作数进行操作符所规定的运算,
    例如:a=4’b1101,则 &a= 1&1&0&1 =0
    具体到程序综合的时候,综合工具会根据你操作数的多少来区分你的意图

    以下来自:http://www.dzsc.com/data/html/2007-4-30/28721.html
    归约操作符在单一操作数的所有位上操作,并产生1位结果。





     归约操作符有:


    & (归约与)

    如果存在位值为0, 那么结果为0;若如果存在位值为x或z,结果为x;否则结果为1。

    ~& (归约与非)

    与归约操作符&相反。

     (归约或)
    

    如果存在位值为1,那么结果为1;如果存在位x或z,结果为x;否则结果为0。

    ~ (归约或非)

    与归约操作符相反。

    ^ (归约异或)

    如果存在位值为x或z,那么结果为x;否则如果操作数中有偶数个1, 结果为0;否则结果为1。

    ~^ (归约异或非)

    与归约操作符^正好相反。


    如下所示。假定,
    A = 'b0110;
    B = 'b0100;
    那么
    :
    B 结果为1

    & B 结果为0

    ~ A 结果为1

    归约异或操作符用于决定向量中是否有位为x。
    假定,
    MyReg = 4'b01x0;
    那么
    :
    ^MyReg 结果为x
      
    上述功能使用如下的if语句检测:


    if (^MyReg = = = 1'bx)
    $ display ("There is an unknown in the vector MyReg !")


    注意逻辑相等(==)操作符不能用于比较;
    逻辑相等操作符比较将只会产生结果x。全等操作符期望的结果为值1。
  • 相关阅读:
    JS判断鼠标从什么方向进入一个容器
    [JS进阶] 编写可维护性代码 (1)
    CSS3 animation小动画
    如何使用js捕获css3动画
    webpack入门(译)
    js拖拽3D立方体旋转
    简单3D翻转
    html 基础
    python 并发编程
    python 网络编程
  • 原文地址:https://www.cnblogs.com/youngforever/p/3123253.html
Copyright © 2011-2022 走看看