verilog 中signed数据处理,负数

发布时间:2022-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了verilog 中signed数据处理,负数脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

veriLOG中支持signed 数据类型,即支持负数的处理。此时参与运算的各个数均应是signed类型,且数据位相同(若位宽不相同,则应手动将其扩展为位宽相同,具体做法就是将最高位的符号位进行扩展),且运算结果要比运算数的位数大以止溢出。以下用两个小例子进行说明。细节可参考此篇文章: http://www.cnblogs.COM/oomusou/Archive/2009/10/31/verilog_signed_overflow.htML

Examp 1.

  1.  
    module top(clk,a,b,c);
  2.  
    input clk;
  3.  
    input signed [7:0] a;
  4.  
    input signed [7:0] b;
  5.  
    output reg signed [8:0] c;
  6.  
     
  7.  
    always@(posEdge clk)
  8.  
    begin
  9.  
    if((a-b)< 0)
  10.  
    c <= b - a;
  11.  
    else if ((b-a)==0)
  12.  
    c <= 0;
  13.  
    else
  14.  
    c <= a - b;
  15.  
    end
  16.  
     
  17.  
    endmodule

testbench:

  1.  
    module sim_top ;
  2.  
     
  3.  
    reg clk;
  4.  
    reg signed [7:0] a;
  5.  
    reg signed [7:0] b;
  6.  
    wire signed [8:0] c;
  7.  
     
  8.  
    inITial begin
  9.  
    clk= 0;
  10.  
    a=0;
  11.  
    b=8;
  12.  
    forever clk=#5 ~clk ;
  13.  
    end
  14.  
     
  15.  
    always@(posedge clk)
  16.  
    begin
  17.  
    a<=a+2;
  18.  
    b<=b+1;
  19.  
    end
  20.  
     
  21.  
    top my_top(
  22.  
    .clk(clk),
  23.  
    .a(a),
  24.  
    .b(b),
  25.  
    .c(c));
  26.  
     
  27.  
    endmodule

仿真结果图:

verilog 中signed数据处理,负数

 

 

 

verilog 中signed数据处理,负数

Examp 2:

  1.  
    module top(clk,a,b,c);
  2.  
    input clk;
  3.  
    input signed [7:0] a;
  4.  
    input signed [7:0] b;
  5.  
    output reg signed [8:0] c;
  6.  
     
  7.  
    always@(posedge clk)
  8.  
    begin
  9.  
    /* if((a-b)< 0)
  10.  
    c <= b - a;
  11.  
    else if ((b-a)==0)
  12.  
    c <= 0;
  13.  
    else*/
  14.  
    c <= a - b;
  15.  
    end
  16.  
     
  17.  
    endmodule

testbench同上。

仿真结果:

verilog 中signed数据处理,负数

 

verilog 中signed数据处理,负数

 

脚本宝典总结

以上是脚本宝典为你收集整理的verilog 中signed数据处理,负数全部内容,希望文章能够帮你解决verilog 中signed数据处理,负数所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。