【芯片前端】基于DC综合的逻辑深度与cell count汇总:加法器
2021/11/18 6:14:26
本文主要是介绍【芯片前端】基于DC综合的逻辑深度与cell count汇总:加法器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
统计结果
C = A + B
输入位宽1 | 输入位宽2 | 输出位宽 | 逻辑深度 | cell count |
1024 | 1024 | 1024 | 32 | 11440 |
512 | 512 | 512 | 29 | 5444 |
256 | 256 | 256 | 27 | 2591 |
128 | 128 | 128 | 26 | 1217 |
64 | 64 | 64 | 21 | 600 |
32 | 32 | 32 | 24 | 265 |
16 | 16 | 16 | 19 | 22 |
8 | 8 | 8 | 10 | 9 |
4 | 4 | 4 | 5 | 12 |
备注
4bit + 4bit的dc映射,cell cout = 12
/ // Created by: Synopsys DC Expert(TM) in wire load mode // Version : L-2016.03-SP1 // Date : Wed Nov 17 10:39:36 2021 / module test ( clk, rst_n, in_data1, in_data2, out_data ); input [3:0] in_data1; input [3:0] in_data2; output [3:0] out_data; input clk, rst_n; wire n1, n2, n3, n4, n5, n6, n9, n10; OAI2BB1X1 U13 ( .A0N(in_data1[1]), .A1N(in_data2[1]), .B0(n6), .Y(n3) ); OAI211XL U14 ( .A0(in_data1[1]), .A1(in_data2[1]), .B0(in_data1[0]), .C0( in_data2[0]), .Y(n6) ); XOR2X1 U15 ( .A(n9), .B(n10), .Y(out_data[1]) ); NAND2X2 U16 ( .A(in_data1[0]), .B(in_data2[0]), .Y(n9) ); XNOR2X1 U17 ( .A(in_data2[1]), .B(in_data1[1]), .Y(n10) ); XOR2X1 U18 ( .A(in_data2[0]), .B(in_data1[0]), .Y(out_data[0]) ); XOR2X1 U19 ( .A(n3), .B(n5), .Y(out_data[2]) ); XOR2X1 U20 ( .A(in_data2[2]), .B(in_data1[2]), .Y(n5) ); XOR2X1 U21 ( .A(n1), .B(n2), .Y(out_data[3]) ); XOR2X1 U22 ( .A(in_data2[3]), .B(in_data1[3]), .Y(n2) ); AOI2BB1X2 U23 ( .A0N(n3), .A1N(in_data1[2]), .B0(n4), .Y(n1) ); AOI21X1 U24 ( .A0(in_data1[2]), .A1(n3), .B0(in_data2[2]), .Y(n4) ); endmodule
8bit + 8bit的dc映射,cell cout = 9:
module test_DW01_add_0 ( A, B, SUM ); input [7:0] A; input [7:0] B; output [7:0] SUM; wire n1; wire [7:2] carry; XOR3XL U1_7 ( .A(A[7]), .B(B[7]), .C(carry[7]), .Y(SUM[7]) ); ADDFX1 U1_6 ( .A(A[6]), .B(B[6]), .CI(carry[6]), .CO(carry[7]), .S(SUM[6]) ); ADDFX1 U1_5 ( .A(A[5]), .B(B[5]), .CI(carry[5]), .CO(carry[6]), .S(SUM[5]) ); ADDFX1 U1_4 ( .A(A[4]), .B(B[4]), .CI(carry[4]), .CO(carry[5]), .S(SUM[4]) ); ADDFX1 U1_3 ( .A(A[3]), .B(B[3]), .CI(carry[3]), .CO(carry[4]), .S(SUM[3]) ); ADDFX1 U1_2 ( .A(A[2]), .B(B[2]), .CI(carry[2]), .CO(carry[3]), .S(SUM[2]) ); ADDFX1 U1_1 ( .A(A[1]), .B(B[1]), .CI(n1), .CO(carry[2]), .S(SUM[1]) ); AND2X2 U1 ( .A(B[0]), .B(A[0]), .Y(n1) ); XOR2X1 U2 ( .A(B[0]), .B(A[0]), .Y(SUM[0]) ); endmodule module test ( clk, rst_n, in_data1, in_data2, out_data ); input [7:0] in_data1; input [7:0] in_data2; output [7:0] out_data; input clk, rst_n; test_DW01_add_0 add_13 ( .A(in_data1), .B(in_data2), .SUM(out_data) ); endmodule
这篇关于【芯片前端】基于DC综合的逻辑深度与cell count汇总:加法器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15AntDesign项目实战:新手入门与初级应用教程
- 2024-11-15AntDesign-Form-rules项目实战:新手指南
- 2024-11-14ESLint课程:初学者指南
- 2024-11-14Form.List 动态表单课程:新手入门教程
- 2024-11-14Redux课程:新手入门完全指南
- 2024-11-13MobX 使用入门教程:轻松掌握前端状态管理
- 2024-11-12前端编程资料:新手入门指南与初级教程
- 2024-11-12前端开发资料入门指南
- 2024-11-12前端培训资料:适合新手与初级用户的简单教程
- 2024-11-12前端入门资料:新手必读指南