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

📄 i2c.v

📁 一个用TCL/TK写的用于verilog的集成编辑环境.
💻 V
📖 第 1 页 / 共 5 页
字号:

module i2c_master_bit_ctrl_DW01_dec_16_0 ( A, SUM );
input  [15:0] A;
output [15:0] SUM;
    wire \carry[15] , \carry[13] , \carry[9] , \carry[4] , \carry[6] , 
        \carry[2] , \carry[14] , \carry[11] , \carry[10] , \carry[12] , 
        \carry[8] , \carry[7] , \carry[3] , \carry[5] , n37, n38, n39, n40, 
        n41, n42, n43, n44, n45, n46, n47, n48, n49, n51, n52, n53, n54, n55, 
        n56, n57, n58, n59, n60, n61, n62, n63, n64, n65, n66, n67, n68, n69, 
        n70, n71, n72, n73, n74, n75, n76, n77, n78, n79, n80, n81, n82, n83, 
        n84, n85, n86, n87, n88, n89, n90, n91, n92, n93, n94, n95, n96;
    NAND2X2 U1_B_3 ( .A(n37), .B(n38), .Y(\carry[4] ) );
    NAND2X2 U1_B_4 ( .A(n39), .B(n40), .Y(\carry[5] ) );
    NAND2X2 U1_B_11 ( .A(n41), .B(n42), .Y(\carry[12] ) );
    NAND2X2 U1_B_2 ( .A(n43), .B(n44), .Y(\carry[3] ) );
    NAND2X2 U1_B_5 ( .A(n45), .B(n46), .Y(\carry[6] ) );
    NAND2X2 U1_B_10 ( .A(n47), .B(n48), .Y(\carry[11] ) );
    NAND2X2 U1_B_1 ( .A(n49), .B(SUM[0]), .Y(\carry[2] ) );
    NAND2X2 U1_B_9 ( .A(n51), .B(n52), .Y(\carry[10] ) );
    NAND2X2 U1_B_7 ( .A(n53), .B(n54), .Y(\carry[8] ) );
    NAND2X2 U1_B_12 ( .A(n55), .B(n56), .Y(\carry[13] ) );
    NAND2X2 U1_B_6 ( .A(n57), .B(n58), .Y(\carry[7] ) );
    NAND2X2 U1_B_13 ( .A(n59), .B(n60), .Y(\carry[14] ) );
    NAND2X2 U1_B_14 ( .A(n61), .B(n62), .Y(\carry[15] ) );
    NAND2X2 U1_B_8 ( .A(n63), .B(n64), .Y(\carry[9] ) );
    INVX2 U81 ( .A(A[10]), .Y(n47) );
    INVX2 U82 ( .A(\carry[10] ), .Y(n48) );
    INVX2 U83 ( .A(A[11]), .Y(n41) );
    INVX2 U84 ( .A(\carry[11] ), .Y(n42) );
    INVX2 U85 ( .A(A[12]), .Y(n55) );
    INVX2 U86 ( .A(\carry[12] ), .Y(n56) );
    INVX2 U87 ( .A(A[13]), .Y(n59) );
    INVX2 U88 ( .A(\carry[13] ), .Y(n60) );
    INVX2 U89 ( .A(A[14]), .Y(n61) );
    INVX2 U90 ( .A(\carry[14] ), .Y(n62) );
    INVX2 U91 ( .A(A[1]), .Y(n49) );
    INVX2 U92 ( .A(A[0]), .Y(SUM[0]) );
    INVX2 U93 ( .A(A[2]), .Y(n43) );
    INVX2 U94 ( .A(\carry[2] ), .Y(n44) );
    INVX2 U95 ( .A(A[3]), .Y(n37) );
    INVX2 U96 ( .A(\carry[3] ), .Y(n38) );
    INVX2 U97 ( .A(A[4]), .Y(n39) );
    INVX2 U98 ( .A(\carry[4] ), .Y(n40) );
    INVX2 U99 ( .A(A[5]), .Y(n45) );
    INVX2 U100 ( .A(\carry[5] ), .Y(n46) );
    INVX2 U101 ( .A(A[6]), .Y(n57) );
    INVX2 U102 ( .A(\carry[6] ), .Y(n58) );
    INVX2 U103 ( .A(A[7]), .Y(n53) );
    INVX2 U104 ( .A(\carry[7] ), .Y(n54) );
    INVX2 U105 ( .A(A[8]), .Y(n63) );
    INVX2 U106 ( .A(\carry[8] ), .Y(n64) );
    INVX2 U107 ( .A(A[9]), .Y(n51) );
    INVX2 U108 ( .A(\carry[9] ), .Y(n52) );
    NOR2X2 U109 ( .A(n51), .B(\carry[9] ), .Y(n65) );
    NOR2X2 U110 ( .A(A[9]), .B(n52), .Y(n66) );
    NOR2X2 U111 ( .A(n65), .B(n66), .Y(SUM[9]) );
    NOR2X2 U112 ( .A(n63), .B(\carry[8] ), .Y(n67) );
    NOR2X2 U113 ( .A(A[8]), .B(n64), .Y(n68) );
    NOR2X2 U114 ( .A(n67), .B(n68), .Y(SUM[8]) );
    NOR2X2 U115 ( .A(n53), .B(\carry[7] ), .Y(n69) );
    NOR2X2 U116 ( .A(A[7]), .B(n54), .Y(n70) );
    NOR2X2 U117 ( .A(n69), .B(n70), .Y(SUM[7]) );
    NOR2X2 U118 ( .A(n57), .B(\carry[6] ), .Y(n71) );
    NOR2X2 U119 ( .A(A[6]), .B(n58), .Y(n72) );
    NOR2X2 U120 ( .A(n71), .B(n72), .Y(SUM[6]) );
    NOR2X2 U121 ( .A(n45), .B(\carry[5] ), .Y(n73) );
    NOR2X2 U122 ( .A(A[5]), .B(n46), .Y(n74) );
    NOR2X2 U123 ( .A(n73), .B(n74), .Y(SUM[5]) );
    NOR2X2 U124 ( .A(n39), .B(\carry[4] ), .Y(n75) );
    NOR2X2 U125 ( .A(A[4]), .B(n40), .Y(n76) );
    NOR2X2 U126 ( .A(n75), .B(n76), .Y(SUM[4]) );
    NOR2X2 U127 ( .A(n37), .B(\carry[3] ), .Y(n77) );
    NOR2X2 U128 ( .A(A[3]), .B(n38), .Y(n78) );
    NOR2X2 U129 ( .A(n77), .B(n78), .Y(SUM[3]) );
    NOR2X2 U130 ( .A(n43), .B(\carry[2] ), .Y(n79) );
    NOR2X2 U131 ( .A(A[2]), .B(n44), .Y(n80) );
    NOR2X2 U132 ( .A(n79), .B(n80), .Y(SUM[2]) );
    NOR2X2 U133 ( .A(n49), .B(A[0]), .Y(n81) );
    NOR2X2 U134 ( .A(A[1]), .B(SUM[0]), .Y(n82) );
    NOR2X2 U135 ( .A(n81), .B(n82), .Y(SUM[1]) );
    NAND2X2 U136 ( .A(n84), .B(A[15]), .Y(n83) );
    NOR2X2 U137 ( .A(A[15]), .B(n84), .Y(n85) );
    NOR2X2 U138 ( .A(n86), .B(n85), .Y(SUM[15]) );
    NOR2X2 U139 ( .A(n61), .B(\carry[14] ), .Y(n87) );
    NOR2X2 U140 ( .A(A[14]), .B(n62), .Y(n88) );
    NOR2X2 U141 ( .A(n87), .B(n88), .Y(SUM[14]) );
    NOR2X2 U142 ( .A(n59), .B(\carry[13] ), .Y(n89) );
    NOR2X2 U143 ( .A(A[13]), .B(n60), .Y(n90) );
    NOR2X2 U144 ( .A(n89), .B(n90), .Y(SUM[13]) );
    NOR2X2 U145 ( .A(n55), .B(\carry[12] ), .Y(n91) );
    NOR2X2 U146 ( .A(A[12]), .B(n56), .Y(n92) );
    NOR2X2 U147 ( .A(n91), .B(n92), .Y(SUM[12]) );
    NOR2X2 U148 ( .A(n41), .B(\carry[11] ), .Y(n93) );
    NOR2X2 U149 ( .A(A[11]), .B(n42), .Y(n94) );
    NOR2X2 U150 ( .A(n93), .B(n94), .Y(SUM[11]) );
    NOR2X2 U151 ( .A(n47), .B(\carry[10] ), .Y(n95) );
    NOR2X2 U152 ( .A(A[10]), .B(n48), .Y(n96) );
    NOR2X2 U153 ( .A(n95), .B(n96), .Y(SUM[10]) );
    INVX2 U154 ( .A(\carry[15] ), .Y(n84) );
    INVX2 U155 ( .A(n83), .Y(n86) );
endmodule


module i2c_master_bit_ctrl ( clk, rst, nReset, clk_cnt, ena, cmd, cmd_ack, 
    busy, din, dout, scl_i, scl_o, scl_oen, sda_i, sda_o, sda_oen );
input  [15:0] clk_cnt;
input  [3:0] cmd;
input  clk, rst, nReset, ena, din, scl_i, sda_i;
output cmd_ack, busy, dout, scl_o, scl_oen, sda_o, sda_oen;
    wire \c_state[2] , \cnt[4] , sSCL, \cnt[0] , \c_state[6] , \cnt[9] , 
        \c_state[4] , n_242, \c_state[9] , \cnt[2] , \cnt[6] , \c_state[0] , 
        clk_en, sto_condition325, \cnt301[4] , \cnt301[10] , \cnt301[9] , 
        \cnt301[14] , \cnt[12] , \c_state[13] , \cnt301[0] , sSDA, 
        \c_state[11] , \cnt301[2] , \cnt[10] , \cnt301[12] , \cnt[14] , 
        \cnt301[6] , \cnt[15] , \cnt301[13] , \c_state[14] , \cnt301[7] , 
        \c_state[10] , \cnt301[3] , \cnt[11] , \cnt301[8] , \cnt[13] , 
        \cnt301[15] , \c_state[12] , \cnt301[1] , \cnt301[5] , \c_state[8] , 
        \cnt301[11] , \cnt[7] , \c_state[1] , sta_condition, \c_state[5] , 
        \cnt[3] , \cnt[1] , \c_state[7] , sta_condition319, \cnt[8] , 
        \c_state[3] , \cnt[5] , net288, n1053, n1054, n1055, n1056, n1057, 
        n1058, n1059, n1060, n1061, n1062, n1063, n1064, n1065, n1066, n1067, 
        n1068, n1069, n1070, n1071, n1072, n1073, n1074, n1075, n1076, n1077, 
        n1078, n1079, n1080, n1081, n1082, n1083, n1084, n1085, n1086, n1087, 
        n1088, n1089, n1090, n1091, n1092, n1093, n1094, n1095, n1096, n1097, 
        n1098, n1099, n1100, n1101, n1102, n1103, n1104, n1105, n1106, n1107, 
        n1108, n1109, n1110, n1111, n1112, n1113, n1114, n1115, n1116, n1117, 
        n1118, n1119, n1120, n1121, n1122, n1123, n1124, n1125, n1126, n1127, 
        n1128, n1129, n1130, n1131, n1132, n1133, n1134, n1135, n1136, n1137, 
        n1138, n1139, n1140, n1141, n1142, n1143, n1144, n1145, n1146, n1147, 
        n1148, n1149, n1150, n1151, n1152, n1153, n1154, n1155, n1156, n1157, 
        n1158, n1159, n1160, n1161, n1162, n1163, n1164, n1165, n1166, n1167, 
        n1168, n1169, n1170, n1171, n1172, n1173, n1174, n1175, n1176, n1177, 
        n1178, n1179, n1180, n1181, n1182, n1183, n1184, n1185, n1186, n1187, 
        n1188, n1189, n1190, n1191, n1192, n1193, n1194, n1195, n1196, n1197, 
        n1198, n1199, n1200, n1201, n1202, n1203, n1204, n1205, n1206, n1207, 
        n1208, n1209, n1210, n1211, n1212, n1213, n1214, n1215, n1216, n1217, 
        n1218, n1219, n1220, n1221, n1222, n1223, n1224, n1225, n1226, n1227, 
        n1228, n1229, n1230, n1231, n1232, n1233, n1234, n1235, n1236, n1237, 
        n1238, n1239, n1240, n1241, n1242, n1243, n1244, n1245, n1246, n1247, 
        n1248, n1249, n1250, n1251, n1252, n1253, n1254, n1255, n1256, n1257, 
        n1258, n1259, n1260, n1261, n1262, n1263, n1264, n1265, n1266, n1267, 
        n1268, n1269, n1270, n1271, n1272, n1273, n1274, n1275, n1276, n1277, 
        n1278, n1279, n1280, n1281, n1282, n1283, n1284, n1285, n1286, n1287, 
        n1288, n1289, n1290, n1291, n1292, n1293, n1294, n1295, n1296, n1297, 
        n1298, n1299, n1300, n1301, n1302, n1303, n1304, n1305, n1306, n1307, 
        n1308, n1309, n1310, n1311, n1312, n1313, n1314, n1315, n1316, n1317, 
        n1318, n1319, n1320, n1321, n1322, n1323, n1324, n1325, n1326, n1327, 
        n1328, n1329, n1330, n1331, n1332, n1333, n1334, n1335, n1336, n1337, 
        n1338, n1339, n1340, n1341, n1342, n1343, n1344, n1345, n1346, n1347, 
        n1348, n1349, n1350, n1351, n1352, n1353, n1354, n1355, n1356, n1357, 
        n1358, n1359, n1360, n1361, n1362, n1363, n1364, n1365, n1366, n1367, 
        n1368, n1369, n1370, n1371, n1372, n1373, n1374, n1375, n1376, n1377, 
        n1378, n1379, n1380, n1381, n1382, n1383, n1384, n1385, n1386, n1387, 
        n1388, n1389, n1390, net548;
    assign scl_o = 1'b0;
    assign sda_o = 1'b0;
    i2c_master_bit_ctrl_DW01_dec_16_0 sub_178 ( .A({\cnt[15] , \cnt[14] , 
        \cnt[13] , \cnt[12] , \cnt[11] , \cnt[10] , \cnt[9] , \cnt[8] , 
        \cnt[7] , \cnt[6] , \cnt[5] , \cnt[4] , \cnt[3] , \cnt[2] , \cnt[1] , 
        \cnt[0] }), .SUM({\cnt301[15] , \cnt301[14] , \cnt301[13] , 
        \cnt301[12] , \cnt301[11] , \cnt301[10] , \cnt301[9] , \cnt301[8] , 
        \cnt301[7] , \cnt301[6] , \cnt301[5] , \cnt301[4] , \cnt301[3] , 
        \cnt301[2] , \cnt301[1] , \cnt301[0] }) );
    DFFXL sto_condition_reg ( .D(sto_condition325), .CK(clk), .QN(n_242) );
    DFFXL sta_condition_reg ( .D(sta_condition319), .CK(clk), .Q(sta_condition
        ) );
    DFFXL sSCL_reg ( .D(scl_i), .CK(clk), .Q(sSCL) );
    DFFXL sSDA_reg ( .D(sda_i), .CK(clk), .Q(sSDA), .QN(n1090) );
    DFFXL dSDA_reg ( .D(sSDA), .CK(clk), .QN(n1091) );
    NAND2X2 U691 ( .A(n1107), .B(n1108), .Y(n1069) );
    NAND2X2 U692 ( .A(n1109), .B(n1110), .Y(n1071) );
    NAND2X2 U693 ( .A(n1111), .B(n1112), .Y(n1072) );
    NAND2X2 U694 ( .A(n1113), .B(n1114), .Y(n1073) );
    NAND2X2 U695 ( .A(n1115), .B(n1116), .Y(n1074) );
    NAND2X2 U696 ( .A(n1117), .B(n1118), .Y(n1075) );
    NAND2X2 U697 ( .A(n1119), .B(n1120), .Y(n1076) );
    NAND2X2 U698 ( .A(n1121), .B(n1122), .Y(n1077) );
    NAND2X2 U699 ( .A(n1123), .B(n1124), .Y(n1079) );
    NAND2X2 U700 ( .A(n1125), .B(n1126), .Y(n1080) );
    NAND2X2 U701 ( .A(n1127), .B(n1128), .Y(n1082) );
    NAND2X2 U702 ( .A(n1129), .B(n1130), .Y(n1083) );
    NAND2X2 U703 ( .A(n1131), .B(n1132), .Y(n1084) );
    NOR2X2 U704 ( .A(rst), .B(n1133), .Y(n1085) );
    NAND2X2 U705 ( .A(n1134), .B(n1132), .Y(n1086) );
    NOR2X2 U706 ( .A(n1135), .B(n1136), .Y(n1088) );
    NAND2X2 U707 ( .A(n1137), .B(n1138), .Y(n1089) );
    NOR2X2 U708 ( .A(n1090), .B(n1139), .Y(sto_condition325) );
    NOR2X2 U709 ( .A(n1091), .B(n1140), .Y(sta_condition319) );
    NAND2X2 U710 ( .A(n1141), .B(n1142), .Y(n1070) );
    NAND2X2 U711 ( .A(n1143), .B(n1144), .Y(n1078) );
    NOR2X2 U712 ( .A(n1146), .B(n1097), .Y(n1145) );
    NAND2X2 U713 ( .A(n1147), .B(n1148), .Y(n1087) );
    NOR2X2 U714 ( .A(sta_condition), .B(busy), .Y(n1135) );
    NOR2X2 U715 ( .A(n1092), .B(n1093), .Y(n1149) );
    NOR2X2 U716 ( .A(n1100), .B(n1106), .Y(n1150) );
    NOR2X2 U717 ( .A(\c_state[11] ), .B(n1150), .Y(n1151) );
    NOR2X2 U718 ( .A(n1151), .B(n1153), .Y(n1152) );
    NOR2X2 U719 ( .A(n1152), .B(n1155), .Y(n1154) );
    NOR2X2 U720 ( .A(n1149), .B(n1157), .Y(n1156) );
    NOR2X2 U721 ( .A(n1154), .B(n1156), .Y(n1158) );
    NOR2X2 U722 ( .A(n1155), .B(n1160), .Y(n1159) );
    NOR2X2 U723 ( .A(n1158), .B(n1162), .Y(n1161) );
    NOR2X2 U724 ( .A(n1159), .B(n1161), .Y(n1163) );
    NOR2X2 U725 ( .A(n1101), .B(n1102), .Y(n1164) );
    NOR2X2 U726 ( .A(n1166), .B(n1167), .Y(n1165) );
    NOR2X2 U727 ( .A(n1169), .B(n1170), .Y(n1168) );
    NOR2X2 U728 ( .A(n1172), .B(n1173), .Y(n1171) );
    NOR2X2 U729 ( .A(\c_state[3] ), .B(n1166), .Y(n1174) );
    NOR2X2 U730 ( .A(n1174), .B(n1176), .Y(n1175) );
    NOR2X2 U731 ( .A(n1175), .B(n1103), .Y(n1177) );
    NOR2X2 U732 ( .A(n1171), .B(n1176), .Y(n1178) );
    NOR2X2 U733 ( .A(n1180), .B(n1181), .Y(n1179) );
    NOR2X2 U734 ( .A(n1169), .B(n1166), .Y(n1182) );
    NOR2X2 U735 ( .A(n1182), .B(n1176), .Y(n1183) );
    NOR2X2 U736 ( .A(n1183), .B(net288), .Y(n1184) );
    NOR2X2 U737 ( .A(n1179), .B(n1176), .Y(n1185) );
    NAND2X2 U738 ( .A(\cnt[0] ), .B(n1187), .Y(n1186) );
    NAND2X2 U739 ( .A(n1188), .B(n1189), .Y(n1068) );
    NAND2X2 U740 ( .A(n1187), .B(\cnt[1] ), .Y(n1190) );
    NAND2X2 U741 ( .A(n1191), .B(n1192), .Y(n1067) );
    NAND2X2 U742 ( .A(n1187), .B(\cnt[2] ), .Y(n1193) );
    NAND2X2 U743 ( .A(n1194), .B(n1195), .Y(n1066) );
    NAND2X2 U744 ( .A(n1187), .B(\cnt[3] ), .Y(n1196) );
    NAND2X2 U745 ( .A(n1197), .B(n1198), .Y(n1065) );
    NAND2X2 U746 ( .A(n1187), .B(\cnt[4] ), .Y(n1199) );
    NAND2X2 U747 ( .A(n1200), .B(n1201), .Y(n1064) );
    NAND2X2 U748 ( .A(n1187), .B(\cnt[5] ), .Y(n1202) );
    NAND2X2 U749 ( .A(n1203), .B(n1204), .Y(n1063) );
    NAND2X2 U750 ( .A(n1187), .B(\cnt[6] ), .Y(n1205) );
    NAND2X2 U751 ( .A(n1206), .B(n1207), .Y(n1062) );
    NAND2X2 U752 ( .A(n1187), .B(\cnt[7] ), .Y(n1208) );
    NAND2X2 U753 ( .A(n1209), .B(n1210), .Y(n1061) );

⌨️ 快捷键说明

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