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

📄 block32s.v

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

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

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

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

wire          w0031, w0030, w0029, w0028, w0027, w0026, w0025, w0024, w0023, w0022, w0021, w0020, w0019, w0018, w0017, w0016, w0015, w0014, w0013, w0012, w0011, w0010, w0009, w0008, w0007, w0006, w0005, w0004, w0003, w0002, w0001, w0000;
wire          w0131, w0130, w0129, w0128, w0127, w0126, w0125, w0124, w0123, w0122, w0121, w0120, w0119, w0118, w0117, w0116, w0115, w0114, w0113, w0112, w0111, w0110, w0109, w0108, w0107, w0106, w0105, w0104, w0103, w0102, w0101, w0100;
wire          w0231, w0230, w0229, w0228, w0227, w0226, w0225, w0224, w0223, w0222, w0221, w0220, w0219, w0218, w0217, w0216, w0215, w0214, w0213, w0212, w0211, w0210, w0209, w0208, w0207, w0206, w0205, w0204, w0203, w0202, w0201, w0200;
wire          w0331, w0330, w0329, w0328, w0327, w0326, w0325, w0324, w0323, w0322, w0321, w0320, w0319, w0318, w0317, w0316, w0315, w0314, w0313, w0312, w0311, w0310, w0309, w0308, w0307, w0306, w0305, w0304, w0303, w0302, w0301, w0300;
wire          w0431, w0430, w0429, w0428, w0427, w0426, w0425, w0424, w0423, w0422, w0421, w0420, w0419, w0418, w0417, w0416, w0415, w0414, w0413, w0412, w0411, w0410, w0409, w0408, w0407, w0406, w0405, w0404, w0403, w0402, w0401, w0400;
wire          w0531, w0530, w0529, w0528, w0527, w0526, w0525, w0524, w0523, w0522, w0521, w0520, w0519, w0518, w0517, w0516, w0515, w0514, w0513, w0512, w0511, w0510, w0509, w0508, w0507, w0506, w0505, w0504, w0503, w0502, w0501, w0500;
wire          w0631, w0630, w0629, w0628, w0627, w0626, w0625, w0624, w0623, w0622, w0621, w0620, w0619, w0618, w0617, w0616, w0615, w0614, w0613, w0612, w0611, w0610, w0609, w0608, w0607, w0606, w0605, w0604, w0603, w0602, w0601, w0600;
wire          w0731, w0730, w0729, w0728, w0727, w0726, w0725, w0724, w0723, w0722, w0721, w0720, w0719, w0718, w0717, w0716, w0715, w0714, w0713, w0712, w0711, w0710, w0709, w0708, w0707, w0706, w0705, w0704, w0703, w0702, w0701, w0700;
wire          w0831, w0830, w0829, w0828, w0827, w0826, w0825, w0824, w0823, w0822, w0821, w0820, w0819, w0818, w0817, w0816, w0815, w0814, w0813, w0812, w0811, w0810, w0809, w0808, w0807, w0806, w0805, w0804, w0803, w0802, w0801, w0800;
wire          w0931, w0930, w0929, w0928, w0927, w0926, w0925, w0924, w0923, w0922, w0921, w0920, w0919, w0918, w0917, w0916, w0915, w0914, w0913, w0912, w0911, w0910, w0909, w0908, w0907, w0906, w0905, w0904, w0903, w0902, w0901, w0900;
wire          w1031, w1030, w1029, w1028, w1027, w1026, w1025, w1024, w1023, w1022, w1021, w1020, w1019, w1018, w1017, w1016, w1015, w1014, w1013, w1012, w1011, w1010, w1009, w1008, w1007, w1006, w1005, w1004, w1003, w1002, w1001, w1000;
wire          w1131, w1130, w1129, w1128, w1127, w1126, w1125, w1124, w1123, w1122, w1121, w1120, w1119, w1118, w1117, w1116, w1115, w1114, w1113, w1112, w1111, w1110, w1109, w1108, w1107, w1106, w1105, w1104, w1103, w1102, w1101, w1100;
wire          w1231, w1230, w1229, w1228, w1227, w1226, w1225, w1224, w1223, w1222, w1221, w1220, w1219, w1218, w1217, w1216, w1215, w1214, w1213, w1212, w1211, w1210, w1209, w1208, w1207, w1206, w1205, w1204, w1203, w1202, w1201, w1200;
wire          w1331, w1330, w1329, w1328, w1327, w1326, w1325, w1324, w1323, w1322, w1321, w1320, w1319, w1318, w1317, w1316, w1315, w1314, w1313, w1312, w1311, w1310, w1309, w1308, w1307, w1306, w1305, w1304, w1303, w1302, w1301, w1300;
wire          w1431, w1430, w1429, w1428, w1427, w1426, w1425, w1424, w1423, w1422, w1421, w1420, w1419, w1418, w1417, w1416, w1415, w1414, w1413, w1412, w1411, w1410, w1409, w1408, w1407, w1406, w1405, w1404, w1403, w1402, w1401, w1400;
wire          w1531, w1530, w1529, w1528, w1527, w1526, w1525, w1524, w1523, w1522, w1521, w1520, w1519, w1518, w1517, w1516, w1515, w1514, w1513, w1512, w1511, w1510, w1509, w1508, w1507, w1506, w1505, w1504, w1503, w1502, w1501, w1500;
wire          w1631, w1630, w1629, w1628, w1627, w1626, w1625, w1624, w1623, w1622, w1621, w1620, w1619, w1618, w1617, w1616, w1615, w1614, w1613, w1612, w1611, w1610, w1609, w1608, w1607, w1606, w1605, w1604, w1603, w1602, w1601, w1600;
wire          w1731, w1730, w1729, w1728, w1727, w1726, w1725, w1724, w1723, w1722, w1721, w1720, w1719, w1718, w1717, w1716, w1715, w1714, w1713, w1712, w1711, w1710, w1709, w1708, w1707, w1706, w1705, w1704, w1703, w1702, w1701, w1700;
wire          w1831, w1830, w1829, w1828, w1827, w1826, w1825, w1824, w1823, w1822, w1821, w1820, w1819, w1818, w1817, w1816, w1815, w1814, w1813, w1812, w1811, w1810, w1809, w1808, w1807, w1806, w1805, w1804, w1803, w1802, w1801, w1800;
wire          w1931, w1930, w1929, w1928, w1927, w1926, w1925, w1924, w1923, w1922, w1921, w1920, w1919, w1918, w1917, w1916, w1915, w1914, w1913, w1912, w1911, w1910, w1909, w1908, w1907, w1906, w1905, w1904, w1903, w1902, w1901, w1900;
wire          w2031, w2030, w2029, w2028, w2027, w2026, w2025, w2024, w2023, w2022, w2021, w2020, w2019, w2018, w2017, w2016, w2015, w2014, w2013, w2012, w2011, w2010, w2009, w2008, w2007, w2006, w2005, w2004, w2003, w2002, w2001, w2000;
wire          w2131, w2130, w2129, w2128, w2127, w2126, w2125, w2124, w2123, w2122, w2121, w2120, w2119, w2118, w2117, w2116, w2115, w2114, w2113, w2112, w2111, w2110, w2109, w2108, w2107, w2106, w2105, w2104, w2103, w2102, w2101, w2100;
wire          w2231, w2230, w2229, w2228, w2227, w2226, w2225, w2224, w2223, w2222, w2221, w2220, w2219, w2218, w2217, w2216, w2215, w2214, w2213, w2212, w2211, w2210, w2209, w2208, w2207, w2206, w2205, w2204, w2203, w2202, w2201, w2200;
wire          w2331, w2330, w2329, w2328, w2327, w2326, w2325, w2324, w2323, w2322, w2321, w2320, w2319, w2318, w2317, w2316, w2315, w2314, w2313, w2312, w2311, w2310, w2309, w2308, w2307, w2306, w2305, w2304, w2303, w2302, w2301, w2300;
wire          w2431, w2430, w2429, w2428, w2427, w2426, w2425, w2424, w2423, w2422, w2421, w2420, w2419, w2418, w2417, w2416, w2415, w2414, w2413, w2412, w2411, w2410, w2409, w2408, w2407, w2406, w2405, w2404, w2403, w2402, w2401, w2400;
wire          w2531, w2530, w2529, w2528, w2527, w2526, w2525, w2524, w2523, w2522, w2521, w2520, w2519, w2518, w2517, w2516, w2515, w2514, w2513, w2512, w2511, w2510, w2509, w2508, w2507, w2506, w2505, w2504, w2503, w2502, w2501, w2500;
wire          w2631, w2630, w2629, w2628, w2627, w2626, w2625, w2624, w2623, w2622, w2621, w2620, w2619, w2618, w2617, w2616, w2615, w2614, w2613, w2612, w2611, w2610, w2609, w2608, w2607, w2606, w2605, w2604, w2603, w2602, w2601, w2600;
wire          w2731, w2730, w2729, w2728, w2727, w2726, w2725, w2724, w2723, w2722, w2721, w2720, w2719, w2718, w2717, w2716, w2715, w2714, w2713, w2712, w2711, w2710, w2709, w2708, w2707, w2706, w2705, w2704, w2703, w2702, w2701, w2700;
wire          w2831, w2830, w2829, w2828, w2827, w2826, w2825, w2824, w2823, w2822, w2821, w2820, w2819, w2818, w2817, w2816, w2815, w2814, w2813, w2812, w2811, w2810, w2809, w2808, w2807, w2806, w2805, w2804, w2803, w2802, w2801, w2800;
wire          w2931, w2930, w2929, w2928, w2927, w2926, w2925, w2924, w2923, w2922, w2921, w2920, w2919, w2918, w2917, w2916, w2915, w2914, w2913, w2912, w2911, w2910, w2909, w2908, w2907, w2906, w2905, w2904, w2903, w2902, w2901, w2900;
wire          w3031, w3030, w3029, w3028, w3027, w3026, w3025, w3024, w3023, w3022, w3021, w3020, w3019, w3018, w3017, w3016, w3015, w3014, w3013, w3012, w3011, w3010, w3009, w3008, w3007, w3006, w3005, w3004, w3003, w3002, w3001, w3000;
wire          w3131, w3130, w3129, w3128, w3127, w3126, w3125, w3124, w3123, w3122, w3121, w3120, w3119, w3118, w3117, w3116, w3115, w3114, w3113, w3112, w3111, w3110, w3109, w3108, w3107, w3106, w3105, w3104, w3103, w3102, w3101, w3100;

//cell矩阵按照纵向方式从右到左排列
//Line 0
cell3 u_cell3_0000 (.ai(ai[0]), .bi(bi[31]), .gi(gi[0]), .ti1(ti1[31]), .ti2(ti2[0]), .to(w0000));
cell2 u_cell2_0100 (.ai(ai[0]), .bi(bi[30]), .gi(gi[0]), .ti1(ti1[30]), .to(w0100));
cell2 u_cell2_0200 (.ai(ai[0]), .bi(bi[29]), .gi(gi[0]), .ti1(ti1[29]), .to(w0200));
cell2 u_cell2_0300 (.ai(ai[0]), .bi(bi[28]), .gi(gi[0]), .ti1(ti1[28]), .to(w0300));
cell2 u_cell2_0400 (.ai(ai[0]), .bi(bi[27]), .gi(gi[0]), .ti1(ti1[27]), .to(w0400));
cell2 u_cell2_0500 (.ai(ai[0]), .bi(bi[26]), .gi(gi[0]), .ti1(ti1[26]), .to(w0500));
cell2 u_cell2_0600 (.ai(ai[0]), .bi(bi[25]), .gi(gi[0]), .ti1(ti1[25]), .to(w0600));
cell2 u_cell2_0700 (.ai(ai[0]), .bi(bi[24]), .gi(gi[0]), .ti1(ti1[24]), .to(w0700));
cell2 u_cell2_0800 (.ai(ai[0]), .bi(bi[23]), .gi(gi[0]), .ti1(ti1[23]), .to(w0800));
cell2 u_cell2_0900 (.ai(ai[0]), .bi(bi[22]), .gi(gi[0]), .ti1(ti1[22]), .to(w0900));
cell2 u_cell2_1000 (.ai(ai[0]), .bi(bi[21]), .gi(gi[0]), .ti1(ti1[21]), .to(w1000));
cell2 u_cell2_1100 (.ai(ai[0]), .bi(bi[20]), .gi(gi[0]), .ti1(ti1[20]), .to(w1100));
cell2 u_cell2_1200 (.ai(ai[0]), .bi(bi[19]), .gi(gi[0]), .ti1(ti1[19]), .to(w1200));
cell2 u_cell2_1300 (.ai(ai[0]), .bi(bi[18]), .gi(gi[0]), .ti1(ti1[18]), .to(w1300));
cell2 u_cell2_1400 (.ai(ai[0]), .bi(bi[17]), .gi(gi[0]), .ti1(ti1[17]), .to(w1400));
cell2 u_cell2_1500 (.ai(ai[0]), .bi(bi[16]), .gi(gi[0]), .ti1(ti1[16]), .to(w1500));
cell2 u_cell2_1600 (.ai(ai[0]), .bi(bi[15]), .gi(gi[0]), .ti1(ti1[15]), .to(w1600));
cell2 u_cell2_1700 (.ai(ai[0]), .bi(bi[14]), .gi(gi[0]), .ti1(ti1[14]), .to(w1700));
cell2 u_cell2_1800 (.ai(ai[0]), .bi(bi[13]), .gi(gi[0]), .ti1(ti1[13]), .to(w1800));
cell2 u_cell2_1900 (.ai(ai[0]), .bi(bi[12]), .gi(gi[0]), .ti1(ti1[12]), .to(w1900));
cell2 u_cell2_2000 (.ai(ai[0]), .bi(bi[11]), .gi(gi[0]), .ti1(ti1[11]), .to(w2000));
cell2 u_cell2_2100 (.ai(ai[0]), .bi(bi[10]), .gi(gi[0]), .ti1(ti1[10]), .to(w2100));
cell2 u_cell2_2200 (.ai(ai[0]), .bi(bi[ 9]), .gi(gi[0]), .ti1(ti1[ 9]), .to(w2200));
cell2 u_cell2_2300 (.ai(ai[0]), .bi(bi[ 8]), .gi(gi[0]), .ti1(ti1[ 8]), .to(w2300));
cell2 u_cell2_2400 (.ai(ai[0]), .bi(bi[ 7]), .gi(gi[0]), .ti1(ti1[ 7]), .to(w2400));
cell2 u_cell2_2500 (.ai(ai[0]), .bi(bi[ 6]), .gi(gi[0]), .ti1(ti1[ 6]), .to(w2500));
cell2 u_cell2_2600 (.ai(ai[0]), .bi(bi[ 5]), .gi(gi[0]), .ti1(ti1[ 5]), .to(w2600));
cell2 u_cell2_2700 (.ai(ai[0]), .bi(bi[ 4]), .gi(gi[0]), .ti1(ti1[ 4]), .to(w2700));
cell2 u_cell2_2800 (.ai(ai[0]), .bi(bi[ 3]), .gi(gi[0]), .ti1(ti1[ 3]), .to(w2800));
cell2 u_cell2_2900 (.ai(ai[0]), .bi(bi[ 2]), .gi(gi[0]), .ti1(ti1[ 2]), .to(w2900));
cell2 u_cell2_3000 (.ai(ai[0]), .bi(bi[ 1]), .gi(gi[0]), .ti1(ti1[ 1]), .to(w3000));
cell2 u_cell2_3100 (.ai(ai[0]), .bi(bi[ 0]), .gi(gi[0]), .ti1(ti1[ 0]), .to(w3100));
//Line 1
cell4 u_cell4_0001 (.ai(ai[1]), .bi(bi[31]), .gi(gi[1]), .ti1(ti1[31]), .ti2(ti2[1]), .ti3(ti3[1]), .to(w0001));
cell3 u_cell3_0101 (.ai(ai[1]), .bi(bi[30]), .gi(gi[1]), .ti1(ti1[30]), .ti2(w0000), .to(w0101));
cell3 u_cell3_0201 (.ai(ai[1]), .bi(bi[29]), .gi(gi[1]), .ti1(ti1[29]), .ti2(w0100), .to(w0201));
cell3 u_cell3_0301 (.ai(ai[1]), .bi(bi[28]), .gi(gi[1]), .ti1(ti1[28]), .ti2(w0200), .to(w0301));
cell3 u_cell3_0401 (.ai(ai[1]), .bi(bi[27]), .gi(gi[1]), .ti1(ti1[27]), .ti2(w0300), .to(w0401));
cell3 u_cell3_0501 (.ai(ai[1]), .bi(bi[26]), .gi(gi[1]), .ti1(ti1[26]), .ti2(w0400), .to(w0501));
cell3 u_cell3_0601 (.ai(ai[1]), .bi(bi[25]), .gi(gi[1]), .ti1(ti1[25]), .ti2(w0500), .to(w0601));
cell3 u_cell3_0701 (.ai(ai[1]), .bi(bi[24]), .gi(gi[1]), .ti1(ti1[24]), .ti2(w0600), .to(w0701));
cell3 u_cell3_0801 (.ai(ai[1]), .bi(bi[23]), .gi(gi[1]), .ti1(ti1[23]), .ti2(w0700), .to(w0801));
cell3 u_cell3_0901 (.ai(ai[1]), .bi(bi[22]), .gi(gi[1]), .ti1(ti1[22]), .ti2(w0800), .to(w0901));
cell3 u_cell3_1001 (.ai(ai[1]), .bi(bi[21]), .gi(gi[1]), .ti1(ti1[21]), .ti2(w0900), .to(w1001));
cell3 u_cell3_1101 (.ai(ai[1]), .bi(bi[20]), .gi(gi[1]), .ti1(ti1[20]), .ti2(w1000), .to(w1101));
cell3 u_cell3_1201 (.ai(ai[1]), .bi(bi[19]), .gi(gi[1]), .ti1(ti1[19]), .ti2(w1100), .to(w1201));
cell3 u_cell3_1301 (.ai(ai[1]), .bi(bi[18]), .gi(gi[1]), .ti1(ti1[18]), .ti2(w1200), .to(w1301));
cell3 u_cell3_1401 (.ai(ai[1]), .bi(bi[17]), .gi(gi[1]), .ti1(ti1[17]), .ti2(w1300), .to(w1401));
cell3 u_cell3_1501 (.ai(ai[1]), .bi(bi[16]), .gi(gi[1]), .ti1(ti1[16]), .ti2(w1400), .to(w1501));
cell3 u_cell3_1601 (.ai(ai[1]), .bi(bi[15]), .gi(gi[1]), .ti1(ti1[15]), .ti2(w1500), .to(w1601));
cell3 u_cell3_1701 (.ai(ai[1]), .bi(bi[14]), .gi(gi[1]), .ti1(ti1[14]), .ti2(w1600), .to(w1701));
cell3 u_cell3_1801 (.ai(ai[1]), .bi(bi[13]), .gi(gi[1]), .ti1(ti1[13]), .ti2(w1700), .to(w1801));
cell3 u_cell3_1901 (.ai(ai[1]), .bi(bi[12]), .gi(gi[1]), .ti1(ti1[12]), .ti2(w1800), .to(w1901));
cell3 u_cell3_2001 (.ai(ai[1]), .bi(bi[11]), .gi(gi[1]), .ti1(ti1[11]), .ti2(w1900), .to(w2001));
cell3 u_cell3_2101 (.ai(ai[1]), .bi(bi[10]), .gi(gi[1]), .ti1(ti1[10]), .ti2(w2000), .to(w2101));
cell3 u_cell3_2201 (.ai(ai[1]), .bi(bi[ 9]), .gi(gi[1]), .ti1(ti1[ 9]), .ti2(w2100), .to(w2201));
cell3 u_cell3_2301 (.ai(ai[1]), .bi(bi[ 8]), .gi(gi[1]), .ti1(ti1[ 8]), .ti2(w2200), .to(w2301));
cell3 u_cell3_2401 (.ai(ai[1]), .bi(bi[ 7]), .gi(gi[1]), .ti1(ti1[ 7]), .ti2(w2300), .to(w2401));
cell3 u_cell3_2501 (.ai(ai[1]), .bi(bi[ 6]), .gi(gi[1]), .ti1(ti1[ 6]), .ti2(w2400), .to(w2501));
cell3 u_cell3_2601 (.ai(ai[1]), .bi(bi[ 5]), .gi(gi[1]), .ti1(ti1[ 5]), .ti2(w2500), .to(w2601));
cell3 u_cell3_2701 (.ai(ai[1]), .bi(bi[ 4]), .gi(gi[1]), .ti1(ti1[ 4]), .ti2(w2600), .to(w2701));
cell3 u_cell3_2801 (.ai(ai[1]), .bi(bi[ 3]), .gi(gi[1]), .ti1(ti1[ 3]), .ti2(w2700), .to(w2801));
cell3 u_cell3_2901 (.ai(ai[1]), .bi(bi[ 2]), .gi(gi[1]), .ti1(ti1[ 2]), .ti2(w2800), .to(w2901));
cell3 u_cell3_3001 (.ai(ai[1]), .bi(bi[ 1]), .gi(gi[1]), .ti1(ti1[ 1]), .ti2(w2900), .to(w3001));
cell3 u_cell3_3101 (.ai(ai[1]), .bi(bi[ 0]), .gi(gi[1]), .ti1(ti1[ 0]), .ti2(w3000), .to(w3101));
//Line 2                                                                                          
cell4 u_cell4_0002 (.ai(ai[2]), .bi(bi[31]), .gi(gi[2]), .ti1(ti1[31]), .ti2(ti2[2]), .ti3(ti3[2]), .to(w0002));
cell3 u_cell3_0102 (.ai(ai[2]), .bi(bi[30]), .gi(gi[2]), .ti1(ti1[30]), .ti2(w0001), .to(w0102));
cell3 u_cell3_0202 (.ai(ai[2]), .bi(bi[29]), .gi(gi[2]), .ti1(ti1[29]), .ti2(w0101), .to(w0202));
cell3 u_cell3_0302 (.ai(ai[2]), .bi(bi[28]), .gi(gi[2]), .ti1(ti1[28]), .ti2(w0201), .to(w0302));
cell3 u_cell3_0402 (.ai(ai[2]), .bi(bi[27]), .gi(gi[2]), .ti1(ti1[27]), .ti2(w0301), .to(w0402));
cell3 u_cell3_0502 (.ai(ai[2]), .bi(bi[26]), .gi(gi[2]), .ti1(ti1[26]), .ti2(w0401), .to(w0502));
cell3 u_cell3_0602 (.ai(ai[2]), .bi(bi[25]), .gi(gi[2]), .ti1(ti1[25]), .ti2(w0501), .to(w0602));
cell3 u_cell3_0702 (.ai(ai[2]), .bi(bi[24]), .gi(gi[2]), .ti1(ti1[24]), .ti2(w0601), .to(w0702));
cell3 u_cell3_0802 (.ai(ai[2]), .bi(bi[23]), .gi(gi[2]), .ti1(ti1[23]), .ti2(w0701), .to(w0802));
cell3 u_cell3_0902 (.ai(ai[2]), .bi(bi[22]), .gi(gi[2]), .ti1(ti1[22]), .ti2(w0801), .to(w0902));

⌨️ 快捷键说明

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