ASIC engineers design their ASICs with varying levels of understanding to the impact of the design on the firmware writer who has yet to write the code to set up and control the ASIC. Months later when the firmware writer has an ASIC and is ready to start coding, the ASIC designer has basically forgotten the ASIC and is on to the next project.

Discussed here are tips and techniques that can be used across several areas of ASIC design that will help make the firmware writer’s job easier when that time arrives. First, Assumptions and Definitions are mentioned to establish the context of the paper. The paper will then go over the several areas of ASIC design, such as Firmware Involvement, Documentation, Register Layout, Interrupts, and Errors.