zoukankan      html  css  js  c++  java
  • signed add

    哎,作为一个xx貌似我只会盗用别人的code。这个还是“copy”真OO 无双大师的手笔写的

     1 //date:2013/6/15
     2 //designer :pengxiaoen
     3 //function:signed number add
     4 
     5 module signed_add (
     6                    clock,reset,
     7                          p_i,n_i,
     8                          sum_o
     9                          );
    10 input clock,reset;
    11 input [3:0] p_i;
    12 input [2:0] n_i;
    13 output[3:0] sum_o;
    14 
    15 reg [4:0] sum_reg;
    16 always @ (posedge clock or negedge reset)
    17 if(!reset)
    18   sum_reg <= 5'd0;
    19 else 
    20   sum_reg <= {p_i[3],p_i} + {{2{n_i[2]}},n_i};
    21   
    22 assign sum_o = (~sum_reg[4] & sum_reg[3]) ? 4'b0111 :  // + overflow
    23                (sum_reg[4] & ~sum_reg[3]) ? 4'b1000 :  // - overflow
    24                      sum_reg [3:0] ;
    25                      
    26 endmodule 

    这个code值得学习的 地方是这个overflow,大家知道在硬件中使用加法实现减法,除法和乘法。那么在signed运算时,这个时候不免要多留个心眼了。本code中给出了一个检测方法,图片
    +overflow 表示 sum 超出了正上限
    -overflow 表示 sum 超出了负下限

  • 相关阅读:
    架构原则
    基于DDD的Lean Framework
    Javascript 内核Bug
    Back
    Exercise:函数应用于排序
    Lesson5:函数简单应用(二)
    lesson4: 函数简单应用
    lesson3: While 语句简单应用
    range 和len的并用
    lesson2: Python:for语句简单应用
  • 原文地址:https://www.cnblogs.com/sepeng/p/3137913.html
Copyright © 2011-2022 走看看