📄 i2c.v
字号:
NOR2X2 U560 ( .A(n1465), .B(n1467), .Y(n1419) );
NOR2X2 U561 ( .A(n1468), .B(n1470), .Y(n1418) );
NOR2X2 U562 ( .A(n1505), .B(n1492), .Y(n1549) );
NOR2X2 U563 ( .A(\dcnt[1] ), .B(n1532), .Y(n1550) );
NOR2X2 U564 ( .A(rst), .B(ld), .Y(n1517) );
NOR2X2 U565 ( .A(n1551), .B(n1475), .Y(n1449) );
NOR2X2 U566 ( .A(n1552), .B(n1478), .Y(n1447) );
NOR2X2 U567 ( .A(n1553), .B(n1479), .Y(n1445) );
NOR2X2 U568 ( .A(n1554), .B(n1480), .Y(n1443) );
NOR2X2 U569 ( .A(n1555), .B(n1481), .Y(n1441) );
NOR2X2 U570 ( .A(n1556), .B(n1482), .Y(n1439) );
NOR2X2 U571 ( .A(n1557), .B(n1483), .Y(n1437) );
NOR2X2 U572 ( .A(n1558), .B(n1484), .Y(n1435) );
NOR2X2 U573 ( .A(core_ack), .B(n1395), .Y(n1559) );
NOR2X2 U574 ( .A(\c_state[0] ), .B(n1453), .Y(n1560) );
NOR2X2 U575 ( .A(n1559), .B(n1560), .Y(n1515) );
NOR2X2 U576 ( .A(\c_state[4] ), .B(n1562), .Y(n1561) );
NOR2X2 U577 ( .A(n1485), .B(n1394), .Y(n1607) );
NOR2X2 U578 ( .A(n1561), .B(n1607), .Y(n1608) );
NOR2X2 U579 ( .A(n1538), .B(n1392), .Y(n1609) );
NOR2X2 U580 ( .A(\c_state[2] ), .B(n1608), .Y(n1610) );
NOR2X2 U581 ( .A(n1609), .B(n1610), .Y(n1611) );
NAND2X2 U582 ( .A(n1550), .B(shift), .Y(n1612) );
INVX2 U583 ( .A(rst), .Y(n1502) );
INVX2 U584 ( .A(n1455), .Y(n1613) );
INVX2 U585 ( .A(n1463), .Y(n1614) );
INVX2 U586 ( .A(n1490), .Y(n1540) );
NOR2X2 U587 ( .A(n1397), .B(\dcnt[1] ), .Y(n1532) );
NAND2X2 U588 ( .A(n1541), .B(n1547), .Y(n1615) );
INVX2 U589 ( .A(n1615), .Y(n1543) );
INVX2 U590 ( .A(n1511), .Y(n1458) );
INVX2 U591 ( .A(n1524), .Y(n1489) );
NAND2X2 U592 ( .A(n1537), .B(n1536), .Y(n1434) );
NAND2X2 U593 ( .A(n1616), .B(n1490), .Y(n1433) );
INVX2 U594 ( .A(n1495), .Y(n1538) );
NAND2X2 U595 ( .A(n1539), .B(core_rxd), .Y(n1430) );
NAND2X2 U596 ( .A(n1542), .B(ack_out), .Y(n1429) );
NAND2X2 U597 ( .A(n1611), .B(n1393), .Y(n1504) );
INVX2 U598 ( .A(n1501), .Y(n1505) );
INVX2 U599 ( .A(n1498), .Y(n1617) );
NAND2X2 U600 ( .A(n1544), .B(n1617), .Y(n1508) );
NAND2X2 U601 ( .A(n1545), .B(n1613), .Y(n1507) );
INVX2 U602 ( .A(n1506), .Y(n1412) );
NAND2X2 U603 ( .A(n1614), .B(\core_cmd[1] ), .Y(n1428) );
NAND2X2 U604 ( .A(n1498), .B(n1619), .Y(n1618) );
NAND2X2 U605 ( .A(n1509), .B(n1502), .Y(n1620) );
NAND2X2 U606 ( .A(n1463), .B(n1620), .Y(n1621) );
NAND2X2 U607 ( .A(\c_state[1] ), .B(n1621), .Y(n1427) );
NAND2X2 U608 ( .A(read), .B(n1618), .Y(n1426) );
NAND2X2 U609 ( .A(n1511), .B(n1524), .Y(n1425) );
NAND2X2 U610 ( .A(n1614), .B(\c_state[3] ), .Y(n1424) );
NAND2X2 U611 ( .A(\c_state[1] ), .B(core_ack), .Y(n1622) );
NAND2X2 U612 ( .A(n1548), .B(n1547), .Y(n1623) );
NAND2X2 U613 ( .A(ack_in), .B(n1512), .Y(n1624) );
NAND2X2 U614 ( .A(dout[7]), .B(n1623), .Y(n1625) );
NAND2X2 U615 ( .A(n1625), .B(n1624), .Y(n1626) );
NAND2X2 U616 ( .A(n1546), .B(\c_state[3] ), .Y(n1421) );
NAND2X2 U617 ( .A(n1626), .B(n1502), .Y(n1420) );
NAND2X2 U618 ( .A(n1613), .B(\c_state[0] ), .Y(n1619) );
NAND2X2 U619 ( .A(write), .B(n1617), .Y(n1627) );
NAND2X2 U620 ( .A(n1627), .B(n1619), .Y(n1628) );
NAND2X2 U621 ( .A(\c_state[2] ), .B(n1621), .Y(n1417) );
NAND2X2 U622 ( .A(n1628), .B(n1461), .Y(n1416) );
NAND2X2 U623 ( .A(n1549), .B(start), .Y(n1415) );
NAND2X2 U624 ( .A(\core_cmd[0] ), .B(n1614), .Y(n1414) );
NAND2X2 U625 ( .A(n1614), .B(\c_state[4] ), .Y(n1413) );
INVX2 U626 ( .A(n1518), .Y(n1629) );
NOR2X2 U627 ( .A(n1516), .B(n1630), .Y(n1551) );
NAND2X2 U628 ( .A(dout[0]), .B(n1629), .Y(n1450) );
NOR2X2 U629 ( .A(n1631), .B(n1516), .Y(n1552) );
NAND2X2 U630 ( .A(dout[1]), .B(n1629), .Y(n1448) );
NOR2X2 U631 ( .A(n1632), .B(n1516), .Y(n1553) );
NAND2X2 U632 ( .A(dout[2]), .B(n1629), .Y(n1446) );
NOR2X2 U633 ( .A(n1633), .B(n1516), .Y(n1554) );
NAND2X2 U634 ( .A(dout[3]), .B(n1629), .Y(n1444) );
NOR2X2 U635 ( .A(n1634), .B(n1516), .Y(n1555) );
NAND2X2 U636 ( .A(dout[4]), .B(n1629), .Y(n1442) );
NOR2X2 U637 ( .A(n1635), .B(n1516), .Y(n1556) );
NAND2X2 U638 ( .A(dout[5]), .B(n1629), .Y(n1440) );
NOR2X2 U639 ( .A(n1636), .B(n1516), .Y(n1557) );
NAND2X2 U640 ( .A(dout[6]), .B(n1629), .Y(n1438) );
NOR2X2 U641 ( .A(n1637), .B(n1516), .Y(n1558) );
NAND2X2 U642 ( .A(n1629), .B(dout[7]), .Y(n1436) );
NAND2X2 U643 ( .A(n1509), .B(n1393), .Y(n1638) );
NAND2X2 U644 ( .A(n1392), .B(n1393), .Y(n1524) );
NAND2X2 U645 ( .A(\c_state[2] ), .B(n1638), .Y(n1523) );
NAND2X2 U646 ( .A(\c_state[1] ), .B(\c_state[3] ), .Y(n1527) );
NAND2X2 U647 ( .A(n1622), .B(n1391), .Y(n1526) );
NAND2X2 U648 ( .A(n1528), .B(n1463), .Y(n1530) );
NAND2X2 U649 ( .A(n1614), .B(\c_state[0] ), .Y(n1529) );
NAND2X2 U650 ( .A(shift), .B(n1397), .Y(n1520) );
NAND2X2 U651 ( .A(\dcnt[0] ), .B(n1396), .Y(n1519) );
NAND2X2 U652 ( .A(\dcnt[1] ), .B(n1396), .Y(n1534) );
NAND2X2 U653 ( .A(n1531), .B(shift), .Y(n1533) );
NAND2X2 U654 ( .A(\dcnt[2] ), .B(n1612), .Y(n1522) );
NOR2X2 U655 ( .A(n1612), .B(\dcnt[2] ), .Y(n1639) );
INVX2 U656 ( .A(n1639), .Y(n1521) );
INVX2 U657 ( .A(din[0]), .Y(n1630) );
INVX2 U658 ( .A(din[1]), .Y(n1631) );
INVX2 U659 ( .A(din[2]), .Y(n1632) );
INVX2 U660 ( .A(din[3]), .Y(n1633) );
INVX2 U661 ( .A(din[4]), .Y(n1634) );
INVX2 U662 ( .A(din[5]), .Y(n1635) );
INVX2 U663 ( .A(din[6]), .Y(n1636) );
INVX2 U664 ( .A(din[7]), .Y(n1637) );
INVX2 U665 ( .A(n1494), .Y(n1616) );
INVX2 U666 ( .A(write), .Y(n1491) );
INVX2 U667 ( .A(n1411), .Y(n1562) );
INVX2 U668 ( .A(n1618), .Y(n1460) );
INVX2 U669 ( .A(n1628), .Y(n1469) );
DFFRX1 \sr_reg[7] ( .D(n1193), .CK(clk), .RN(nReset), .Q(dout[7]) );
DFFRX1 \sr_reg[6] ( .D(n1194), .CK(clk), .RN(nReset), .Q(dout[6]), .QN(
n1404) );
DFFRX1 \sr_reg[5] ( .D(n1195), .CK(clk), .RN(nReset), .Q(dout[5]), .QN(
n1403) );
DFFRX1 \sr_reg[4] ( .D(n1196), .CK(clk), .RN(nReset), .Q(dout[4]), .QN(
n1402) );
DFFRX1 \sr_reg[3] ( .D(n1197), .CK(clk), .RN(nReset), .Q(dout[3]), .QN(
n1401) );
DFFRX1 \sr_reg[2] ( .D(n1198), .CK(clk), .RN(nReset), .Q(dout[2]), .QN(
n1400) );
DFFRX1 \sr_reg[1] ( .D(n1199), .CK(clk), .RN(nReset), .Q(dout[1]), .QN(
n1399) );
DFFRX1 \sr_reg[0] ( .D(n1200), .CK(clk), .RN(nReset), .Q(dout[0]), .QN(
n1398) );
DFFRX1 \dcnt_reg[2] ( .D(n1201), .CK(clk), .RN(nReset), .Q(\dcnt[2] ) );
DFFRX1 \dcnt_reg[1] ( .D(n1202), .CK(clk), .RN(nReset), .Q(\dcnt[1] ),
.QN(n1406) );
DFFRX1 \dcnt_reg[0] ( .D(n1203), .CK(clk), .RN(nReset), .Q(\dcnt[0] ),
.QN(n1397) );
DFFRX1 ld_reg ( .D(n1204), .CK(clk), .RN(nReset), .Q(ld) );
DFFRX1 \c_state_reg[4] ( .D(n1205), .CK(clk), .RN(nReset), .Q(
\c_state[4] ), .QN(n1394) );
DFFRX1 \core_cmd_reg[0] ( .D(n1206), .CK(clk), .RN(nReset), .Q(
\core_cmd[0] ) );
DFFRX1 \c_state_reg[0] ( .D(n1207), .CK(clk), .RN(nReset), .Q(
\c_state[0] ), .QN(n1395) );
DFFRX1 \c_state_reg[2] ( .D(n1208), .CK(clk), .RN(nReset), .Q(
\c_state[2] ), .QN(n1392) );
DFFRX1 \core_cmd_reg[2] ( .D(n1209), .CK(clk), .RN(nReset), .Q(
\core_cmd[2] ), .QN(net247) );
DFFRX1 core_txd_reg ( .D(n1210), .CK(clk), .RN(nReset), .Q(core_txd) );
DFFRX1 \core_cmd_reg[3] ( .D(n1211), .CK(clk), .RN(nReset), .Q(
\core_cmd[3] ), .QN(net249) );
DFFRX1 \c_state_reg[3] ( .D(n1212), .CK(clk), .RN(nReset), .Q(
\c_state[3] ), .QN(n1391) );
DFFRX1 \c_state_reg[1] ( .D(n1213), .CK(clk), .RN(nReset), .Q(
\c_state[1] ), .QN(n1393) );
DFFRX1 \core_cmd_reg[1] ( .D(n1214), .CK(clk), .RN(nReset), .Q(
\core_cmd[1] ) );
DFFRX1 ack_out_reg ( .D(n1215), .CK(clk), .RN(nReset), .Q(ack_out) );
DFFRX1 shift_reg ( .D(n1216), .CK(clk), .RN(nReset), .Q(shift), .QN(n1396)
);
DFFRX1 cmd_ack_reg ( .D(n1217), .CK(clk), .RN(nReset), .Q(cmd_ack), .QN(
n1405) );
endmodule
module i2c ( wb_clk_i, wb_rst_i, arst_i, wb_adr_i, wb_dat_i,
wb_dat_o, wb_we_i, wb_stb_i, wb_cyc_i, wb_ack_o, wb_inta_o, scl_pad_i,
scl_pad_o, scl_padoen_o, sda_pad_i, sda_pad_o, sda_padoen_o );
input [2:0] wb_adr_i;
input [7:0] wb_dat_i;
output [7:0] wb_dat_o;
input wb_clk_i, wb_rst_i, arst_i, wb_we_i, wb_stb_i, wb_cyc_i, scl_pad_i,
sda_pad_i;
output wb_ack_o, wb_inta_o, scl_pad_o, scl_padoen_o, sda_pad_o, sda_padoen_o;
wire \prer[7] , \prer[15] , \prer[11] , \txr[5] , \rxr[1] , \cr[2] ,
\prer[3] , done, \prer[8] , \cr[6] , \rxr[5] , \txr[1] , \txr[3] ,
\rxr[7] , \prer[13] , \prer[1] , \rxr[3] , \txr[7] , \cr[0] ,
\prer[5] , \ctr[0] , \sr[7] , \ctr[4] , \ctr[6] , \sr[1] , core_en, rd,
\ctr[3] , wr, \ctr[5] , \ctr_Q166[2] , \ctr[1] , irq_flag, \prer[12] ,
\rxr[2] , \txr[6] , \cr[1] , \prer[9] , \prer[4] , \rxr[6] , \txr[2] ,
\prer[0] , \prer[14] , \prer[2] , \prer[6] , \cr[7] , \rxr[4] ,
\txr[0] , irxack, \prer[10] , \rxr[0] , \txr[4] , \cr[3] , i2c_busy,
n1563, n1564, n1565, n1566, n1567, n1568, n1569, n1570, n1571, n1572,
n1573, n1574, n1575, n1576, n1577, n1578, n1579, n1580, n1581, n1582,
n1583, n1584, n1585, n1586, n1587, n1588, n1589, n1590, n1591, n1592,
n1593, n1594, n1595, n1596, n1597, n1598, n1599, n1600, n1601, n1602,
n1603, n1604, n1605, n1606, n1640, n1641, n1642, n1643, n1644, n1645,
n1646, n1647, n1648, n1649, n1650, n1651, n1652, n1653, n1654, n1655,
n1656, n1657, n1658, n1659, n1660, n1661, n1662, n1663, n1664, n1665,
n1666, n1667, n1668, n1669, n1670, n1671, n1672, n1673, n1674, n1675,
n1676, n1677, n1678, n1679, n1680, n1681, n1682, n1683, n1684, n1685,
n1686, n1687, n1688, n1689, n1690, n1691, n1692, n1693, n1694, n1695,
n1696, n1697, n1698, n1699, n1700, n1701, n1702, n1703, n1704, n1705,
n1706, n1707, n1708, n1709, n1710, n1711, n1712, n1713, n1714, n1715,
n1716, n1717, n1718, n1719, n1720, n1721, n1722, n1723, n1724, n1725,
n1726, n1727, n1728, n1729, n1730, n1731, n1732, n1733, n1734, n1735,
n1736, n1737, n1738, n1739, n1740, n1741, n1742, n1743, n1744, n1745,
n1746, n1747, n1748, n1749, n1750, n1751, n1752, n1753, n1754, n1755,
n1756, n1757, n1758, n1759, n1760, n1761, n1762, n1763, n1764, n1765,
n1766, n1767, n1768, n1769, n1770, n1771, n1772, n1773, n1774, n1775,
n1776, n1777, n1778, n1779, n1780, n1781, n1782, n1783, n1784, n1785,
n1786, n1787, n1788, n1789, n1790, n1791, n1792, n1793, n1794, n1795,
n1796, n1797, n1798, n1799, n1800, n1801, n1802, n1803, n1804, n1805,
n1806, n1807, n1808, n1809, n1810, n1811, n1812, n1813, n1814, n1815,
n1816, n1817, n1818, n1819, n1820, n1821, n1822, n1823, n1824, n1825,
n1826, n1827, n1828, n1829, n1830, n1831, n1832, n1833, n1834, n1835,
n1836, n1837, n1838, n1839, n1840, n1841, n1842, n1843, n1844, n1845,
n1846, n1847, n1848, n1849, n1850, n1851, n1852, n1853, n1854, n1855,
n1856, n1857, n1858, n1859, n1860, n1861, n1862, n1863, n1864, n1865,
n1866, n1867, n1868, n1869, n1870, n1871, n1872, n1873, n1874, n1875,
n1876, n1877, n1878, n1879, n1880, n1881, n1882, n1883, n1884, n1885,
n1886, n1887, n1888, n1889, n1890, n1891, n1892, n1893, n1894, n1895,
n1896, n1897, n1898, n1899, n1900, n1901, n1902, n1903, n1904, n1905,
n1906, n1907, n1908, n1909;
assign scl_pad_o = 1'b0;
assign sda_pad_o = 1'b0;
i2c_master_byte_ctrl byte_controller ( .clk(wb_clk_i), .rst(wb_rst_i),
.nReset(arst_i), .ena(core_en), .clk_cnt({\prer[15] , \prer[14] ,
\prer[13] , \prer[12] , \prer[11] , \prer[10] , \prer[9] , \prer[8] ,
\prer[7] , \prer[6] , \prer[5] , \prer[4] , \prer[3] , \prer[2] ,
\prer[1] , \prer[0] }), .start(\cr[7] ), .stop(\cr[6] ), .read(rd),
.write(wr), .ack_in(\cr[3] ), .din({\txr[7] , \txr[6] , \txr[5] ,
\txr[4] , \txr[3] , \txr[2] , \txr[1] , \txr[0] }), .cmd_ack(done),
.ack_out(irxack), .dout({\rxr[7] , \rxr[6] , \rxr[5] , \rxr[4] ,
\rxr[3] , \rxr[2] , \rxr[1] , \rxr[0] }), .i2c_busy(i2c_busy), .scl_i(
scl_pad_i), .scl_oen(scl_padoen_o), .sda_i(sda_pad_i), .sda_oen(
sda_padoen_o) );
NAND2X2 U679 ( .A(n1660), .B(n1661), .Y(wb_dat_o[0]) );
NAND2X2 U680 ( .A(n1662), .B(n1663), .Y(wb_dat_o[1]) );
NAND2X2 U681 ( .A(n1664), .B(n1665), .Y(wb_dat_o[2]) );
NAND2X2 U682 ( .A(n1666), .B(n1667), .Y(wb_dat_o[3]) );
NAND2X2 U683 ( .A(n1668), .B(n1669), .Y(wb_dat_o[4]) );
NAND2X2 U684 ( .A(n1670), .B(n1671), .Y(wb_dat_o[5]) );
NAND2X2 U685 ( .A(n1672), .B(n1673), .Y(wb_dat_o[6]) );
NAND2X2 U686 ( .A(n1674), .B(n1675), .Y(wb_dat_o[7]) );
NAND2X2 U687 ( .A(n1676), .B(n1677), .Y(n1563) );
NAND2X2 U688 ( .A(n1678), .B(n1679), .Y(n1564) );
NAND2X2 U689 ( .A(n1680), .B(n1681), .Y(n1565) );
NAND2X2 U690 ( .A(n1682), .B(n1683), .Y(n1566) );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -