zoukankan      html  css  js  c++  java
  • 常见的关系运算符(缩减运算符)

    写在前面的话

    缩减运算符是单目运算符,也有与或非运算。其与或非运算规则类似于位运算符的与或非运算规则,但其运算过程不同。位运算是对操作数的相应位进行与或非运算,操作数是几位数则运算结果也是几位数。而缩减运算则不同,缩减运算是对单个操作数进行与或非递推运算,最后的运算结果是一位的二进制数。缩减运算的具体运算过程是这样的:第一步先将操作数的第一位与第二位进行与或非运算,第二步将运算结果与第三位进行与或非运算,依次类推,直到最后一位。例如:

    reg[3:0]B;

    reg C;

    C=&B;

    相当于

    C=((B[0]&B[1])&B[2])&B[3];

    工程实例

    下面,梦翼师兄给大家编写一个实例,通过仿真波形来验证运算结果是否如我们所说。可综合模块代码如下

        /****************************************************          

        *   Engineer        :   梦翼师兄

        *   QQ               :   761664056

        *   The module function:缩减语句运算模块

        *****************************************************/

    01  module reduce(clk,rst_n,c);

    02  input clk;//系统时钟输入

    03  input rst_n;//系统复位

    04

    05  output reg c;//输出寄存器定义

    06

    07  reg [3:0]B;//内部寄存器定义

    08

    09  always@(posedge clk or negedge rst_n)

    10      begin

    11          if(!rst_n)

    12              begin

    13                  c<=0;

    14                  B<=4'b1111;

    15              end 

    16          else

    17              begin

    18                  c<=&B;

    19              end 

    20      end 

    21

    22  endmodule

    编写测试代码如下

        /****************************************************          

        *   Engineer        :   梦翼师兄

        *   QQ               :   761664056

        *   The module function:缩减语句测试模块

        *****************************************************/

    01  `timescale 1ns/1ps 

    02  module tb;

    03  reg clk;    

    04  reg rst_n;

    05

    06  wire c;

    07

    08  initial

    09      begin

    10          clk=0;

    11          rst_n=0;

    12          # 1000.1 rst_n=1;

    13      end 

    14

    15  always #10 clk=~clk;    

    16      

    17  reduce reduce(

    18      .clk(clk),

    19      .rst_n(rst_n),

    20      .c(c)

    21    );

    22  endmodule 

    查看仿真波形如下:

    通过该波形可以看出,当变量B的四个位全部为高时,由于是“逻辑与”的运算,所以最终输出的变量C为高电平。

    那么如果我们在变量B中加入一个零,结果会如何呢?我们仿真如下:

    可以看到,如果变量B中存在零,那么输出结果由于“逻辑与”会得到低电平。

  • 相关阅读:
    XML验证框架在项目中的应用
    Container.DataItem几种方式.
    XMLSpy 的使用
    介绍一个工具给大家,做网站时,经常要上传文件到外网服务器,但是上传时往往需要很长时间,如果有一个文件对比工具……
    Xcopy 帮助.net 2005组件化开发
    不影响原有的onload方法的前提下,在页面中增加onload的执行方法
    如何将XSD文件以及引入import的文件生成相应的C#类。
    封装my97时间控件成asp.net 时间控件,支持多语言,皮肤,时间大小限制,时间格式验证功能,非常强大。
    参数化使用ADO.NET的OleDb方法时注意不能使用@参数
    提供一个通用的Javascript验证页面输入的脚本给大家,并希望大家提意见呀
  • 原文地址:https://www.cnblogs.com/mengyi1989/p/11515976.html
Copyright © 2011-2022 走看看