📄 i2c.v
字号:
NAND2X2 U986 ( .A(n1390), .B(n1090), .Y(n1281) );
NAND2X2 U987 ( .A(n1372), .B(net548), .Y(n1280) );
INVX2 U988 ( .A(n1250), .Y(n1147) );
INVX2 U989 ( .A(n1340), .Y(n1192) );
INVX2 U990 ( .A(n1342), .Y(n1195) );
INVX2 U991 ( .A(n1344), .Y(n1198) );
INVX2 U992 ( .A(n1346), .Y(n1201) );
INVX2 U993 ( .A(n1348), .Y(n1204) );
INVX2 U994 ( .A(n1350), .Y(n1207) );
INVX2 U995 ( .A(n1352), .Y(n1210) );
INVX2 U996 ( .A(n1354), .Y(n1213) );
INVX2 U997 ( .A(n1356), .Y(n1216) );
INVX2 U998 ( .A(n1358), .Y(n1219) );
INVX2 U999 ( .A(n1360), .Y(n1222) );
INVX2 U1000 ( .A(n1362), .Y(n1225) );
INVX2 U1001 ( .A(n1364), .Y(n1228) );
INVX2 U1002 ( .A(n1366), .Y(n1231) );
INVX2 U1003 ( .A(n1368), .Y(n1234) );
INVX2 U1004 ( .A(n1338), .Y(n1189) );
INVX2 U1005 ( .A(n1172), .Y(n1153) );
INVX2 U1006 ( .A(n1146), .Y(n1249) );
INVX2 U1007 ( .A(n1286), .Y(n1376) );
INVX2 U1008 ( .A(n1382), .Y(n1383) );
INVX2 U1009 ( .A(n1372), .Y(n1390) );
INVX2 U1010 ( .A(n1263), .Y(n1385) );
INVX2 U1011 ( .A(n1319), .Y(n1389) );
INVX2 U1012 ( .A(n1329), .Y(n1387) );
INVX2 U1013 ( .A(n1278), .Y(n1187) );
DFFRX1 \cnt_reg[15] ( .D(n1053), .CK(clk), .RN(nReset), .Q(\cnt[15] ) );
DFFRX1 \cnt_reg[14] ( .D(n1054), .CK(clk), .RN(nReset), .Q(\cnt[14] ) );
DFFRX1 \cnt_reg[13] ( .D(n1055), .CK(clk), .RN(nReset), .Q(\cnt[13] ) );
DFFRX1 \cnt_reg[12] ( .D(n1056), .CK(clk), .RN(nReset), .Q(\cnt[12] ) );
DFFRX1 \cnt_reg[11] ( .D(n1057), .CK(clk), .RN(nReset), .Q(\cnt[11] ) );
DFFRX1 \cnt_reg[10] ( .D(n1058), .CK(clk), .RN(nReset), .Q(\cnt[10] ) );
DFFRX1 \cnt_reg[9] ( .D(n1059), .CK(clk), .RN(nReset), .Q(\cnt[9] ) );
DFFRX1 \cnt_reg[8] ( .D(n1060), .CK(clk), .RN(nReset), .Q(\cnt[8] ) );
DFFRX1 \cnt_reg[7] ( .D(n1061), .CK(clk), .RN(nReset), .Q(\cnt[7] ) );
DFFRX1 \cnt_reg[6] ( .D(n1062), .CK(clk), .RN(nReset), .Q(\cnt[6] ) );
DFFRX1 \cnt_reg[5] ( .D(n1063), .CK(clk), .RN(nReset), .Q(\cnt[5] ) );
DFFRX1 \cnt_reg[4] ( .D(n1064), .CK(clk), .RN(nReset), .Q(\cnt[4] ) );
DFFRX1 \cnt_reg[3] ( .D(n1065), .CK(clk), .RN(nReset), .Q(\cnt[3] ) );
DFFRX1 \cnt_reg[2] ( .D(n1066), .CK(clk), .RN(nReset), .Q(\cnt[2] ) );
DFFRX1 \cnt_reg[1] ( .D(n1067), .CK(clk), .RN(nReset), .Q(\cnt[1] ) );
DFFRX1 \cnt_reg[0] ( .D(n1068), .CK(clk), .RN(nReset), .Q(\cnt[0] ) );
DFFRX1 \c_state_reg[14] ( .D(n1069), .CK(clk), .RN(nReset), .Q(
\c_state[14] ), .QN(n1092) );
DFFRX1 \c_state_reg[13] ( .D(n1070), .CK(clk), .RN(nReset), .Q(
\c_state[13] ), .QN(n1100) );
DFFRX1 \c_state_reg[12] ( .D(n1071), .CK(clk), .RN(nReset), .Q(
\c_state[12] ), .QN(n1106) );
DFFRX1 \c_state_reg[11] ( .D(n1072), .CK(clk), .RN(nReset), .Q(
\c_state[11] ), .QN(n1105) );
DFFRX1 \c_state_reg[10] ( .D(n1073), .CK(clk), .RN(nReset), .Q(
\c_state[10] ), .QN(n1093) );
DFFRX1 \c_state_reg[9] ( .D(n1074), .CK(clk), .RN(nReset), .Q(
\c_state[9] ), .QN(n1099) );
DFFRX1 \c_state_reg[8] ( .D(n1075), .CK(clk), .RN(nReset), .Q(
\c_state[8] ), .QN(n1098) );
DFFRX1 \c_state_reg[7] ( .D(n1076), .CK(clk), .RN(nReset), .Q(
\c_state[7] ), .QN(n1097) );
DFFRX1 \c_state_reg[6] ( .D(n1077), .CK(clk), .RN(nReset), .Q(
\c_state[6] ), .QN(n1094) );
DFFRX1 \c_state_reg[5] ( .D(n1078), .CK(clk), .RN(nReset), .Q(
\c_state[5] ), .QN(n1101) );
DFFRX1 \c_state_reg[4] ( .D(n1079), .CK(clk), .RN(nReset), .Q(
\c_state[4] ), .QN(n1102) );
DFFRX1 \c_state_reg[3] ( .D(n1080), .CK(clk), .RN(nReset), .Q(
\c_state[3] ), .QN(n1095) );
DFFRX1 \c_state_reg[2] ( .D(n1081), .CK(clk), .RN(nReset), .Q(
\c_state[2] ), .QN(n1096) );
DFFRX1 \c_state_reg[1] ( .D(n1082), .CK(clk), .RN(nReset), .Q(
\c_state[1] ) );
DFFRX1 \c_state_reg[0] ( .D(n1083), .CK(clk), .RN(nReset), .Q(
\c_state[0] ), .QN(n1104) );
DFFSX1 sda_oen_reg ( .D(n1084), .CK(clk), .SN(nReset), .Q(sda_oen), .QN(
net288) );
DFFRX1 dout_reg ( .D(n1085), .CK(clk), .RN(nReset), .Q(dout), .QN(net548)
);
DFFSX1 scl_oen_reg ( .D(n1086), .CK(clk), .SN(nReset), .Q(scl_oen), .QN(
n1103) );
DFFSX1 clk_en_reg ( .D(n1087), .CK(clk), .SN(nReset), .Q(clk_en) );
DFFRX1 busy_reg ( .D(n1088), .CK(clk), .RN(nReset), .Q(busy) );
DFFRX1 cmd_ack_reg ( .D(n1089), .CK(clk), .RN(nReset), .Q(cmd_ack) );
endmodule
module i2c_master_byte_ctrl ( clk, rst, nReset, ena, clk_cnt, start, stop,
read, write, ack_in, din, cmd_ack, ack_out, dout, i2c_busy, scl_i, scl_o,
scl_oen, sda_i, sda_o, sda_oen );
input [15:0] clk_cnt;
input [7:0] din;
output [7:0] dout;
input clk, rst, nReset, ena, start, stop, read, write, ack_in, scl_i, sda_i;
output cmd_ack, ack_out, i2c_busy, scl_o, scl_oen, sda_o, sda_oen;
wire \c_state[2] , core_ack, \c_state[4] , \c_state[0] , \dcnt[0] ,
\core_cmd[1] , core_rxd, \core_cmd[3] , \dcnt[2] , \core_cmd[2] ,
\core_cmd[0] , \dcnt[1] , core_txd, shift, \c_state[1] , ld,
\c_state[3] , net247, net249, 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, n1391,
n1392, n1393, n1394, n1395, n1396, n1397, n1398, n1399, n1400, n1401,
n1402, n1403, n1404, n1405, n1406, n1407, n1408, n1409, n1410, n1411,
n1412, n1413, n1414, n1415, n1416, n1417, n1418, n1419, n1420, n1421,
n1422, n1423, n1424, n1425, n1426, n1427, n1428, n1429, n1430, n1431,
n1432, n1433, n1434, n1435, n1436, n1437, n1438, n1439, n1440, n1441,
n1442, n1443, n1444, n1445, n1446, n1447, n1448, n1449, n1450, n1451,
n1452, n1453, n1454, n1455, n1456, n1457, n1458, n1459, n1460, n1461,
n1462, n1463, n1464, n1465, n1466, n1467, n1468, n1469, n1470, n1471,
n1472, n1473, n1474, n1475, n1476, n1477, n1478, n1479, n1480, n1481,
n1482, n1483, n1484, n1485, n1486, n1487, n1488, n1489, n1490, n1491,
n1492, n1493, n1494, n1495, n1496, n1497, n1498, n1499, n1500, n1501,
n1502, n1503, n1504, n1505, n1506, n1507, n1508, n1509, n1510, n1511,
n1512, n1513, n1514, n1515, n1516, n1517, n1518, n1519, n1520, n1521,
n1522, n1523, n1524, n1525, n1526, n1527, n1528, n1529, n1530, n1531,
n1532, n1533, n1534, n1535, n1536, n1537, n1538, n1539, n1540, n1541,
n1542, n1543, n1544, n1545, n1546, n1547, n1548, n1549, n1550, n1551,
n1552, n1553, n1554, n1555, n1556, n1557, n1558, n1559, n1560, n1561,
n1562, n1607, n1608, n1609, n1610, n1611, n1612, n1613, n1614, n1615,
n1616, n1617, n1618, n1619, n1620, n1621, n1622, n1623, n1624, n1625,
n1626, n1627, n1628, n1629, n1630, n1631, n1632, n1633, n1634, n1635,
n1636, n1637, n1638, n1639;
assign scl_o = 1'b0;
assign sda_o = 1'b0;
i2c_master_bit_ctrl bit_controller ( .clk(clk), .rst(rst), .nReset(nReset),
.clk_cnt(clk_cnt), .ena(ena), .cmd({\core_cmd[3] , \core_cmd[2] ,
\core_cmd[1] , \core_cmd[0] }), .cmd_ack(core_ack), .busy(i2c_busy),
.din(core_txd), .dout(core_rxd), .scl_i(scl_i), .scl_oen(scl_oen),
.sda_i(sda_i), .sda_oen(sda_oen) );
NOR2X2 U456 ( .A(rst), .B(n1407), .Y(n1201) );
NOR2X2 U457 ( .A(rst), .B(n1408), .Y(n1202) );
NOR2X2 U458 ( .A(rst), .B(n1409), .Y(n1203) );
NOR2X2 U459 ( .A(n1410), .B(n1411), .Y(n1204) );
NAND2X2 U460 ( .A(n1412), .B(n1413), .Y(n1205) );
NAND2X2 U461 ( .A(n1414), .B(n1415), .Y(n1206) );
NAND2X2 U462 ( .A(n1416), .B(n1417), .Y(n1208) );
NAND2X2 U463 ( .A(n1418), .B(n1419), .Y(n1209) );
NAND2X2 U464 ( .A(n1420), .B(n1421), .Y(n1210) );
NAND2X2 U465 ( .A(n1422), .B(n1423), .Y(n1211) );
NAND2X2 U466 ( .A(n1424), .B(n1425), .Y(n1212) );
NAND2X2 U467 ( .A(n1426), .B(n1427), .Y(n1213) );
NAND2X2 U468 ( .A(n1412), .B(n1428), .Y(n1214) );
NAND2X2 U469 ( .A(n1429), .B(n1430), .Y(n1215) );
NOR2X2 U470 ( .A(n1431), .B(n1432), .Y(n1216) );
NAND2X2 U471 ( .A(n1433), .B(n1434), .Y(n1217) );
NAND2X2 U472 ( .A(n1435), .B(n1436), .Y(n1193) );
NAND2X2 U473 ( .A(n1437), .B(n1438), .Y(n1194) );
NAND2X2 U474 ( .A(n1439), .B(n1440), .Y(n1195) );
NAND2X2 U475 ( .A(n1441), .B(n1442), .Y(n1196) );
NAND2X2 U476 ( .A(n1443), .B(n1444), .Y(n1197) );
NAND2X2 U477 ( .A(n1445), .B(n1446), .Y(n1198) );
NAND2X2 U478 ( .A(n1447), .B(n1448), .Y(n1199) );
NAND2X2 U479 ( .A(n1449), .B(n1450), .Y(n1200) );
NOR2X2 U480 ( .A(stop), .B(n1452), .Y(n1451) );
NOR2X2 U481 ( .A(n1451), .B(cmd_ack), .Y(n1453) );
NOR2X2 U482 ( .A(n1455), .B(n1456), .Y(n1454) );
NOR2X2 U483 ( .A(n1392), .B(n1458), .Y(n1457) );
NOR2X2 U484 ( .A(n1460), .B(n1461), .Y(n1459) );
NOR2X2 U485 ( .A(n1463), .B(net249), .Y(n1462) );
NOR2X2 U486 ( .A(core_ack), .B(ack_in), .Y(n1464) );
NOR2X2 U487 ( .A(n1455), .B(n1466), .Y(n1465) );
NOR2X2 U488 ( .A(n1393), .B(n1458), .Y(n1467) );
NOR2X2 U489 ( .A(read), .B(n1469), .Y(n1468) );
NOR2X2 U490 ( .A(n1463), .B(net247), .Y(n1470) );
NOR2X2 U491 ( .A(ld), .B(n1471), .Y(n1409) );
NOR2X2 U492 ( .A(\dcnt[0] ), .B(n1406), .Y(n1472) );
NOR2X2 U493 ( .A(ld), .B(n1473), .Y(n1408) );
NOR2X2 U494 ( .A(ld), .B(n1474), .Y(n1407) );
NOR2X2 U495 ( .A(n1476), .B(n1477), .Y(n1475) );
NOR2X2 U496 ( .A(n1477), .B(n1398), .Y(n1478) );
NOR2X2 U497 ( .A(n1477), .B(n1399), .Y(n1479) );
NOR2X2 U498 ( .A(n1477), .B(n1400), .Y(n1480) );
NOR2X2 U499 ( .A(n1477), .B(n1401), .Y(n1481) );
NOR2X2 U500 ( .A(n1477), .B(n1402), .Y(n1482) );
NOR2X2 U501 ( .A(n1477), .B(n1403), .Y(n1483) );
NOR2X2 U502 ( .A(n1477), .B(n1404), .Y(n1484) );
NOR2X2 U503 ( .A(n1486), .B(n1487), .Y(n1485) );
NAND2X2 U504 ( .A(n1488), .B(n1489), .Y(n1410) );
NOR2X2 U505 ( .A(n1410), .B(\c_state[0] ), .Y(n1490) );
NAND2X2 U506 ( .A(n1461), .B(n1491), .Y(n1452) );
NAND2X2 U507 ( .A(n1490), .B(n1391), .Y(n1492) );
INVX2 U508 ( .A(stop), .Y(n1493) );
INVX2 U509 ( .A(core_ack), .Y(n1486) );
NAND2X2 U510 ( .A(core_ack), .B(\c_state[3] ), .Y(n1494) );
NAND2X2 U511 ( .A(n1496), .B(n1497), .Y(n1495) );
INVX2 U512 ( .A(core_rxd), .Y(n1476) );
NAND2X2 U513 ( .A(n1499), .B(n1500), .Y(n1498) );
NAND2X2 U514 ( .A(n1501), .B(n1502), .Y(n1455) );
NAND2X2 U515 ( .A(n1503), .B(n1504), .Y(n1501) );
NAND2X2 U516 ( .A(n1505), .B(n1502), .Y(n1463) );
NAND2X2 U517 ( .A(n1507), .B(n1508), .Y(n1506) );
INVX2 U518 ( .A(read), .Y(n1461) );
NAND2X2 U519 ( .A(n1510), .B(n1397), .Y(n1509) );
NOR2X2 U520 ( .A(n1509), .B(n1455), .Y(n1511) );
NOR2X2 U521 ( .A(n1513), .B(n1393), .Y(n1512) );
INVX2 U522 ( .A(start), .Y(n1514) );
NAND2X2 U523 ( .A(n1515), .B(n1391), .Y(n1411) );
NAND2X2 U524 ( .A(ld), .B(n1502), .Y(n1516) );
NAND2X2 U525 ( .A(n1517), .B(n1518), .Y(n1477) );
NAND2X2 U526 ( .A(n1517), .B(n1396), .Y(n1518) );
NAND2X2 U527 ( .A(n1519), .B(n1520), .Y(n1471) );
NAND2X2 U528 ( .A(n1521), .B(n1522), .Y(n1474) );
NAND2X2 U529 ( .A(n1523), .B(n1524), .Y(n1431) );
NAND2X2 U530 ( .A(n1526), .B(n1527), .Y(n1525) );
NOR2X2 U531 ( .A(n1492), .B(n1514), .Y(n1528) );
NAND2X2 U532 ( .A(n1529), .B(n1530), .Y(n1207) );
NOR2X2 U533 ( .A(n1532), .B(n1472), .Y(n1531) );
NAND2X2 U534 ( .A(n1533), .B(n1534), .Y(n1473) );
NOR2X2 U535 ( .A(rst), .B(\c_state[4] ), .Y(n1488) );
NAND2X2 U536 ( .A(n1514), .B(n1405), .Y(n1535) );
NOR2X2 U537 ( .A(n1452), .B(n1535), .Y(n1536) );
NOR2X2 U538 ( .A(n1492), .B(n1493), .Y(n1537) );
NOR2X2 U539 ( .A(\c_state[3] ), .B(\c_state[0] ), .Y(n1497) );
NOR2X2 U540 ( .A(\c_state[4] ), .B(n1486), .Y(n1496) );
NOR2X2 U541 ( .A(\dcnt[1] ), .B(\dcnt[2] ), .Y(n1510) );
NAND2X2 U542 ( .A(n1538), .B(n1502), .Y(n1432) );
NOR2X2 U543 ( .A(n1540), .B(n1494), .Y(n1539) );
NOR2X2 U544 ( .A(n1524), .B(n1494), .Y(n1541) );
NOR2X2 U545 ( .A(rst), .B(n1543), .Y(n1542) );
NAND2X2 U546 ( .A(n1392), .B(n1538), .Y(n1513) );
NAND2X2 U547 ( .A(n1395), .B(n1391), .Y(n1487) );
NOR2X2 U548 ( .A(n1543), .B(n1512), .Y(n1503) );
NOR2X2 U549 ( .A(\c_state[3] ), .B(start), .Y(n1500) );
NOR2X2 U550 ( .A(n1505), .B(n1410), .Y(n1499) );
NOR2X2 U551 ( .A(\c_state[0] ), .B(n1452), .Y(n1544) );
NOR2X2 U552 ( .A(n1493), .B(n1391), .Y(n1545) );
NAND2X2 U553 ( .A(\c_state[1] ), .B(n1509), .Y(n1456) );
NOR2X2 U554 ( .A(n1454), .B(n1457), .Y(n1423) );
NOR2X2 U555 ( .A(n1459), .B(n1462), .Y(n1422) );
NOR2X2 U556 ( .A(n1464), .B(n1540), .Y(n1546) );
NOR2X2 U557 ( .A(\c_state[0] ), .B(\c_state[4] ), .Y(n1547) );
NOR2X2 U558 ( .A(\c_state[2] ), .B(n1525), .Y(n1548) );
NAND2X2 U559 ( .A(\c_state[2] ), .B(n1509), .Y(n1466) );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -