数字电路设计之低功耗设计方法四:预计算

pre-computation:这是一个预先计算,在一定条件下,可以做出判断之后,对于一些没必要的计算那就不计算。如果应用已有的计算无法得出正确的结果,那么就继续往下计算直到计算出所需的结果。这个做法相比原始的全部计算的方法大大降低了动态功耗。比如一个比较器,如果计算第一位更大,那么已经得出了结果,那么剩余位的计算显得不那么重要。


没有预计算的代码:

module precomputation(
num_A,
num_B,
clk,
clr,
result
    );

input wire [63:0]num_A;
input wire [63:0]num_B;
input wire clk;
input wire clr;
output reg result;
 
wire [63:0]temp;

assign temp = num_A + ~num_B + 1;
 
always@(posedge clr,posedge clk)
   if(clr)
  result <= 0;
else
  if(temp[63] == 1)
   result <= 0;
      else
   result <= 1;

endmodule


有预计算的代码:

module pre(
num_A,
num_B,
clk,
clr,
result
    );

input wire [63:0]num_A;
input wire [63:0]num_B;
input wire clk;
input wire clr;
output reg result;

reg [59:0]temp;

always@(posedge clr,posedge clk)
   if(clr)
  result <= 0;
else
  if(num_A[63] == 1 && num_B[63] == 0)
   result <= 0;
      else if(num_A[63] == 0 && num_B[63] == 1)
   result <= 1;
else
      begin
  if(num_A[62] == 1 && num_B[62] == 0)
   result <=

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值