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

  • 相关阅读:
    古代汉语:含义“死”的归类
    Inesa 路由器登录信息
    调试第三方源码
    暑假作业日总结
    暑假作业日总结
    暑假作业日总结
    暑假作业日总结
    暑假作业日总结
    暑假作业:《大道至简》读后感
    暑假作业日总结
  • 原文地址:https://www.cnblogs.com/lightmonster/p/15304629.html
Copyright © 2011-2022 走看看