学海荡舟手机网
导航

主页 > 电子设备技术 > 电器电路基础 > > 详细内容

Verilog-2001有符号运算

        在Verilog-1995中,integer数据类型为有符号类型,而reg和wire类型为无符号类型。而且integer大小固定,即为32位数据。在Verilog-2001中对符号运算进行了如下扩展。
   
    Reg和wire变量可以定义为有符号类型:
   
    reg signed [63:0] data;
    wire signed [7:0] vector;
    input signed [31:0] a;
    function signed [128:0] alu;
   
    函数返回类型可以定义为有符号类型。
   
    带有基数的整数也可以定义为有符号数,在基数符号前加入s符号。
   
    16'hC501 //an unsigned 16-bit hex value
    16'shC501 //a signed 16-bit hex value
    操作数可以在无符号和有符号之间转变。通过系统函数$signed和$unsigned实现。
   
    reg [63:0] a; //unsigned data type
    always @(a) begin
    result1 = a / 2; //unsigned arithmet
    result2 = $signed(a) / 2;//signed arithmetic
    end

相关文章