[sci.electronics] game arbitrator

touch@dsl.cis.upenn.edu (Joe Touch) (12/16/90)

RS-latches?  JK-flip flops?  A whole C-64?  Geez, folks, talk about
doing things the hard way!!

Here's a way thats SIMPLE, CHEAP, AND *SCALABLE* (easy to extend to an
arbitrary number of inputs, if you balance the OR into balanced trees)

It also has the advantage of a 3-gate propagation delay for latch, so
it will lock out ties unless they come within 3 gate times of each
other (about 25 ns for TTL).  That is a smaller 'false tie' window
than RS/JK solutions will give! I'm not sure if debouncing is
required at the inputs - if they are stable for the setup time of 
the feedback loop (i.e. if a bouncy switch still outputs at least
a pulse of 25ns), debouncing can be avoided.

                              +-----+
     in1    ------------------| D-  |--------+-------- out 1
     in2    ------------------|latch|--------|-+------ out 2
     in3    ------------------|     |--------|-|-+---- out 3
     in4    ------------------|     |--------|-|-|-+-- out 4
                              +--^--+        | | | |
                                 |           | | | |
                               +-+---+     +-+-+-+-+-+
                               | AND |     |   OR    |
                               +-+-+-+     +----+----+
                                 | |            |
 reset-bar ----------------------+ +------------+

When reset-bar is low (reset) the clock of the D latch is LOW,
passing all data through. When reset-bar is high, all data passes 
through.

If any input goes high, the OR goes high, the latch gets locked,
and a feedback loop exists, locking the outputs.

Any number of D-latches can be used, provided that the OR tree is
balanced, it will be fair.

Occam's Razor lives - look for the simple solution.

Joe Touch
PhD Candidate
Dept of Computer and Information Science
Univ of Pennsylvania

fritz@mit-caf.MIT.EDU (Frederick Herrmann) (12/16/90)

In article <34827@netnews.upenn.edu> touch@dsl.cis.upenn.edu (Joe Touch) writes:
>
>
>RS-latches?  JK-flip flops?  A whole C-64?  Geez, folks, talk about
>doing things the hard way!!
>
>Here's a way thats SIMPLE, CHEAP, AND *SCALABLE* (easy to extend to an
>arbitrary number of inputs, if you balance the OR into balanced trees)
>
>		< nifty circuit deleted >
>
>Any number of D-latches can be used, provided that the OR tree is
>balanced, it will be fair.

I like your solution, but in case anyone tries to build it from your
description I'll point out that a transparent latch (e.g. 74x373) is
required.  A standard edge-triggered D-latch won't do the job.

Terminology does not seem to be that standardized.  I usually think of
a D-latch as edge triggered, but I checked a few data books on my
shelf and found that while most call the '373 a transparent latch, the
2nd edition TI TTL Data Book calls it an "Octal D-type Transparent Latch"

I've also seen transparent latches referred to as T-latches.

Hmmm... If you took the OR inputs from the input side of the latch you
could use an edge-triggered latch, but you'd need an extra feedback
term to keep late responders from retriggering it, and some way to
reset the whole thing.  The transparent solution is nicer, but if no
T-latch were available (as in many PALs), I'm sure an edge-triggered
solution could be found.

>Joe Touch
>PhD Candidate
>Dept of Computer and Information Science
>Univ of Pennsylvania

				- Frederick P. Herrmann
				  fritz@caf.mit.edu

bhoughto@cmdnfs.intel.com (Blair P. Houghton) (12/17/90)

Here's a simple method we used in college when
playing along with Jeopardy on the TV:

	=========--------     --------=========		<--- silver cap
	+-------+        \   /	      +-------+
	|	|	  \ /         |       |		<--- bakelite button
	+--+ +--+	   X          +--+ +--+
	   | |		  / \            | |
	   | |		 /   \           | |
          -----         /     \         -----		<--- copper contact
	               /       \
 A <<-----o   o--------         --------o   o----->> B	<--- 208v 3-phase

Have the contestants stand in pools of weak electrolyte
solution into which dangle cables connected to phase C of
the 208v supply.  The quicker contestant will make the
contact first, connecting his opponent's button to one of
the other phases.  If the opponent doesn't shy away
instantly, his screams and jumping will tell you who won.
This eliminates the need for any Sonalert(TM) or other
buzzer-type devices.

It also comes in handy for babysitting, thesis defenses,
and exams in "weeder" courses.

				--Blair
				  "We also have a nifty defibrillator design
				   we developed in the same program..."

Kollege Hint:  dormitory common-area kitchens with electric ranges
will have a 208v 3-phase outlet behind the stove.  If yours is gas,
try the laundry room!  The dryers should have them.  Happy answers!

tuv@pmafire.inel.gov (Mark Tovey) (12/19/90)

touch@dsl.cis.upenn.edu (Joe Touch) writes:
>
>
>RS-latches?  JK-flip flops?  A whole C-64?  Geez, folks, talk about
>doing things the hard way!!
>
>Here's a way thats SIMPLE, CHEAP, AND *SCALABLE* (easy to extend to an
>arbitrary number of inputs, if you balance the OR into balanced trees)
>
    Talk about deja-vu! About 20 years ago when I was still in high, I
was posed with this same problem by one of the teachers there. One of
the local radio stations had a program called Scholastic Tournament in
which students from various high schools competed. The teacher at my
high school wanted an arbitrator built so that the students on our
team could practice.

    Not having much design experience, I asked my father for help (he
was an engineer at the radio station at that time). He came up with a
circuit that used Silicon Controlled Rectifiers (SCRs) and a
transistor.  It has been a long time and I can't remember many
details, but I can at least describe how it worked. Any EE worth the
cost of the paper his degree is printed on should be able to figure
out the fine details of the circuit (I'm a programmer now and my
design skills still aren't up to much).

    The system consisted of a lamp for each person with an SCR connected
in series with it. The cathods of all of the SCRs were tied to ground 
and the side of the lamps not tied to the SCRs were connected together.
This lamp common was then tied to a low value resistor which was then
connected to B+.

    At this point things get real hazy. The transistor circuit was
used to supply the gate current for the SCRs. It was set up so that if
one of the lamps was turned on, the voltage drop across the resistor
in series with the lamps would reverse bias the transistor and turn it
off.  Since the transistor was the source of the gate current for the
SCRs, turning it off would prevent any other SCRs from being
triggered.

    Resetting was accomplished by putting a switch in series with the
lamp common. Opening this circuit would turn off the SCR that had been
turned on and thus turn the transistor back on, allowing another SCR
to be triggered.

    The circuit was very simple and very cheap. Once the transistor
circuit was constructed, adding additional players consisted of merly
adding another SCR, lamp, switch, and what resistors were required for
that portion of the circuit. And try as we might, we could never get a
tie. The switching action was fast enough that there never could be a
race condition.

    Eventually the radio station hired me to build one for them as
well. For them I also added sound effects. This consisted of two
different sonalerts connected to the lamps through diode OR circuits.
I connected half of the lamps to one sonalert and the other half to
the other sonalert. This allowed a listener at home to be able to
determine which team was first.

    Probably the nicest feeling I had occured a short while back. I
was searching across the radio dial for something to listen to and I
chanced upon the same radio station broadcasting the same tournament.
When a player pressed a button, I could distinctly identify my old
arbitrator, still at work twenty years later.