I firmly believe that designing custom silicon is currently needlessly difficult. I’m also an unabashed supporter of auditable, privacy-respecting silicon.

Lastly, I’m just another programmer with a fancy camera working for a startup. The date on a page is when it was first written, not when it was last edited. Find my archived content here

Fair and Safe Elections: A Mathematical and Computational Approach


Beginning Remarks In light of what I know about the current state of computer processor backdoors and the lack of auditable silicon, I'd trust modern electronic voting systems about as far as I can throw them. In this article I claim that by: making electronic voting machines 100% auditable down to the silicon providing temporal anonymity with one way trapdoor functions that map from real ID to a public alias using a public commit/block vote chains tagged by voter public alias we can provide a free and safe election of unprecedented trustworthiness, exceeding the trustworthiness of previous paper ballot schemes, and certainly previous electronic schemes, largely because of the fact that nearly the entire process is now auditable and accountable to the ones who would be affected by it most, the people.…
Read more ⟶

A New RTL Called Polished


As aforementioned, I’m creating a new RTL called Polished. It’s called Polished because it will provide a polished digital logic design experience from start to finish. Polished will emit verilog, but through RTLIL+Yosys, Polished should be able to skip Verilog entirely and emit gate-level netlists, good for place-and-routing. Polished RTL is part of a larger ecosystem that includes: Polished - the RTL Wax - auxiliary libraries for the Polished RTL including things such as Asynchronous Fifos, pipelined multipliers, floating point units, AXI buses, caches, and mesh networks.…
Read more ⟶

Multiplying Large Numbers


Recently, I mentioned that I’m working on a new RTL called Polished. Polished will have a built in simulator backend that aims to be very fast. Since wires in a netlist can have any length, the backend must be able to handle any arithmetic operation between two wires. The final implementation that will end up going into Polished will be different from the toy example present below in the following ways:…
Read more ⟶

On The State of Digital Logic Design


Imagine if everytime you wanted to deploy the most basic of websites you had to: hire a computer building expert to build a custom PC hire an expert in networking to get your PC online hire an expert in installing Linux onto the PC hire an expert in install Python hire an expert in installing Flask hire an expert in writing integrating flask, with your HTML templates with your javascript client side scripts That would be utter insanity.…
Read more ⟶