zoukankan      html  css  js  c++  java
  • verilog Signed与赋值形式

    `timescale 1ns/1ps
    module test;
    reg signed[3:0] uu;
    reg signed[3:0] dd;
    reg [2:0] extract;
    reg [4:0] sum;
    initial
    begin
    uu=-7;
    dd=3;
    extract=uu[2:0]
    sum=uu+dd;
    #10
    uu=7;
    dd=-3;
    extract=uu[2:0]
    sum=uu+dd;
    #10
    uu=-7;
    dd=-3;
    extract=uu[2:0]
    sum=uu+dd;
    end
    endmodule

    如上述代码,当声明的reg sign通过整数形式赋值,实际得到的是所看到的值的补码形式,如uu=-7,则uu的实际存储值为4‘b1001,即-7在4bit下的补码,即有符号数4’b1111的补码4‘b1001,然后使用补码进行运算。

    `timescale 1ns/1ps
    module test;
    reg signed[3:0] uu;
    reg signed[3:0] dd;
    reg [2:0] extract;
    reg [4:0] sum;
    initial
    begin
    uu=4'b1111;
    dd=4'b0011;
    extract=uu[2:0]
    sum=uu+dd;
    #10
    uu=4'b0111;
    dd=4'b1011;
    extract=uu[2:0]
    sum=uu+dd;
    #10
    uu=4'b1111;
    dd=4'b1011;
    extract=uu[2:0]
    sum=uu+dd;
    end
    endmodule

    当reg signed通过上述方式进行赋值时,则默认直接使用编程用户已经进行了原码到补码的转换,此时所写即所存,仍然为补码的形式保存和进行后续计算,这一点区别于使用整数型的值进行赋值。

  • 相关阅读:
    ios实现下拉刷新,上拉加载
    ios实现瀑布流
    ios收货地址三级联动选择
    ios仿淘宝管理收货地址demo
    引用传值
    继承小结
    is操作符和as操作符
    抽象类和object类
    重写基类
    派生
  • 原文地址:https://www.cnblogs.com/lightmonster/p/15304629.html
Copyright © 2011-2022 走看看