概述
卷积MAC(CMAC)模块是用于卷积运算的卷积流水线的一个阶段,module定义在NV_NVDLA_cmac.v,定义如下:
module NV_NVDLA_cmac (
csb2cmac_a_req_pd //|< i
,csb2cmac_a_req_pvld //|< i
,dla_clk_ovr_on_sync //|< i
,global_clk_ovr_on_sync //|< i
,nvdla_core_clk //|< i
,nvdla_core_rstn //|< i
,sc2mac_dat_data0 //|< i
,sc2mac_dat_data1 //|< i
,sc2mac_dat_data10 //|< i
,sc2mac_dat_data100 //|< i
,sc2mac_dat_data101 //|< i
,sc2mac_dat_data102 //|< i
,sc2mac_dat_data103 //|< i
,sc2mac_dat_data104 //|< i
,sc2mac_dat_data105 //|< i
,sc2mac_dat_data106 //|< i
,sc2mac_dat_data107 //|< i
,sc2mac_dat_data108 //|< i
,sc2mac_dat_data109 //|< i
,sc2mac_dat_data11 //|< i
,sc2mac_dat_data110 //|< i
,sc2mac_dat_data111 //|< i
,sc2mac_dat_data112 //|< i
,sc2mac_dat_data113 //|< i
,sc2mac_dat_data114 //|< i
,sc2mac_dat_data115 //|< i
,sc2mac_dat_data116 //|< i
,sc2mac_dat_data117 //|< i
,sc2mac_dat_data118 //|< i
,sc2mac_dat_data119 //|< i
,sc2mac_dat_data12 //|< i
,sc2mac_dat_data120 //|< i
,sc2mac_dat_data121 //|< i
,sc2mac_dat_data122 //|< i
,sc2mac_dat_data123 //|< i
,sc2mac_dat_data124 //|< i
,sc2mac_dat_data125 //|< i
,sc2mac_dat_data126 //|< i
,sc2mac_dat_data127 //|< i
,sc2mac_dat_data13 //|< i
,sc2mac_dat_data14 //|< i
,sc2mac_dat_data15 //|< i
,sc2mac_dat_data16 //|< i
,sc2mac_dat_data17 //|< i
,sc2mac_dat_data18 //|< i
,sc2mac_dat_data19 //|< i
,sc2mac_dat_data2 //|< i
,sc2mac_dat_data20 //|< i
,sc2mac_dat_data21 //|< i
,sc2mac_dat_data22 //|< i
,sc2mac_dat_data23 //|< i
,sc2mac_dat_data24 //|< i
,sc2mac_dat_data25 //|< i
,sc2mac_dat_data26 //|< i
,sc2mac_dat_data27 //|< i
,sc2mac_dat_data28 //|< i
,sc2mac_dat_data29 //|< i
,sc2mac_dat_data3 //|< i
,sc2mac_dat_data30 //|< i
,sc2mac_dat_data31 //|< i
,sc2mac_dat_data32 //|< i
,sc2mac_dat_data33 //|< i
,sc2mac_dat_data34 //|< i
,sc2mac_dat_data35 //|< i
,sc2mac_dat_data36 //|< i
,sc2mac_dat_data37 //|< i
,sc2mac_dat_data38 //|< i
,sc2mac_dat_data39 //|< i
,sc2mac_dat_data4 //|< i
,sc2mac_dat_data40 //|< i
,sc2mac_dat_data41 //|< i
,sc2mac_dat_data42 //|< i
,sc2mac_dat_data43 //|< i
,sc2mac_dat_data44 //|< i
,sc2mac_dat_data45 //|< i
,sc2mac_dat_data46 //|< i
,sc2mac_dat_data47 //|< i
,sc2mac_dat_data48 //|< i
,sc2mac_dat_data49 //|< i
,sc2mac_dat_data5 //|< i
,sc2mac_dat_data50 //|< i
,sc2mac_dat_data51 //|< i
,sc2mac_dat_data52 //|< i
,sc2mac_dat_data53 //|< i
,sc2mac_dat_data54 //|< i
,sc2mac_dat_data55 //|< i
,sc2mac_dat_data56 //|< i
,sc2mac_dat_data57 //|< i
,sc2mac_dat_data58 //|< i
,sc2mac_dat_data59 //|< i
,sc2mac_dat_data6 //|< i
,sc2mac_dat_data60 //|< i
,sc2mac_dat_data61 //|< i
,sc2mac_dat_data62 //|< i
,sc2mac_dat_data63 //|< i
,sc2mac_dat_data64 //|< i
,sc2mac_dat_data65 //|< i
,sc2mac_dat_data66 //|< i
,sc2mac_dat_data67 //|< i
,sc2mac_dat_data68 //|< i
,sc2mac_dat_data69 //|< i
,sc2mac_dat_data7 //|< i
,sc2mac_dat_data70 //|< i
,sc2mac_dat_data71 //|< i
,sc2mac_dat_data72 //|< i
,sc2mac_dat_data73 //|< i
,sc2mac_dat_data74 //|< i
,sc2mac_dat_data75 //|< i
,sc2mac_dat_data76 //|< i
,sc2mac_dat_data77 //|< i
,sc2mac_dat_data78 //|< i
,sc2mac_dat_data79 //|< i
,sc2mac_dat_data8 //|< i
,sc2mac_dat_data80 //|< i
,sc2mac_dat_data81 //|< i
,sc2mac_dat_data82 //|< i
,sc2mac_dat_data83 //|< i
,sc2mac_dat_data84 //|< i
,sc2mac_dat_data85 //|< i
,sc2mac_dat_data86 //|< i
,sc2mac_dat_data87 //|< i
,sc2mac_dat_data88 //|< i
,sc2mac_dat_data89 //|< i
,sc2mac_dat_data9 //|< i
,sc2mac_dat_data90 //|< i
,sc2mac_dat_data91 //|< i
,sc2mac_dat_data92 //|< i
,sc2mac_dat_data93 //|< i
,sc2mac_dat_data94 //|< i
,sc2mac_dat_data95 //|< i
,sc2mac_dat_data96 //|< i
,sc2mac_dat_data97 //|< i
,sc2mac_dat_data98 //|< i
,sc2mac_dat_data99 //|< i
,sc2mac_dat_mask //|< i
,sc2mac_dat_pd //|< i
,sc2mac_dat_pvld //|< i
,sc2mac_wt_data0 //|< i
,sc2mac_wt_data1 //|< i
,sc2mac_wt_data10 //|< i
,sc2mac_wt_data100 //|< i
,sc2mac_wt_data101 //|< i
,sc2mac_wt_data102 //|< i
,sc2mac_wt_data103 //|< i
,sc2mac_wt_data104 //|< i
,sc2mac_wt_data105 //|< i
,sc2mac_wt_data106 //|< i
,sc2mac_wt_data107 //|< i
,sc2mac_wt_data108 //|< i
,sc2mac_wt_data109 //|< i
,sc2mac_wt_data11 //|< i
,sc2mac_wt_data110 //|< i
,sc2mac_wt_data111 //|< i
,sc2mac_wt_data112 //|< i
,sc2mac_wt_data113 //|< i
,sc2mac_wt_data114 //|< i
,sc2mac_wt_data115 //|< i
,sc2mac_wt_data116 //|< i
,sc2mac_wt_data117 //|< i
,sc2mac_wt_data118 //|< i
,sc2mac_wt_data119 //|< i
,sc2mac_wt_data12 //|< i
,sc2mac_wt_data120 //|< i
,sc2mac_wt_data121 //|< i
,sc2mac_wt_data122 //|< i
,sc2mac_wt_data123 //|< i
,sc2mac_wt_data124 //|< i
,sc2mac_wt_data125 //|< i
,sc2mac_wt_data126 //|< i
,sc2mac_wt_data127 //|< i
,sc2mac_wt_data13 //|< i
,sc2mac_wt_data14 //|< i
,sc2mac_wt_data15 //|< i
,sc2mac_wt_data16 //|< i
,sc2mac_wt_data17 //|< i
,sc2mac_wt_data18 //|< i
,sc2mac_wt_data19 //|< i
,sc2mac_wt_data2 //|< i
,sc2mac_wt_data20 //|< i
,sc2mac_wt_data21 //|< i
,sc2mac_wt_data22 //|< i
,sc2mac_wt_data23 //|< i
,sc2mac_wt_data24 //|< i
,sc2mac_wt_data25 //|< i
,sc2mac_wt_data26 //|< i
,sc2mac_wt_data27 //|< i
,sc2mac_wt_data28 //|< i
,sc2mac_wt_data29 //|< i
,sc2mac_wt_data3 //|< i
,sc2mac_wt_data30 //|< i
,sc2mac_wt_data31 //|< i
,sc2mac_wt_data32 //|< i
,sc2mac_wt_data33 //|< i
,sc2mac_wt_data34 //|< i
,sc2mac_wt_data35 //|< i
,sc2mac_wt_data36 //|< i
,sc2mac_wt_data37 //|< i
,sc2mac_wt_data38 //|< i
,sc2mac_wt_data39 //|< i
,sc2mac_wt_data4 //|< i
,sc2mac_wt_data40 //|< i
,sc2mac_wt_data41 //|< i
,sc2mac_wt_data42 //|< i
,sc2mac_wt_data43 //|< i
,sc2mac_wt_data44 //|< i
,sc2mac_wt_data45 //|< i
,sc2mac_wt_data46 //|< i
,sc2mac_wt_data47 //|< i
,sc2mac_wt_data48 //|< i
,sc2mac_wt_data49 //|< i
,sc2mac_wt_data5 //|< i
,sc2mac_wt_data50 //|< i
,sc2mac_wt_data51 //|< i
,sc2mac_wt_data52 //|< i
,sc2mac_wt_data53 //|< i
,sc2mac_wt_data54 //|< i
,sc2mac_wt_data55 //|< i
,sc2mac_wt_data56 //|< i
,sc2mac_wt_data57 //|< i
,sc2mac_wt_data58 //|< i
,sc2mac_wt_data59 //|< i
,sc2mac_wt_data6 //|< i
,sc2mac_wt_data60 //|< i
,sc2mac_wt_data61 //|< i
,sc2mac_wt_data62 //|< i
,sc2mac_wt_data63 //|< i
,sc2mac_wt_data64 //|< i
,sc2mac_wt_data65 //|< i
,sc2mac_wt_data66 //|< i
,sc2mac_wt_data67 //|< i
,sc2mac_wt_data68 //|< i
,sc2mac_wt_data69 //|< i
,sc2mac_wt_data7 //|< i
,sc2mac_wt_data70 //|< i
,sc2mac_wt_data71 //|< i
,sc2mac_wt_data72 //|< i
,sc2mac_wt_data73 //|< i
,sc2mac_wt_data74 //|< i
,sc2mac_wt_data75 //|< i
,sc2mac_wt_data76 //|< i
,sc2mac_wt_data77 //|< i
,sc2mac_wt_data78 //|< i
,sc2mac_wt_data79 //|< i
,sc2mac_wt_data8 //|< i
,sc2mac_wt_data80 //|< i
,sc2mac_wt_data81 //|< i
,sc2mac_wt_data82 //|< i
,sc2mac_wt_data83 //|< i
,sc2mac_wt_data84 //|< i
,sc2mac_wt_data85 //|< i
,sc2mac_wt_data86 //|< i
,sc2mac_wt_data87 //|< i
,sc2mac_wt_data88 //|< i
,sc2mac_wt_data89 //|< i
,sc2mac_wt_data9 //|< i
,sc2mac_wt_data90 //|< i
,sc2mac_wt_data91 //|< i
,sc2mac_wt_data92 //|< i
,sc2mac_wt_data93 //|< i
,sc2mac_wt_data94 //|< i
,sc2mac_wt_data95 //|< i
,sc2mac_wt_data96 //|< i
,sc2mac_wt_data97 //|< i
,sc2mac_wt_data98 //|< i
,sc2mac_wt_data99 //|< i
,sc2mac_wt_mask //|< i
,sc2mac_wt_pvld //|< i
,sc2mac_wt_sel //|< i
,tmc2slcg_disable_clock_gating //|< i
,cmac_a2csb_resp_pd //|> o
,cmac_a2csb_resp_valid //|> o
,csb2cmac_a_req_prdy //|> o
,mac2accu_data0 //|> o
,mac2accu_data1 //|> o
,mac2accu_data2 //|> o
,mac2accu_data3 //|> o
,mac2accu_data4 //|> o
,mac2accu_data5 //|> o
,mac2accu_data6 //|> o
,mac2accu_data7 //|> o
,mac2accu_mask //|> o
,mac2accu_mode //|> o
,mac2accu_pd //|> o
,mac2accu_pvld //|> o
);
//
// NV_NVDLA_cmac_ports.v
//
input nvdla_core_clk;
input nvdla_core_rstn;
output cmac_a2csb_resp_valid; /* data valid */
output [33:0] cmac_a2csb_resp_pd; /* pkt_id_width=1 pkt_widths=33,33 */
input csb2cmac_a_req_pvld; /* data valid */
output csb2cmac_a_req_prdy; /* data return handshake */
input [62:0] csb2cmac_a_req_pd;
output mac2accu_pvld; /* data valid */
output [7:0] mac2accu_mask;
output [7:0] mac2accu_mode;
output [175:0] mac2accu_data0;
output [175:0] mac2accu_data1;
output [175:0] mac2accu_data2;
output [175:0] mac2accu_data3;
output [175:0] mac2accu_data4;
output [175:0] mac2accu_data5;
output [175:0] mac2accu_data6;
output [175:0] mac2accu_data7;
output [8:0] mac2accu_pd;
input sc2mac_dat_pvld; /* data valid */
input [127:0] sc2mac_dat_mask;
input [7:0] sc2mac_dat_data0;
input [7:0] sc2mac_dat_data1;
input [7:0] sc2mac_dat_data2;
input [7:0] sc2mac_dat_data3;
input [7:0] sc2mac_dat_data4;
input [7:0] sc2mac_dat_data5;
input [7:0] sc2mac_dat_data6;
input [7:0] sc2mac_dat_data7;
input [7:0] sc2mac_dat_data8;
input [7:0] sc2mac_dat_data9;
input [7:0] sc2mac_dat_data10;
input [7:0] sc2mac_dat_data11;
input [7:0] sc2mac_dat_data12;
input [7:0] sc2mac_dat_data13;
input [7:0] sc2mac_dat_data14;
input [7:0] sc2mac_dat_data15;
input [7:0] sc2mac_dat_data16;
input [7:0] sc2mac_dat_data17;
input [7:0] sc2mac_dat_data18;
input [7:0] sc2mac_dat_data19;
input [7:0] sc2mac_dat_data20;
input [7:0] sc2mac_dat_data21;
input [7:0] sc2mac_dat_data22;
input [7:0] sc2mac_dat_data23;
input [7:0] sc2mac_dat_data24;
input [7:0] sc2mac_dat_data25;
input [7:0] sc2mac_dat_data26;
input [7:0] sc2mac_dat_data27;
input [7:0] sc2mac_dat_data28;
input [7:0] sc2mac_dat_data29;
input [7:0] sc2mac_dat_data30;
input [7:0] sc2mac_dat_data31;
input [7:0] sc2mac_dat_data32;
input [7:0] sc2mac_dat_data33;
input [7:0] sc2mac_dat_data34;
input [7:0] sc2mac_dat_data35;
input [7:0] sc2mac_dat_data36;
input [7:0] sc2mac_dat_data37;
input [7:0] sc2mac_dat_data38;
input [7:0] sc2mac_dat_data39;
input [7:0] sc2mac_dat_data40;
input [7:0] sc2mac_dat_data41;
input [7:0] sc2mac_dat_data42;
input [7:0] sc2mac_dat_data43;
input [7:0] sc2mac_dat_data44;
input [7:0] sc2mac_dat_data45;
input [7:0] sc2mac_dat_data46;
input [7:0] sc2mac_dat_data47;
input [7:0] sc2mac_dat_data48;
input [7:0] sc2mac_dat_data49;
input [7:0] sc2mac_dat_data50;
input [7:0] sc2mac_dat_data51;
input [7:0] sc2mac_dat_data52;
input [7:0] sc2mac_dat_data53;
input [7:0] sc2mac_dat_data54;
input [7:0] sc2mac_dat_data55;
input [7:0] sc2mac_dat_data56;
input [7:0] sc2mac_dat_data57;
input [7:0] sc2mac_dat_data58;
input [7:0] sc2mac_dat_data59;
input [7:0] sc2mac_dat_data60;
input [7:0] sc2mac_dat_data61;
input [7:0] sc2mac_dat_data62;
input [7:0] sc2mac_dat_data63;
input [7:0] sc2mac_dat_data64;
input [7:0] sc2mac_dat_data65;
input [7:0] sc2mac_dat_data66;
input [7:0] sc2mac_dat_data67;
input [7:0] sc2mac_dat_data68;
input [7:0] sc2mac_dat_data69;
input [7:0] sc2mac_dat_data70;
input [7:0] sc2mac_dat_data71;
input [7:0] sc2mac_dat_data72;
input [7:0] sc2mac_dat_data73;
input [7:0] sc2mac_dat_data74;
input [7:0] sc2mac_dat_data75;
input [7:0] sc2mac_dat_data76;
input [7:0] sc2mac_dat_data77;
input [7:0] sc2mac_dat_data78;
input [7:0] sc2mac_dat_data79;
input [7:0] sc2mac_dat_data80;
input [7:0] sc2mac_dat_data81;
input [7:0] sc2mac_dat_data82;
input [7:0] sc2mac_dat_data83;
input [7:0] sc2mac_dat_data84;
input [7:0] sc2mac_dat_data85;
input [7:0] sc2mac_dat_data86;
input [7:0] sc2mac_dat_data87;
input [7:0] sc2mac_dat_data88;
input [7:0] sc2mac_dat_data89;
input [7:0] sc2mac_dat_data90;
input [7:0] sc2mac_dat_data91;
input [7:0] sc2mac_dat_data92;
input [7:0] sc2mac_dat_data93;
input [7:0] sc2mac_dat_data94;
input [7:0] sc2mac_dat_data95;
input [7:0] sc2mac_dat_data96;
input [7:0] sc2mac_dat_data97;
input [7:0] sc2mac_dat_data98;
input [7:0] sc2mac_dat_data99;
input [7:0] sc2mac_dat_data100;
input [7:0] sc2mac_dat_data101;
input [7:0] sc2mac_dat_data102;
input [7:0] sc2mac_dat_data103;
input [7:0] sc2mac_dat_data104;
input [7:0] sc2mac_dat_data105;
input [7:0] sc2mac_dat_data106;
input [7:0] sc2mac_dat_data107;
input [7:0] sc2mac_dat_data108;
input [7:0] sc2mac_dat_data109;
input [7:0] sc2mac_dat_data110;
input [7:0] sc2mac_dat_data111;
input [7:0] sc2mac_dat_data112;
input [7:0] sc2mac_dat_data113;
input [7:0] sc2mac_dat_data114;
input [7:0] sc2mac_dat_data115;
input [7:0] sc2mac_dat_data116;
input [7:0] sc2mac_dat_data117;
input [7:0] sc2mac_dat_data118;
input [7:0] sc2mac_dat_data119;
input [7:0] sc2mac_dat_data120;
input [7:0] sc2mac_dat_data121;
input [7:0] sc2mac_dat_data122;
input [7:0] sc2mac_dat_data123;
input [7:0] sc2mac_dat_data124;
input [7:0] sc2mac_dat_data125;
input [7:0] sc2mac_dat_data126;
input [7:0] sc2mac_dat_data127;
input [8:0] sc2mac_dat_pd;
input sc2mac_wt_pvld; /* data valid */
input [127:0] sc2mac_wt_mask;
input [7:0] sc2mac_wt_data0;
input [7:0] sc2mac_wt_data1;
input [7:0] sc2mac_wt_data2;
input [7:0] sc2mac_wt_data3;
input [7:0] sc2mac_wt_data4;
input [7:0] sc2mac_wt_data5;
input [7:0] sc2mac_wt_data6;
input [7:0] sc2mac_wt_data7;
input [7:0] sc2mac_wt_data8;
input [7:0] sc2mac_wt_data9;
input [7:0] sc2mac_wt_data10;
input [7:0] sc2mac_wt_data11;
input [7:0] sc2mac_wt_data12;
input [7:0] sc2mac_wt_data13;
input [7:0] sc2mac_wt_data14;
input [7:0] sc2mac_wt_data15;
input [7:0] sc2mac_wt_data16;
input [7:0] sc2mac_wt_data17;
input [7:0] sc2mac_wt_data18;
input [7:0] sc2mac_wt_data19;
input [7:0] sc2mac_wt_data20;
input [7:0] sc2mac_wt_data21;
input [7:0] sc2mac_wt_data22;
input [7:0] sc2mac_wt_data23;
input [7:0] sc2mac_wt_data24;
input [7:0] sc2mac_wt_data25;
input [7:0] sc2mac_wt_data26;
input [7:0] sc2mac_wt_data27;
input [7:0] sc2mac_wt_data28;
input [7:0] sc2mac_wt_data29;
input [7:0] sc2mac_wt_data30;
input [7:0] sc2mac_wt_data31;
input [7:0] sc2mac_wt_data32;
input [7:0] sc2mac_wt_data33;
input [7:0] sc2mac_wt_data34;
input [7:0] sc2mac_wt_data35;
input [7:0] sc2mac_wt_data36;
input [7:0] sc2mac_wt_data37;
input [7:0] sc2mac_wt_data38;
input [7:0] sc2mac_wt_data39;
input [7:0] sc2mac_wt_data40;
input [7:0] sc2mac_wt_data41;
input [7:0] sc2mac_wt_data42;
input [7:0] sc2mac_wt_data43;
input [7:0] sc2mac_wt_data44;
input [7:0] sc2mac_wt_data45;
input [7:0] sc2mac_wt_data46;
input [7:0] sc2mac_wt_data47;
input [7:0] sc2mac_wt_data48;
input [7:0] sc2mac_wt_data49;
input [7:0] sc2mac_wt_data50;
input [7:0] sc2mac_wt_data51;
input [7:0] sc2mac_wt_data52;
input [7:0] sc2mac_wt_data53;
input [7:0] sc2mac_wt_data54;
input [7:0] sc2mac_wt_data55;
input [7:0] sc2mac_wt_data56;
input [7:0] sc2mac_wt_data57;
input [7:0] sc2mac_wt_data58;
input [7:0] sc2mac_wt_data59;
input [7:0] sc2mac_wt_data60;
input [7:0] sc2mac_wt_data61;
input [7:0] sc2mac_wt_data62;
input [7:0] sc2mac_wt_data63;
input [7:0] sc2mac_wt_data64;
input [7:0] sc2mac_wt_data65;
input [7:0] sc2mac_wt_data66;
input [7:0] sc2mac_wt_data67;
input [7:0] sc2mac_wt_data68;
input [7:0] sc2mac_wt_data69;
input [7:0] sc2mac_wt_data70;
input [7:0] sc2mac_wt_data71;
input [7:0] sc2mac_wt_data72;
input [7:0] sc2mac_wt_data73;
input [7:0] sc2mac_wt_data74;
input [7:0] sc2mac_wt_data75;
input [7:0] sc2mac_wt_data76;
input [7:0] sc2mac_wt_data77;
input [7:0] sc2mac_wt_data78;
input [7:0] sc2mac_wt_data79;
input [7:0] sc2mac_wt_data80;
input [7:0] sc2mac_wt_data81;
input [7:0] sc2mac_wt_data82;
input [7:0] sc2mac_wt_data83;
input [7:0] sc2mac_wt_data84;
input [7:0] sc2mac_wt_data85;
input [7:0] sc2mac_wt_data86;
input [7:0] sc2mac_wt_data87;
input [7:0] sc2mac_wt_data88;
input [7:0] sc2mac_wt_data89;
input [7:0] sc2mac_wt_data90;
input [7:0] sc2mac_wt_data91;
input [7:0] sc2mac_wt_data92;
input [7:0] sc2mac_wt_data93;
input [7:0] sc2mac_wt_data94;
input [7:0] sc2mac_wt_data95;
input [7:0] sc2mac_wt_data96;
input [7:0] sc2mac_wt_data97;
input [7:0] sc2mac_wt_data98;
input [7:0] sc2mac_wt_data99;
input [7:0] sc2mac_wt_data100;
input [7:0] sc2mac_wt_data101;
input [7:0] sc2mac_wt_data102;
input [7:0] sc2mac_wt_data103;
input [7:0] sc2mac_wt_data104;
input [7:0] sc2mac_wt_data105;
input [7:0] sc2mac_wt_data106;
input [7:0] sc2mac_wt_data107;
input [7:0] sc2mac_wt_data108;
input [7:0] sc2mac_wt_data109;
input [7:0] sc2mac_wt_data110;
input [7:0] sc2mac_wt_data111;
input [7:0] sc2mac_wt_data112;
input [7:0] sc2mac_wt_data113;
input [7:0] sc2mac_wt_data114;
input [7:0] sc2mac_wt_data115;
input [7:0] sc2mac_wt_data116;
input [7:0] sc2mac_wt_data117;
input [7:0] sc2mac_wt_data118;
input [7:0] sc2mac_wt_data119;
input [7:0] sc2mac_wt_data120;
input [7:0] sc2mac_wt_data121;
input [7:0] sc2mac_wt_data122;
input [7:0] sc2mac_wt_data123;
input [7:0] sc2mac_wt_data124;
input [7:0] sc2mac_wt_data125;
input [7:0] sc2mac_wt_data126;
input [7:0] sc2mac_wt_data127;
input [7:0] sc2mac_wt_sel;
wire dp2reg_done;
wire [0:0] reg2dp_conv_mode;
wire [0:0] reg2dp_op_en;
wire [1:0] reg2dp_proc_precision;
wire [10:0] slcg_op_en;
input dla_clk_ovr_on_sync;
input global_clk_ovr_on_sync;
input tmc2slcg_disable_clock_gating;
它从卷积序列控制器(CSC)接收输入数据和权重,执行乘法和加法,并将结果输出到卷积累加器。在Winograd模式下工作时,卷积MAC对输出执行POA(后加法),将结果转换回标准激活格式。
CMAC有16个相同的子模块,称为MAC cells。每个MAC cell包含64个针对int16/fp16的16位乘法器,它还包含72个针对int16/fp16的加法器,用于Winograd POA。对于int8格式,每个乘法器和加法器可以分成两个计算单元。在任何模式下,int8的吞吐量都是int16的两倍。输出结果称为部分和。管道深度为7个cycle。
卷积MAC中的一个旁路管道用于传递状态,该状态包括开始和结束操作标志。状态经过流水线需要4个周期,比部分和提前3个周期预取CACC中的组合缓冲区。
对于物理设计优化,CMAC分为两部分,CMAC_A和CMAC_B。每个部分都有一个单独的CSB接口和寄存器文件。但是它们被认为是使用中的一个流水线阶段。
功耗
卷积MAC的数据路径时钟在空闲时被选通,并且可编程寄存器中没有可用的硬件层。卷积MAC中的可编程寄存器没有时钟门控,因此软件可以编程。
此外,卷积MAC可以单独对MAC cell进行时钟门控。当内核的数量不足以填满所有的MAC cell时,空的单元将被自动时钟门控。
end