⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 block16s.v

📁 脉动乘法器:一个GF(2m)域上的Digit-Serial 脉动结构(Systolic)的乘法器
💻 V
📖 第 1 页 / 共 3 页
字号:

//////////////////////////////////////////////////////////////////////////////////////
//	Name					16 Bit Block                                                      //
//	Version				1.0																															  //
//	Author				Marko																															//
//	Date					Dec 23																														//
//	Character			Gate level description                				                    //
//	Changes				Original Version                                                  //
//////////////////////////////////////////////////////////////////////////////////////

module Block16s (ai, bi, gi, ti1, ti2, ti3, ao, go, to1, to2);

input  [15:0] ai, bi, gi, ti1, ti2;
input  [15:1] ti3;
output [15:0] ao, go, to1;
output [14:0] to2;

wire          w0015, w0014, w0013, w0012, w0011, w0010, w0009, w0008, w0007, w0006, w0005, w0004, w0003, w0002, w0001, w0000;
wire          w0115, w0114, w0113, w0112, w0111, w0110, w0109, w0108, w0107, w0106, w0105, w0104, w0103, w0102, w0101, w0100;
wire          w0215, w0214, w0213, w0212, w0211, w0210, w0209, w0208, w0207, w0206, w0205, w0204, w0203, w0202, w0201, w0200;
wire          w0315, w0314, w0313, w0312, w0311, w0310, w0309, w0308, w0307, w0306, w0305, w0304, w0303, w0302, w0301, w0300;
wire          w0415, w0414, w0413, w0412, w0411, w0410, w0409, w0408, w0407, w0406, w0405, w0404, w0403, w0402, w0401, w0400;
wire          w0515, w0514, w0513, w0512, w0511, w0510, w0509, w0508, w0507, w0506, w0505, w0504, w0503, w0502, w0501, w0500;
wire          w0615, w0614, w0613, w0612, w0611, w0610, w0609, w0608, w0607, w0606, w0605, w0604, w0603, w0602, w0601, w0600;
wire          w0715, w0714, w0713, w0712, w0711, w0710, w0709, w0708, w0707, w0706, w0705, w0704, w0703, w0702, w0701, w0700;
wire          w0815, w0814, w0813, w0812, w0811, w0810, w0809, w0808, w0807, w0806, w0805, w0804, w0803, w0802, w0801, w0800;
wire          w0915, w0914, w0913, w0912, w0911, w0910, w0909, w0908, w0907, w0906, w0905, w0904, w0903, w0902, w0901, w0900;
wire          w1015, w1014, w1013, w1012, w1011, w1010, w1009, w1008, w1007, w1006, w1005, w1004, w1003, w1002, w1001, w1000;
wire          w1115, w1114, w1113, w1112, w1111, w1110, w1109, w1108, w1107, w1106, w1105, w1104, w1103, w1102, w1101, w1100;
wire          w1215, w1214, w1213, w1212, w1211, w1210, w1209, w1208, w1207, w1206, w1205, w1204, w1203, w1202, w1201, w1200;
wire          w1315, w1314, w1313, w1312, w1311, w1310, w1309, w1308, w1307, w1306, w1305, w1304, w1303, w1302, w1301, w1300;
wire          w1415, w1414, w1413, w1412, w1411, w1410, w1409, w1408, w1407, w1406, w1405, w1404, w1403, w1402, w1401, w1400;
wire          w1515, w1514, w1513, w1512, w1511, w1510, w1509, w1508, w1507, w1506, w1505, w1504, w1503, w1502, w1501, w1500;


//cell矩阵按照纵向方式从右到左排列
//Line 0
cell3 u_cell3_0000 (.ai(ai[0]), .bi(bi[15]), .gi(gi[0]), .ti1(ti1[15]), .ti2(ti2[0]), .to(w0000));
cell2 u_cell2_0100 (.ai(ai[0]), .bi(bi[14]), .gi(gi[0]), .ti1(ti1[14]), .to(w0100));
cell2 u_cell2_0200 (.ai(ai[0]), .bi(bi[13]), .gi(gi[0]), .ti1(ti1[13]), .to(w0200));
cell2 u_cell2_0300 (.ai(ai[0]), .bi(bi[12]), .gi(gi[0]), .ti1(ti1[12]), .to(w0300));
cell2 u_cell2_0400 (.ai(ai[0]), .bi(bi[11]), .gi(gi[0]), .ti1(ti1[11]), .to(w0400));
cell2 u_cell2_0500 (.ai(ai[0]), .bi(bi[10]), .gi(gi[0]), .ti1(ti1[10]), .to(w0500));
cell2 u_cell2_0600 (.ai(ai[0]), .bi(bi[ 9]), .gi(gi[0]), .ti1(ti1[ 9]), .to(w0600));
cell2 u_cell2_0700 (.ai(ai[0]), .bi(bi[ 8]), .gi(gi[0]), .ti1(ti1[ 8]), .to(w0700));
cell2 u_cell2_0800 (.ai(ai[0]), .bi(bi[ 7]), .gi(gi[0]), .ti1(ti1[ 7]), .to(w0800));
cell2 u_cell2_0900 (.ai(ai[0]), .bi(bi[ 6]), .gi(gi[0]), .ti1(ti1[ 6]), .to(w0900));
cell2 u_cell2_1000 (.ai(ai[0]), .bi(bi[ 5]), .gi(gi[0]), .ti1(ti1[ 5]), .to(w1000));
cell2 u_cell2_1100 (.ai(ai[0]), .bi(bi[ 4]), .gi(gi[0]), .ti1(ti1[ 4]), .to(w1100));
cell2 u_cell2_1200 (.ai(ai[0]), .bi(bi[ 3]), .gi(gi[0]), .ti1(ti1[ 3]), .to(w1200));
cell2 u_cell2_1300 (.ai(ai[0]), .bi(bi[ 2]), .gi(gi[0]), .ti1(ti1[ 2]), .to(w1300));
cell2 u_cell2_1400 (.ai(ai[0]), .bi(bi[ 1]), .gi(gi[0]), .ti1(ti1[ 1]), .to(w1400));
cell2 u_cell2_1500 (.ai(ai[0]), .bi(bi[ 0]), .gi(gi[0]), .ti1(ti1[ 0]), .to(w1500));
//Line 1
cell4 u_cell4_0001 (.ai(ai[1]), .bi(bi[15]), .gi(gi[1]), .ti1(ti1[15]), .ti2(ti2[1]), .ti3(ti3[1]), .to(w0001));
cell3 u_cell3_0101 (.ai(ai[1]), .bi(bi[14]), .gi(gi[1]), .ti1(ti1[14]), .ti2(w0000), .to(w0101));
cell3 u_cell3_0201 (.ai(ai[1]), .bi(bi[13]), .gi(gi[1]), .ti1(ti1[13]), .ti2(w0100), .to(w0201));
cell3 u_cell3_0301 (.ai(ai[1]), .bi(bi[12]), .gi(gi[1]), .ti1(ti1[12]), .ti2(w0200), .to(w0301));
cell3 u_cell3_0401 (.ai(ai[1]), .bi(bi[11]), .gi(gi[1]), .ti1(ti1[11]), .ti2(w0300), .to(w0401));
cell3 u_cell3_0501 (.ai(ai[1]), .bi(bi[10]), .gi(gi[1]), .ti1(ti1[10]), .ti2(w0400), .to(w0501));
cell3 u_cell3_0601 (.ai(ai[1]), .bi(bi[ 9]), .gi(gi[1]), .ti1(ti1[ 9]), .ti2(w0500), .to(w0601));
cell3 u_cell3_0701 (.ai(ai[1]), .bi(bi[ 8]), .gi(gi[1]), .ti1(ti1[ 8]), .ti2(w0600), .to(w0701));
cell3 u_cell3_0801 (.ai(ai[1]), .bi(bi[ 7]), .gi(gi[1]), .ti1(ti1[ 7]), .ti2(w0700), .to(w0801));
cell3 u_cell3_0901 (.ai(ai[1]), .bi(bi[ 6]), .gi(gi[1]), .ti1(ti1[ 6]), .ti2(w0800), .to(w0901));
cell3 u_cell3_1001 (.ai(ai[1]), .bi(bi[ 5]), .gi(gi[1]), .ti1(ti1[ 5]), .ti2(w0900), .to(w1001));
cell3 u_cell3_1101 (.ai(ai[1]), .bi(bi[ 4]), .gi(gi[1]), .ti1(ti1[ 4]), .ti2(w1000), .to(w1101));
cell3 u_cell3_1201 (.ai(ai[1]), .bi(bi[ 3]), .gi(gi[1]), .ti1(ti1[ 3]), .ti2(w1100), .to(w1201));
cell3 u_cell3_1301 (.ai(ai[1]), .bi(bi[ 2]), .gi(gi[1]), .ti1(ti1[ 2]), .ti2(w1200), .to(w1301));
cell3 u_cell3_1401 (.ai(ai[1]), .bi(bi[ 1]), .gi(gi[1]), .ti1(ti1[ 1]), .ti2(w1300), .to(w1401));
cell3 u_cell3_1501 (.ai(ai[1]), .bi(bi[ 0]), .gi(gi[1]), .ti1(ti1[ 0]), .ti2(w1400), .to(w1501));
//Line 2                                                                                          
cell4 u_cell4_0002 (.ai(ai[2]), .bi(bi[15]), .gi(gi[2]), .ti1(ti1[15]), .ti2(ti2[2]), .ti3(ti3[2]), .to(w0002));
cell3 u_cell3_0102 (.ai(ai[2]), .bi(bi[14]), .gi(gi[2]), .ti1(ti1[14]), .ti2(w0001), .to(w0102));
cell3 u_cell3_0202 (.ai(ai[2]), .bi(bi[13]), .gi(gi[2]), .ti1(ti1[13]), .ti2(w0101), .to(w0202));
cell3 u_cell3_0302 (.ai(ai[2]), .bi(bi[12]), .gi(gi[2]), .ti1(ti1[12]), .ti2(w0201), .to(w0302));
cell3 u_cell3_0402 (.ai(ai[2]), .bi(bi[11]), .gi(gi[2]), .ti1(ti1[11]), .ti2(w0301), .to(w0402));
cell3 u_cell3_0502 (.ai(ai[2]), .bi(bi[10]), .gi(gi[2]), .ti1(ti1[10]), .ti2(w0401), .to(w0502));
cell3 u_cell3_0602 (.ai(ai[2]), .bi(bi[ 9]), .gi(gi[2]), .ti1(ti1[ 9]), .ti2(w0501), .to(w0602));
cell3 u_cell3_0702 (.ai(ai[2]), .bi(bi[ 8]), .gi(gi[2]), .ti1(ti1[ 8]), .ti2(w0601), .to(w0702));
cell3 u_cell3_0802 (.ai(ai[2]), .bi(bi[ 7]), .gi(gi[2]), .ti1(ti1[ 7]), .ti2(w0701), .to(w0802));
cell3 u_cell3_0902 (.ai(ai[2]), .bi(bi[ 6]), .gi(gi[2]), .ti1(ti1[ 6]), .ti2(w0801), .to(w0902));
cell3 u_cell3_1002 (.ai(ai[2]), .bi(bi[ 5]), .gi(gi[2]), .ti1(ti1[ 5]), .ti2(w0901), .to(w1002));
cell3 u_cell3_1102 (.ai(ai[2]), .bi(bi[ 4]), .gi(gi[2]), .ti1(ti1[ 4]), .ti2(w1001), .to(w1102));
cell3 u_cell3_1202 (.ai(ai[2]), .bi(bi[ 3]), .gi(gi[2]), .ti1(ti1[ 3]), .ti2(w1101), .to(w1202));
cell3 u_cell3_1302 (.ai(ai[2]), .bi(bi[ 2]), .gi(gi[2]), .ti1(ti1[ 2]), .ti2(w1201), .to(w1302));
cell3 u_cell3_1402 (.ai(ai[2]), .bi(bi[ 1]), .gi(gi[2]), .ti1(ti1[ 1]), .ti2(w1301), .to(w1402));
cell3 u_cell3_1502 (.ai(ai[2]), .bi(bi[ 0]), .gi(gi[2]), .ti1(ti1[ 0]), .ti2(w1401), .to(w1502));
//Line 3                                                                                          
cell4 u_cell4_0003 (.ai(ai[3]), .bi(bi[15]), .gi(gi[3]), .ti1(ti1[15]), .ti2(ti2[3]), .ti3(ti3[3]), .to(w0003));
cell3 u_cell3_0103 (.ai(ai[3]), .bi(bi[14]), .gi(gi[3]), .ti1(ti1[14]), .ti2(w0002), .to(w0103));
cell3 u_cell3_0203 (.ai(ai[3]), .bi(bi[13]), .gi(gi[3]), .ti1(ti1[13]), .ti2(w0102), .to(w0203));
cell3 u_cell3_0303 (.ai(ai[3]), .bi(bi[12]), .gi(gi[3]), .ti1(ti1[12]), .ti2(w0202), .to(w0303));
cell3 u_cell3_0403 (.ai(ai[3]), .bi(bi[11]), .gi(gi[3]), .ti1(ti1[11]), .ti2(w0302), .to(w0403));
cell3 u_cell3_0503 (.ai(ai[3]), .bi(bi[10]), .gi(gi[3]), .ti1(ti1[10]), .ti2(w0402), .to(w0503));
cell3 u_cell3_0603 (.ai(ai[3]), .bi(bi[ 9]), .gi(gi[3]), .ti1(ti1[ 9]), .ti2(w0502), .to(w0603));
cell3 u_cell3_0703 (.ai(ai[3]), .bi(bi[ 8]), .gi(gi[3]), .ti1(ti1[ 8]), .ti2(w0602), .to(w0703));
cell3 u_cell3_0803 (.ai(ai[3]), .bi(bi[ 7]), .gi(gi[3]), .ti1(ti1[ 7]), .ti2(w0702), .to(w0803));
cell3 u_cell3_0903 (.ai(ai[3]), .bi(bi[ 6]), .gi(gi[3]), .ti1(ti1[ 6]), .ti2(w0802), .to(w0903));
cell3 u_cell3_1003 (.ai(ai[3]), .bi(bi[ 5]), .gi(gi[3]), .ti1(ti1[ 5]), .ti2(w0902), .to(w1003));
cell3 u_cell3_1103 (.ai(ai[3]), .bi(bi[ 4]), .gi(gi[3]), .ti1(ti1[ 4]), .ti2(w1002), .to(w1103));
cell3 u_cell3_1203 (.ai(ai[3]), .bi(bi[ 3]), .gi(gi[3]), .ti1(ti1[ 3]), .ti2(w1102), .to(w1203));
cell3 u_cell3_1303 (.ai(ai[3]), .bi(bi[ 2]), .gi(gi[3]), .ti1(ti1[ 2]), .ti2(w1202), .to(w1303));
cell3 u_cell3_1403 (.ai(ai[3]), .bi(bi[ 1]), .gi(gi[3]), .ti1(ti1[ 1]), .ti2(w1302), .to(w1403));
cell3 u_cell3_1503 (.ai(ai[3]), .bi(bi[ 0]), .gi(gi[3]), .ti1(ti1[ 0]), .ti2(w1402), .to(w1503));
//Line 4                                                                                          
cell4 u_cell4_0004 (.ai(ai[4]), .bi(bi[15]), .gi(gi[4]), .ti1(ti1[15]), .ti2(ti2[4]), .ti3(ti3[4]), .to(w0004));
cell3 u_cell3_0104 (.ai(ai[4]), .bi(bi[14]), .gi(gi[4]), .ti1(ti1[14]), .ti2(w0003), .to(w0104));
cell3 u_cell3_0204 (.ai(ai[4]), .bi(bi[13]), .gi(gi[4]), .ti1(ti1[13]), .ti2(w0103), .to(w0204));
cell3 u_cell3_0304 (.ai(ai[4]), .bi(bi[12]), .gi(gi[4]), .ti1(ti1[12]), .ti2(w0203), .to(w0304));
cell3 u_cell3_0404 (.ai(ai[4]), .bi(bi[11]), .gi(gi[4]), .ti1(ti1[11]), .ti2(w0303), .to(w0404));
cell3 u_cell3_0504 (.ai(ai[4]), .bi(bi[10]), .gi(gi[4]), .ti1(ti1[10]), .ti2(w0403), .to(w0504));
cell3 u_cell3_0604 (.ai(ai[4]), .bi(bi[ 9]), .gi(gi[4]), .ti1(ti1[ 9]), .ti2(w0503), .to(w0604));
cell3 u_cell3_0704 (.ai(ai[4]), .bi(bi[ 8]), .gi(gi[4]), .ti1(ti1[ 8]), .ti2(w0603), .to(w0704));
cell3 u_cell3_0804 (.ai(ai[4]), .bi(bi[ 7]), .gi(gi[4]), .ti1(ti1[ 7]), .ti2(w0703), .to(w0804));
cell3 u_cell3_0904 (.ai(ai[4]), .bi(bi[ 6]), .gi(gi[4]), .ti1(ti1[ 6]), .ti2(w0803), .to(w0904));
cell3 u_cell3_1004 (.ai(ai[4]), .bi(bi[ 5]), .gi(gi[4]), .ti1(ti1[ 5]), .ti2(w0903), .to(w1004));
cell3 u_cell3_1104 (.ai(ai[4]), .bi(bi[ 4]), .gi(gi[4]), .ti1(ti1[ 4]), .ti2(w1003), .to(w1104));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -