diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/architecture.md | 19 | ||||
-rw-r--r-- | docs/ppu.drawio | 2 |
2 files changed, 6 insertions, 15 deletions
diff --git a/docs/architecture.md b/docs/architecture.md index 9a77e57..dd34426 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -235,20 +235,11 @@ Important notes: ## Pipeline stage reference -This table describes which components use which lines during pipeline stages -1-5. The pipeline stages happen for every pixel, and is run on the system clock -(100 MHz). - -|Stage|Component|Action|To|Type| -|-|-|-|-|-| -|1|`ppu_sprite_bg`|write|BAM address|bus| -|2|`ppu_sprite_bg`|read|BAM data|bus| -|2|`ppu_sprite_fg`|write|TMM address|bus| -|3|`ppu_sprite_bg`|write|TMM address|bus| -|3|`ppu_sprite_fg`|read|TMM data|bus| -|4|`ppu_sprite_bg`|read|TMM data|bus| -|5|`ppu_pceg`|write|pixel done|flag| -|6|`ppu_pceg`|write|pixel ready|flag| +![Pipeline stage diagram](../assets/ppu-pipeline.svg) + +This diagram describes which components use which lines during pipeline stages +0-9. The pipeline stage counter is reset after every pixel, and is run on the +system clock (100 MHz). ## Registers diff --git a/docs/ppu.drawio b/docs/ppu.drawio index 7d4d400..52160c1 100644 --- a/docs/ppu.drawio +++ b/docs/ppu.drawio @@ -1 +1 @@ -<mxfile host="Electron" modified="2023-03-12T08:38:04.645Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.8.16 Chrome/106.0.5249.199 Electron/21.4.0 Safari/537.36" etag="52K4OrVv843H2dPzCX49" version="20.8.16" type="device" pages="4"><diagram name="level-1" id="DBE48RpXtx8JnoEt3ekA">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</diagram><diagram id="MdQQJuunD4ehtDpxKxax" name="level-2">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</diagram><diagram id="lj51MlK96fuJFRP7cw84" name="level-3">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</diagram><diagram id="1ySgP4OewCsUoPnmkRD4" name="display">7VhNc9owEP01zKSHdGwMDj3GQJNDmSFDkpKjsIWtIlseWWC7v74rW8YYy4RMPtrM9MJIT1pp973dRdCzxmF2w1EczJiHaa9veFnPmvT6/aFtw6cE8hKwBlcl4HPilZBZAwvyGyvQUOiWeDhpbBSMUUHiJuiyKMKuaGCIc5Y2t60Zbd4aIx+3gIWLaBv9STwRlOhoaNT4LSZ+UN1sGmolRNVmBSQB8lh6AFnTnjXmjIlyFGZjTCV3FS+l3feO1b1jHEfiHIMc3T49zCaLNLuZi4eZCB9v0GW/PGWH6FYFrJwVecWAz9k2VtswFzjT8Y5W1Xaj7Ze5jxayBLMQC57DlrTm07KUWXDAZb8iGSkN/b1tHSYMVKT6qKeDzdrYDl22/LYYJKPbu3v7ThO1g9yNDDTyZEwo2sGdfZuCJ86Kw8iXowt7YGSDkfGlxVFhieWVBuxLAyLwIkauXE2hLAALRAguTkwYShYJZNg1JX4E2IoJwUJYSMCERL7cJo9pE3lSwmNt2oRXq4rWvDk9lKOvk2PwXnKYGj2uZwBcwI1jDd1QSnHBLcpjRiQ7TrLBwg2UAGtC6UJtTxiVlztJ2VpsGBY2mE93QGyiRCmwIrCh0xtO1CFjRhkHMGIRGDscwykq1eU9nAkkDuYx5gQowdLExfKOeY04SYTiezYvHS4u9VASFFlzMi2QAihey0gpWmE6ZwkRhEmYlxLt7X8crYfE86SHB+l1efUe6XWQQNr8eYP00XpofkQP6+amu86OCs1uF5p5pSHKtN6t0FpMzecPADwSnMaMC03Lg1aQQeW/suVpaqmR+2fybXZI+IpWZ9o6Bd4iV/UKWC0JEpdjHP3vdv9Etzs/wz6g22kzqJ1A1w9LAJ5aeYM9eMmqKaYrlk5rwGmWL9R+wHwWAZ+MxUqiX1iIXL3I0VawZkkDjzxfSvuvw2r6pI4rJpOsMcvVrON5CJ6zLXfxqdpRlArEfSyeb3My/pMSckyRILvmS//tS77ddUvFln9NsYZetXwdihWewLgquVeJOPqUGo6ef2K86Puw0Qo1rTcRnG3wEdhJ+hnd6sQX4Mc+9Y3PzmTWyaT2V5P5ciZhWv8rUKwd/LViTf8A</diagram></mxfile>
\ No newline at end of file +<mxfile host="Electron" modified="2023-03-29T15:34:42.504Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.8.16 Chrome/106.0.5249.199 Electron/21.4.0 Safari/537.36" etag="y_Tz0g61eYKg321pPkIq" version="20.8.16" type="device" pages="5"><diagram name="level-1" id="DBE48RpXtx8JnoEt3ekA">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</diagram><diagram id="MdQQJuunD4ehtDpxKxax" name="level-2">7Vxbe6JIEP01eXQ+7uqjcXPZL8kkM0km+9pCi0wamm0aL/Prt5FGLk0QjChunJdIUdhQdapOdVHOhTp2lzcE+LMHbEF0oUjW8kL960JRZLk/YH8iySqW9BU1FtjEsbhSKnh2/kAulLg0dCwY5BQpxog6fl5oYs+DJs3JACF4kVebYpRf1Qc2FATPJkCi9M2x6CyWDnQpld9Cx54lK8sSP+OCRJkLghmw8CIjUq8u1DHBmMaf3OUYosh4iV3i664/OLu5MQI9WucCfTwdzm+1+Z/Hu/lKDxG5/X3fM/rx18wBCvkTBz5xKIwu9KaY3zpdJfaAFjMPP8SEzrCNPYCuUuklwaFnwWhRiR0F75CaM36QXnCPsc+EMhP+hpSuuONBSDETzaiL+NmN1dZfRgGho8irTOBhDyayawchrjOHhDrMfyPk2B6TuY5lre8r8IHpePYlphS77MSAyUQbcrMGOCQmrDCcloAREBvSCkWd4z0yXGYJ7qMbiF1IyYopEIgAdeZ53AEOX3ujt7n0CTvsplMVPJ0G7E4yEGAfMiukojUwGoCkrwsgeXl42AEazJl+dHaK4JK78WBwmSBsvpfgBXpWAVFMkjm/O0QSz2+FiCa1AhH2WGCVUfAjwAQlCOLJWk2SGk/V8qCQUJrpsw/xHRwcr0lsZvB6Ccx3ew21yHOVGS4PyMWMqT6z1BGdXTCOy+PtQ3REaQguK73Jzypa3ozJ4SJDN1w0yzBNIitzf86gTa1niNF+poRalFA33vV+zXjnCJG+cZd0mCLUPVHEkaFSxlAWCGbrO6oM+Cw8vpPV34rnuX0zZJBb6iG8s3p7R0e7bCDLzdhgi/5HbJBwST9/dU8ppLfYvPyqFihDxO81JrCjlCHrO1GG1hZlJM7LWM9GeALQ+kERC9HYdBZ7vJNLCZ8gBK1uAThoJeQPWnNpAgTG2PVx4FBMjh4wxRrrkBFD/u3rVjAEsvWo/lg++tri7r4nCyb5P8eBXjcO2tkrN6U+xSik1y3Up3xKvdi2KfLqsEo9T6s7BHMpOpUzOiu2lWd0ZrQHh0enuD/9dTOKPM12d1HJ8bWhO7z7cRO+fn8bTaX7y1er9/rLe+u1g1yxipfyaNClAn/GNypU8Y07VR+s82Gnqlr/iJ0qEcvU8SJT5CEt2dCDBHSxlNKkeqWU0drm42vVUoO6bKXvO+Y/5yVFQDqxJxvB2YOH8ODB89tA7MQ/je538HYX3xwdAgIdeTNUKDlVbQvfVut/uiysNGoWa5veE8L4PfQ7R56qUo88W+vcGcOvlHrrv5HVukWeQwHal6NTewG/fyKV6nqzGxt3tRD8xpYkWqneTg5Nck8GaKPXf04MaC3wdd1hn47ytbxtf1yt3w7WdPGV23Pylo25yILd2+vKxrHpWqxxfGcZj1wCCr4Ul/ePxuW7tW2LjdWmndWq1upBRz3EN33XJ1eMtMARJbVl1RzIkeE4bFSLVGo3He2Qa3aF90Y04oxz14imONBxdKLpG4LNziO/25OAcWKFolYI7G1DXlv02ykUDbGJ+OIg6LI4VCQXupjj/ZgBrBen30oCWFYOGsFiqXjuGdTvGRjdoGnNaMTT1eothae4j8tN2wNKiTMJ13Tb0WgtmQZrLVhLRxpEEwYmgdCLHjQaoXOwJxiNPSstxBEl+B2OMcIkjZ0pC5uCCPA5eJNZkBU/FQPyZa7IOwuBCUSpv5OVLDgFIaJ7qo6KEy/9En9JJf4qDhHvLbkmQMi+a3h6ZYKfUYqVJmHwOYwXHULxWgET5w/2KEjyoOUQaK7Bwb4EBjTjWxJbIfmJw8s6FUup4Ce3UuVPHuq7SJO2RpRa4iB1Hx6q2mWdHbTMO6SZf+R9TG1UTSRl/OPFNHpCoy8bGtmyS9PbMqIiGPELTMIdc8Ct2JQzWhpwK66jD5s1Cwv6zZuFJSN0w2/D7L/8esU8sfPPddhh+pP4WD39jwXUq/8A</diagram><diagram id="lj51MlK96fuJFRP7cw84" name="level-3">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</diagram><diagram id="1ySgP4OewCsUoPnmkRD4" name="display">7VhNc9owEP01zKSHdGwMhB5joMmhzJAhpOQobGGryF6PLLDdX9+VLccYG0ImH21meor0pNVq39tdK3SsUZDeCBL5U3Ap73QNN+1Y4063a/bMHv5RSFYgw8FVAXiCuXpTBczZb6pBQ6Nb5tK4tlECcMmiOuhAGFJH1jAiBCT1bWvgda8R8WgDmDuEN9GfzJW+jqJvVPgtZZ5fejYNvRKQcrMGYp+4kOxB1qRjjQSALEZBOqJckVfyUth9P7L6dDFBQ3mOQUZuHxfT8TxJb2ZyMZXBww257Ban7Ajf6oD1ZWVWMuAJ2EZNZ9r/jgpJ0zYpyKo8oYoW04RCQKXIcF9S8WlZmiR/j8tuSTLRGnpPtlWYONCRtkc96W3WxrbvwPLbvBcPb+/uB3ctUdvE2ahAQ1cFQMId+uwOON7EXgkceWp0MegZaW9ofGlwlFtS5dLAfYnPJJ1HxFGrCdYFYr4M8IpjE4eKMoYZds2ZFyK2AikhwIUYTVjoqW3qmCbnJyU8FKJJeLmqac3q0305um1y9N5LDrNFj+spAhfocdRCN5ZSlHNLsgiYYseON1Q6vhZgzTif6+0xcOXcjovWMsBhbkPFZIfExlqUHMsD69ud/lgfMgIOAsEQQjS2BcVTdF4rPwIkkXvziAqGlFBl4lDlY1YhdhyS6B5mxYVzpy6J/TxrTqYF0QCnaxUpJyvKZxAzyUDBopDoyf7HwXrAXFfdcC+9Lq/eI732Eqg1f94gfVpvaDay59we9qKAz29spdVBoQ2ahWZetRBlWu9WaA2mZrMFAg+MJhEI2dLysBWkWPmvbHkttVTL/TOlOfbNeUWrMwdtCrxFrrYrYDUkiB1Bafi/2/0T3e78DPuAbteaQc0Eul4sEXhs5A118SWrp5SvIJlUgF0vX6x9HzwIkU+ASEv0i0qZ6Rc52UqolzTyKLKlsv/aL6eP+rh8Mk5rs0zPjr4kY9gKh56qHU2pJMKj8vk2p+I/KaGgnEi2q7/0377km123UGz51xSr6VXJd0Sx/CY4LkvuVSIOP6WGw+efGC/6HtZaYUvrjaWADT0Aj5J+Rrc68QH82Ke+8dmZTI8y2fpfk/lyJnFa/SqQr+39tmJN/gA=</diagram><diagram id="xwm_nTvbWLU7bshfNvv3" name="pipeline">7Vxbc6M2FP41fswMl9jAY+ykSaeTbqbuzq6fMjLIQIMRI+QY768vMgIDR06TDRZb7JeMOIAkvk/nKjkjc7bO7ilKgkfi4WhkaF42Mm9HhuFY4/wvF+wKwdixC4FPQ68Q6QfBPPyBhVAT0k3o4bTxICMkYmHSFLokjrHLGjJEKdk2H1uRqDlqgnwMBHMXRVD6LfRYUEjtsXaQP+DQD8qRdU3cWaPyYSFIA+SRbU1k3o3MGSWEFa11NsMRx67EpXjvtyN3q4lRHLP3vBB/mz371CTzdDd7sJ2HH4G7uDKKXl5RtBEfLCbLdiUCOPZuOJD5VUziXDj1UBpg3queXwRsHYkmJZvY29/Q8iuSIDdknPYxv4TTFV+AvQYDYvL3mKwxo7v8ge0B9xL2oAZ5KaM4Qix8bfKGBP1+1V01whMJ85kYmlipui36EQtVL/stu0jJhrpYvFXH+VhH5YsMUR8z8GLeqH3mQbSn7QMUmhcKBfLGpCMKq44UUXh9oVAgb153RGHVkSIKxxcKBfLXRkcUVh0ponByoTAru+mIwqojRRRaFwpL5LsKZ8aKwxn7QqFAftJVODNRHM44FwoF8lZX4YylOJwpP/VjHB6l7VfnydH0Bk/tyOPduV/LcSqOYAwYwiTJ5jlNaMjw89IHFDKcsSZvKaPkBc9IROiB11UYRS0RikI/zi9pwcX0FVMWuii6EfJ16Hl8lOk2yMee52rLh9xSlIDFkXKdjv2/BKvGW+uFD4OzN1eMgN4U0NcWUMVOfQWZ2vHF0uDno2SUFawaGdoJCHBziDD9HAOfgbu98mt42xK42xrRHdwGgFsfMNx233DDshP0EIOBuyoI9QY3LBGZw4W7Kt70Bjcs51wPF+6q0NIb3DBuGQ8X7nHvrhKWSSYDhrt3VwlLGtZw4Z707SoNCPf05pGP5HkUpymAPg1QwpsBzpBPcsSmCaZhPhmOZil9KkXGESBrzK3CDJdb2XsmRVMTBM7F2GjDCMyGym3i/dMkZuXT112GjW8kSROVSZIJk6Raxro6q4zV6jtjNWEK9ffjRXOkmiMjS63mwIzAjV7OQl/+S0FO5lpM6Fq4tUpcfFaGStd7t1RwiyHJTcf+5BkHsV9D1bHpAZsIEvhlEVYX6O+W1p/W/SKZLbZfXlbudrL65+sV3Bso3ISHGOoX+hOgLQmRlIL9a/vkjpd6++CByvhUij6scpZ2hmLk7YaFvt0+uaPQ0MhTOZgdAMQHtAvZ3j38+SOopzt2o+nf083i9vfvcRYvrpzZH/Z8KXEI76BpkBv+QIV+lkL7dFvHUgqhmzlXCp2utNBRrIXQV9mAw8GUGS2FW0RStGH67QwXbbvvHSIDJnxFUXcQOUf7yLTCnEOeXkNTMqAMr422pJR3KrSllgRufoZctXuF+eCzLa3t6LlV+9K83wEr7eBXoQ7IY1p4BCCMk03uuScRN+pLmrd8trfpaBlGHI0zp0xlvhg4MY5u7/wlTZ5Sd5Xt5l/vJHnI/1STAAcSpt5Ni0L7JmUFphbnyEr7l20K7ZuUFejiL6z0ryswqzhHVtq/fOlbVyShwBmy0i7O960rg4mbP8VKu+J4Ol3JLw//raIoWh3+5Yd59y8=</diagram></mxfile>
\ No newline at end of file |