Hardware Design Tools

Python Scripting Language

It's an invaluable tool to have, I use it to automate testing, process files, automate simulators, etc.


A free, Open-Source 2.5D BEM EM Modeling Tool, highly recommended.


My favorite free SPICE implementation for Windows (provided by Linear Tech.)

Spice Opus

Another free text based Berkeley Spice Simulator for Windows.

Scite Text Editor for Windows

A free high-quality Text Editor for Windows (Linux, OS X versions are also available).

Tera Term Pro

A free replacement for the HyperTerm.

Simple Thermal Analysis Tool

Can be used to run a quick and dirty thermal analysis during the initial system design stage.

Design File Version Control

Can be used to make incremental backups of design files during development.

Signal Integrity Mailing List

The archives are a treasure trove of information related to hardware design. I recommend subscribing as well as browsing the archive. All the cool SI kids are on it (like most of the guys that wrote the SI text books).

Specs / Manuals

I/O Buffer Information Specification

LVDS Owner's Manual: by National Semiconductor

Spice 3 User's Manual: by University of Exeter

USB 2.0 Specification

DDR2 Specification

DVI Specification

Ethernet Specification

JTAG Specification

Articles on Hardware Design

A Collection of Very Interesting Technical Tidbits: by Doug Smith

An great collection of technical information on Hardware Design. Some articles, some podcasts, and a few videos. Lots of hands-on demos. Very clear and easy to follow.

A Collection of Interesting Articles: by Istvan Novak

An incredible collection of articles describing ideas and analysis on the cutting edge of High Speed Design. My personal favorites are the articles on using lossy bypass caps -- the basic idea is that if using big-V decoupling you don't really need an ESR as low as it is, i.e. the bottom of the V is really way lower than required, so why not have a higher ESR which will lower the anti-resonance peaks where your big-V network crosses with the power plane capacitance.

A Black-Box Frequency Dependent Model of Capacitors for Frequency Domain Simulations: by Istvan Novak

The most comprehensive article on Bypass Capacitor Modeling that I've found.

Effective Power / Ground Plane Decoupling for PCB: by Dr. Bruce Archambeault

This is one of my favorite articles (actually slides from a presentation) on bypass capacitors and Power Distribution System Design.

Minimize EMI Emissions with Optimum Termination Strategy: by Bruce Archambeault

Most designs these days have stringent EMI requirements, this article presents some very interesting ideas on the subject.

Power Supply Design for PowerPC Processors: by Gary Milliorn

A very good app note from Freescale. It is applicable to all power distribution system design, not just PowerPCs.

Decoupling: by Henry Ott

Explores some of the realistic limitations of bypass capacitors, but unfortunately fails to discuss on-die capacitance. Do we really need PCB level decoupling at 1GHz when we have > 50pF on die capacitance and 1nH lead inductance?

Parasitic Inductance of Bypass Capacitor II: by Howard Johnson

One of the first articles I read on bypass capacitors, motivated me to buy Dr. Johnson's book.

Modeling and Simulation of Planes in Electronic Packages: by Nanju Na

This is an excellent PH.d. Thesis. The introduction has a some great info on what PCB level decoupling capacitors do.

(For Your) Protection: by Howard Johnson

A great article on what happens when ESD protection diodes conduct current, yet another reason why over-shoot and under-shoot are bad.

PCB Stack-Up; Parts 1, 2, 3, 4, 5, and 6: by Henry Ott

A good article on the trade-offs when designing a stack-up.

Everything You Know is Wrong - Part XIX: by Tony Kordyban

This is a great article on how to perform a quick and dirty thermal analysis in the preliminary stages of a design.

Articles on Software Design

Object-Oriented Programming in C: by Paul Field

Some interesting ideas here.

Writing Bug Free Code

A very well written multi-part article on techniques that can be used to reduce the number of bugs in code.

Optimizing Embedded Linux

Some interesting ideas on how to optimize Linux to run on an embedded system.

Embedded Software Related


The world's greatest C library, designed specifically for space contained embedded systems.


An almost complete automated package for building an embedded Linux system based on uclibc. This is very cool. Just add a kernel and stir.