Files
website-build/project-etc-nand.typ.desktop.html
2025-08-29 15:47:42 +02:00

1 line
7.1 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html><title>etc-nand</title><meta charset=utf-8><meta content="width=device-width,initial-scale=1" name=viewport><link href=res/favicon.png rel=icon sizes=512x512><link href=res/favicon.png rel=image_src type=image/png><link title="alexs168's blog" href=atom.xml rel=alternate type=application/atom+xml><body><style>@font-face{font-family:DejaVu Sans Mono;src:local(DejaVu Sans Mono),url(res/DejaVuSansMono.woff2)format("woff2"),local(Courier New),local(Courier),local(monospace);font-weight:400;font-style:normal;font-display:swap}body{font-family:DejaVu Sans Mono;font-size:17pt}td{vertical-align:top;width:100%;display:inline}h1,h2,h3,h4{margin-top:1%;margin-bottom:.75%;margin-left:-.75%}p{margin-top:.75%;margin-bottom:.75%}ul{margin-top:0%}.current{font-weight:700}pre{margin-top:0;margin-bottom:0;display:inline}a,a:visited{color:#3f51b5;text-decoration:none}</style><table><tr><td><span class=sidebar><span class=column-fixed style=justify-content:center;width:25%;display:inline-flex;position:fixed><table><tr><td><span class=table-of-contents><div style="border:1.2pt solid #000;border-radius:2pt;padding:3%"><p><span style=text-decoration:underline>Table of contents</span><br><p style=line-height:1.1><span style=text-indent:0;display:flex><span style=margin-right:11pt>├─</span> <span style=flex:1><span class=headingr id=headingr-0><a href=#loc-1>Overview</a></span></span></span><p style=line-height:1.1><span style=text-indent:0;display:flex><span style=margin-right:11pt>|  ├─</span> <span style=flex:1><span class=headingr id=headingr-1><a href=#loc-2>Estimates</a></span></span></span><p style=line-height:1.1><span style=text-indent:0;display:flex><span style=margin-right:11pt>|  └─</span> <span style=flex:1><span class=headingr id=headingr-2><a href=#loc-3>Planned Specifications</a></span></span></span><p style=line-height:1.1><span style=text-indent:0;display:flex><span style=margin-right:11pt>├─</span> <span style=flex:1><span class=headingr id=headingr-3><a href=#loc-4>Purchase</a></span></span></span><p style=line-height:1.1><span style=text-indent:0;display:flex><span style=margin-right:11pt>└─</span> <span style=flex:1><span class=headingr id=headingr-4><a href=#loc-5>Images</a></span></span></span><p style=line-height:1.1><span style=text-indent:0;display:flex><span style=margin-right:11pt>   ├─</span> <span style=flex:1><span class=headingr id=headingr-5><a href=#loc-6>16 bit register</a></span></span></span><p style=line-height:1.1><span style=text-indent:0;display:flex><span style=margin-right:11pt>   ├─</span> <span style=flex:1><span class=headingr id=headingr-6><a href=#loc-7>8 bit ALU slice</a></span></span></span><p style=line-height:1.1><span style=text-indent:0;display:flex><span style=margin-right:11pt>   └─</span> <span style=flex:1><span class=headingr id=headingr-7><a href=#add8>8 bit adder</a></span></span></span></div></span><span class=table-of-contents><script>document.addEventListener(`DOMContentLoaded`,(()=>{let a=[`h2`,`h3`,`h4`].flatMap(a=>Array.from(document.getElementsByTagName(a))).sort((a,b)=>a.getBoundingClientRect().top- b.getBoundingClientRect().top);let b=document.documentElement.scrollHeight- window.innerHeight;document.addEventListener(`scroll`,c=>{let d=-(document.documentElement.getBoundingClientRect().y/b);let e=d*window.innerHeight;let f=a.map(a=>0>a.getBoundingClientRect().top- e).lastIndexOf(!0);Array.from(document.getElementsByClassName(`headingr`)).map(a=>a.classList.remove(`current`));f!=-1&&document.getElementById(`headingr-`+ f).classList.add(`current`)})}))</script><style>.table-of-contents>p>span{width:100%}</style></span><tr><td><br> <a href=index.html><b>Website Home</b></a> <br><tr><td><p>Renderings of this page:<ul><li><a onclick='gotoVariant(".min.pdf");' href=#>minimal PDF (printable)</a><li><a onclick='gotoVariant(".nano.html");' href=#>minimal HTML</a></ul><tr><td><a href=atom.xml>Atom feed</a> <br><tr><td><style>@media only screen and (width<=1200px){.sidebar{display:none!important}.column-fixed{width:0%!important}.body-column{left:3%!important}}@media only screen and (width<=1800px){.body-column>span{width:75%!important}}@media only screen and (width<=1200px){.body-column{width:97%!important}.body-column>span{width:100%!important}}.hide{background:#000;transition:background .3s linear;display:inline}.hide:hover,.hide:focus{background:0 0}</style></table><style>.column-fixed>table>tbody>tr>td>*{width:100%}</style></span></span><td><span class=body-column style=width:72%;position:absolute;left:28%><span style=width:50%;display:inline-block><div><p><br><h1>etc-nand</h1></div><div><br>You can click the PCB images to switch to the other side.</div><div><p><br><span id=loc-1 style=text-decoration:underline><h2>Overview</h2></span><p>etc-nand is a real-world <a href=https://github.com/ETC-A/etca-spec/>ETC.A</a> CPU built from almost only quad NAND gate ICs (74hc00)<p>It will probably be finished in a few months.</div><div><p><br><span id=loc-2 style=text-decoration:underline><h3>Estimates</h3></span><p>Estimated gate count:<ul><li>2800 NAND gates<li>320 tristate buffers</ul><p><br> Estimated component counts:<ul><li>700x 74hc00 quad NAND gates<li>40x 74HC54 octal tristate buffers<li>a few simple resistors</ul></div><div><p><br><span id=loc-3 style=text-decoration:underline><h3>Planned Specifications</h3></span> ETC.A base instruction set + byte operations + S&F + Von Neumann<p>The CPU will communicate with peripherals over a 16 bit data + 15 bit address memory bus</div><div><p><br><span id=loc-4 style=text-decoration:underline><h2>Purchase</h2></span> You will be able to purchase one in the future.<p>Stay tuned!</div><div><br><span id=loc-5 style=text-decoration:underline><h2>Images</h2></span> Images of PCBs that are either already manifactured or currently beeing manifactured by JLCPCB.</div><div><p><br><span id=loc-6 style=text-decoration:underline><h3>16 bit register</h3></span></p><img tite="Click Me!" data-other=res/etc-nand/reg16_back.png draggable=false onclick=swapFrontBack(this); src=res/etc-nand/reg16_front.png style=cursor:pointer;width:80%><script>var swapFrontBack=(a=>{let b=a.src;a.src=a.dataset.other;a.dataset.other=b})</script></div><div><p><br><span id=loc-7 style=text-decoration:underline><h3>8 bit ALU slice</h3></span> A <a href=#add8>8 bit adder module</a> will be placed in the middle</p><img tite="Click Me!" data-other=res/etc-nand/alu8_back.png draggable=false onclick=swapFrontBack(this); src=res/etc-nand/alu8_front.png style=cursor:pointer;width:80%><script>var swapFrontBack=(a=>{let b=a.src;a.src=a.dataset.other;a.dataset.other=b})</script></div><div><p><br><span id=add8 style=text-decoration:underline><h3>8 bit adder</h3></span></p><img tite="Click Me!" data-other=res/etc-nand/add8_back.png draggable=false onclick=swapFrontBack(this); src=res/etc-nand/add8_front.png style=cursor:pointer;width:80%><script>var swapFrontBack=(a=>{let b=a.src;a.src=a.dataset.other;a.dataset.other=b})</script></div></span></span><td></table><script>var gotoVariant=(a=>{window.location.href=window.location.href.replace(/\.\w+.html/g,a)});window.addEventListener(`beforeprint`,a=>{gotoVariant(`.min.pdf`)})</script><script async src=coffee.js></script>