RISC-V MCU中文社区

【分享】 【分享】关于E203内核高性能乘法器优化(三)

发表于 全国大学生集成电路创新创业大赛 2023-05-28 17:26:57
0
2253
1

团队编号:CICC1230

团队名称:少吃米饭多吃肉

4:2压缩器优化

一般的4:2压缩器是由两级3:2压缩器串接起来的,而3:2压缩器的实质就是全加器,其结构如下:
图片alt
表达式如下:
图片alt
代码实现:

  1. module full_adder(
  2. input a,
  3. input b,
  4. input cin,
  5. output cout,
  6. output s
  7. );
  8. assign s = a ^ b ^ cin;
  9. assign cout = a & b | (cin & (a | b));
  10. endmodule

其中输出cout的权重要大于S一位才能继续送入下一个模块压缩
而对于直接串联的4:2压缩器如下:
图片alt
逻辑表达式如下:
图片alt
优化后:
图片alt
图片alt
可以看到原本的3:2压缩器两级串联会有4个XOR的延迟,而改进之后只有三个XOR的延迟
具体代码实现如下:

  1. module single42 (
  2. input op1,
  3. input op2,
  4. input op3,
  5. input op4,
  6. input Cin,
  7. output Cout,
  8. output Carry,
  9. output Sum
  10. );
  11. wire o1,o2,o3,o4;
  12. xor xor2(o2,op3,op4);
  13. xor xor1(o1,op1,op2);
  14. xor xor3(o3,o1,o2);
  15. xor xor4(o4,o3,Cin);
  16. assign Sum = o4;
  17. assign Cout = (o1 == 1'b1) ? op1 : op3;
  18. assign Carry = (o3 == 1'b1) ? op4 : Cin;
  19. endmodule
喜欢1
用户评论
EvanIC

EvanIC 实名认证

IC_dog

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板