[comp.lsi] Circuit problem

mark@mips.COM (Mark G. Johnson) (02/08/89)

There is a really cute circuit, actually used in a commercial memory chip,
that's amusing and instructive.  It's a cool example of less-is-more:

	Given a rather idealized CMOS process (pretend there are no
	short channel effects, no body effect, no breakdown voltage,
	ruler-flat saturation curves, the VT's are a constant 1.00
	volts independent of device size and bias point, P's are
	exactly half as conductive as N's, no leakages, etc.)

	Given two analog input voltages Va and Vb.  These are dc voltage
	sources so transient response is not critical.

	Given that Va >= (2 * Vb)   and given that Va and Vb are both bigger
	than VT {1.0 volt} and are both less than or equal to 5.0 volts.

	Design a circuit that provides an output voltage equal to (Va - Vb).
	Your circuit must operate from a single +5.0 volt power supply.

	{The seemingly weird guarantees on the input voltages actually
	 simplify the problem; note that the output voltage is always
	 positive, and the output voltage is bigger than VT, and in
	 fact (Va - Vb) >= Vb    (if that matters) }

Your "score" on the problem is   exp(5 - (# of transistors in your circuit)).
Hint: the best score seen thus far is greater than 1.
============================================================================

Problem 2:	Solve the same problem above, except the technology is
		idealized NMOS, with an enhancement VT of 1.00 volts
		and a depletion VT of -3.00 volts.
-- 
 -- Mark Johnson	
 	MIPS Computer Systems, 930 E. Arques, Sunnyvale, CA 94086
	...!decwrl!mips!mark	(408) 991-0208

paulc@hpgrla.HP.COM (@Paul Charlton) (02/09/89)

	this circuit answers both CMOS and nMOS specific
	implementations, as it uses only 2 nMOS transistors.

	Score = exp( 5 - (2) ) = 20.09

	here goes:

	5v power rail   -----------------
					|
				      ---
				      |
	Input Va    ------------------|	T1
				      |
				      ---
					|
					|--------------	Output Vout
					|
				      ---
				      |
	Input Vb    ------------------|	T2
				      |
				      ---
					|
					|
				       GND

	Since Ids1 = Ids2 (no output current...), and both T1 and T2
	are saturated, Vgs1 = Vgs2 = Vb,

	from which Vout = Va - Vgs1 = Va - Vb

	In implementations, you'd have to make sure that the power
	consumption was tolerable (ie: small W/L ratio...), since
	you have power = Isat * 5v.

 	Paul Charlton

	{ paulc@hpgrai.hp.com } | { hplabs!hpgrai!paulc }