A heterojunction is a semiconductor junction which is composed of layers of dissimilar semiconductor material, these materials having non-equal band gaps. In such a structure, the implementable diode characteristics can closely approach those of an idealized diode. Furthermore, the diode model parameters that define the diode current vs. voltage response can be tuned by adjusting the thicknesses and band gaps of the layers.