输入信号为8比特的流水线的无符号加法器的两种情况对比

情况一
输入信号为8比特位宽流水线无符号加法器代码

module pipeline_adder_8bit(
  IN1   ,
  IN2   ,
  CLK   ,
  OUT   );
input  [7:0] IN1, IN2;
input CLK;
output  [4:0] OUT;
reg [7:0] in1_d1R, in2_d1R;
reg  [4:0] adder_out, OUT;
always@(posedge CLK) begin // 生成D触发器的always块
  in1_d1R <= IN1;
  in2_d1R <= IN2;
  OUT     <= adder_out;
end
always@(in1_d1R or in2_d1R) begin // 生成组合逻辑的always 
  adder_out = in1_d1R + in2_d1R;
end
endmodule

输入信号为8比特位宽流水线无符号加法器时序仿真图
在这里插入图片描述不带流水线的情况无符号加法器时序仿真图在这里插入图片描述
通过上面两幅图片的对比发现:
输入信号为8比特位宽流水线无符号加法器信号输出延迟变长,同时有毛刺时间长度减小。

情况二
输入信号为8比特位宽的二级流水线无符号加法器代码

module pipeline2_adder(
  IN1   ,
  IN2   ,
  CLK   ,
  OUT   );
input  [7:0] IN1, IN2;
input CLK;
output  [4:0] OUT;
reg [7:0] in1_d1R, in2_d1R, in1_d2R,in2_d2R;
reg  [4:0] adder_out, OUT;
always@(posedge CLK) begin // 生成D触发器的always块
  in1_d1R <= IN1;
  in1_d2R <= in1_d1R;
  in2_d1R <= IN2;
  in2_d2R <= in2_d1R;
  OUT     <= adder_out;
end
always@( in1_d2R or in2_d2R) begin // 生成组合逻辑的always 
  adder_out = in1_d2R + in2_d2R;
end
endmodule

输入信号为8比特位宽二级流水线无符号加法器RTL View在这里插入图片描述
输入信号为8比特位宽二级流水线无符号加法器时序仿真图
在这里插入图片描述
通过观察上面两张时序仿真图可以发现:
增加一级流水线无符号信号加法器的信号输出延迟更长,同时毛刺存在的时间长度更小。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值