Richard's Controller

Richard's Controller

The Richard’s Controller is a method of implementing a finite state machine using simple integrated circuits and combinational logic. The method has been named after its inventor, Charles L. Richards. One of the distinct advantages of this method over conventional finite state machine design methods is that it allows for easier design of complex finite state machines than the traditional techniques of state diagrams, state transition tables and Boolean algebra offer. Using Richard’s technique it becomes relatively easy to implement machines with many hundreds or even thousands of states.

History

The Richard’s Controller was made because of the need for an easier method of designing finite state machines than using the traditional method of state diagrams, state transition tables, and logic minimization. At the time many of the computer based logic minimization tools that we have today did not exist. Hence logic minimization was for the most part limited to the use of Karnaugh Maps and DeMorgan's Law. Because of this Charles L. Richards invented a method of implementing a finite state machine that did not need an explicit state transition table. He published his findings in the February 1973 issue of Electronics. His generalized implementation became popular and by the 1980’s was considered a classic design method. While it is unlikely that commercial products found today contain a classic Richard’s Controller, (since there are faster designs now than ones that use loadable counters,) there is a good chance of a modified Richard’s Controller or a design derived from the Richard’s Controller being usedFact|date=April 2008.

Applications

Because of the Richard’s Controller’s ability to scale to use many states easily, it can be used in many practical applications.

The Richards Flowchart

The Richard’s controller is a Mealy machine since its output is dependent on both the current state and the input. However Richards designed his own method of representing states using a flowchart diagram, instead of the state diagram. Each state is represented as a transfer condition on the flowchart. Each condition has two control paths leading out of it, a YES or a NO. The condition is YES or NO (TRUE or FALSE) based upon a single bit input to the machine. (Richards 108) Depending on what the input for a condition is, one of the two transfer functions associated with that condition will be executed. The machine considers executing a function to be setting the output of a single pin on the device, this can be used to trigger combinational logic. After a transfer function is executed, the machine will enter a new state, each transfer function will either implicitly or explicitly define a new state to transition to. An implicit state definition could also be called the default, since it will occur without any additional circuitry from the designer, if the condition is YES then it will transition to the next state numerically. For example if you are at state 0 and a YES occurs then you will transition to state 1. If the condition is NO, then the machine will remain at its current state. Using this behavior it is possible to create a machine with a simple sequential flowchart.Of course a sequential machine is usually not very useful, thankfully there is a way to transition to states out of order, using a so called jump. In order to implement a jump, additional hardware is required in order to select the destination state, which depends on what function is being executed.

Kernel of the Controller

The Richards Controller’s core kernel can be boiled down into four parts, a counter, a multiplexer, and two decoders. A simple controller can be built using the classic 7400 series of TTL logic integrated circuits. The counter used is the 74163, the multiplexer is the 74151 and the two decoders are the 7442 part. (Richards 108) The output from the counter selects what bit from the multiplexer input should be sent to the output Y, (the inverse of which is sent to the output WN.) If Y is high, then the counter is allowed to increment, otherwise it is not. Likewise, Y must be high in order to enable YES function outputs since the D input on the decoder is connected to WN, while it must be low to enable the NO function outputs, since the D input on that decoder is set to Y. In order to perform a jump, you must set the LDN bit on the counter, and the A, B, C and D inputs. LDN tells the counter to load the value on the A, B, C and D inputs. Using some combinational logic, you can load a value into the counter for certain functions but not others, as well as specifying the state address to be loaded, given what function is active. Doing this is a simple matter of building a table of functions and the states that they should transition to, then finding the Boolean Algebra expression for each bit that makes up the address of the state to be jumped to.

References

Richards, Charles. “An easy way to design complex program controllers.” Electronics 1 February 1973: 107-113.

Wakerly, John F. Digital Design – 3rd Edition. Upper Saddle River, NJ: Prentice-Hall Inc. 2001.


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Richard III of England — This article is about the English king. For other uses, see Richard III (disambiguation). Richard III The earliest surviving portrait of Richard (c. 1520, after a lost original), formerly belonging to the Paston family (Society of Antiquaries,… …   Wikipedia

  • Richard Lainhart — ist ein US amerikanischer Komponist, Musiker und Filmemacher. Lainhart studierte Komposition an der State University of New York bei Joel Chadabe, einem Pionier der elektroakustischen Musik. Als Komponist avantgardistischer elektronischer Musik… …   Deutsch Wikipedia

  • Controller (album) — Controller Studio album by Misery Signals Released July 22, 2008 …   Wikipedia

  • Richard Z. Kruspe — Richard Zven Kruspe Kruspe in 2010 Background information Birth name Richard Zven Kruspe Also known as …   Wikipedia

  • Richard bull (acteur) — Pour les articles homonymes, voir Richard Bull. Richard Bull Richard Bull Naissance …   Wikipédia en Français

  • Richard D. Titus — is a musician and entrepreneur and movie producer. He was born on March 23, 1968 in Anaheim to Richard G. Titus, an executive at defense contractor Rockwell International and Susan Titus Osborn, a conservative Christian author.His career began as …   Wikipedia

  • Richard Klein — is the name of: Richard Klein (astronomer), American professor Richard Klein (artist) (1890–1967), German artist active during the Nazi era Richard Klein (paleoanthropologist) (born 1941), American professor Richard Klein (TV), controller of BBC… …   Wikipedia

  • Richard Park (broadcaster) — Richard Park (Born on 10th March 1948 in Kirkcaldy, Fife) is a Media Consultant and broadcaster in the UK. He is best known for his appearances as the Headmaster of BBC TV s Fame Academy programmes.Professional careerVoted most influential person …   Wikipedia

  • Richard Francis Lyon — (born 1952), is an American inventor,scientist, and engineer, noted for having invented the optical mouse.He has worked in many aspects of signal processing and was a co founder of Foveon Inc.,a digital camera and image sensor company.LifeLyon… …   Wikipedia

  • Richard E. Lawyer — Richard Earl Lawyer USAF Astronaut Nationality American Born November 8, 1932(1932 11 08) Los Angeles, California …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”