Richards kontrollant

Richards styrenhet är en metod för att implementera en finita tillståndsmaskin med enkla integrerade kretsar och kombinationslogik . Metoden fick sitt namn efter dess uppfinnare, Charles L. Richards. Det möjliggör enklare design av komplexa finita tillståndsmaskiner än de traditionella teknikerna med tillståndsdiagram , tillståndsövergångstabeller och boolesk algebra erbjuder. Med Richards teknik blir det lättare att implementera finita tillståndsmaskiner med hundratals eller till och med tusentals tillstånd.

Historia

Richards-styrenheten utvecklades på grund av behovet av en enklare metod för att designa finita tillståndsmaskiner än att använda den traditionella metoden med tillståndsdiagram, tillståndsövergångstabeller och logisk minimering. Vid den tiden, [ när? ] många av de datorbaserade logikminimeringsverktyg som vi har idag [ när? ] fanns inte. Därför var logikminimering för det mesta begränsad till användningen av Karnaugh-kartor och DeMorgans lag . På grund av detta uppfann Charles L. Richards en metod för att implementera en finita tillståndsmaskin som inte behövde en explicit tillståndsövergångstabell. Han publicerade sina resultat i februarinumret 1973 av Electronics . [ citat behövs ] Hans generaliserade implementering blev populär och på 1980-talet ansågs han vara en klassisk designmetod. Även om det är osannolikt att kommersiella produkter som finns idag innehåller en klassisk Richards-kontroller (eftersom det finns snabbare konstruktioner nu än de som använder laddningsbara räknare), finns det en god chans att en modifierad Richards-kontroller eller en design som härrör från Richards-kontrollern används [ citat behövs ] .

Ansökningar

På grund av Richards-styrenhetens förmåga att skala för att enkelt använda många tillstånd, kan den användas i många praktiska tillämpningar.

Richards flödesschema

Enkelt skick och funktioner
Enkelt Richards flödesschema

Richards styrenhet är en Mealy-maskin eftersom dess utgång är beroende av både det aktuella tillståndet och ingången. Men Richards designade sin egen metod för att representera tillstånd med hjälp av ett flödesdiagram istället för tillståndsdiagrammet . Varje tillstånd representeras som ett överföringsvillkor i flödesschemat. Varje tillstånd har två kontrollvägar som leder ut därifrån, ett JA eller ett NEJ. Villkoret är JA eller NEJ (TRUE eller FALSE) baserat på en enstaka bit som matas in till maskinen. (Richards s. 108) Beroende på vad indata för ett villkor är, kommer en av de två överföringsfunktionerna som är associerade med det villkoret att exekveras. Maskinen anser att exekvering av en funktion är att ställa in utsignalen från ett enda stift på enheten, detta kan användas för att trigga kombinationslogik. Efter att en överföringsfunktion har utförts kommer maskinen att gå in i ett nytt tillstånd, varje överföringsfunktion kommer antingen implicit eller explicit att definiera ett nytt tillstånd att övergå till. En implicit tillståndsdefinition kan också kallas standard, eftersom den kommer att inträffa utan några ytterligare kretsar från konstruktören, om villkoret är JA kommer den att övergå till nästa tillstånd numeriskt. Till exempel, om du är i tillstånd 0 och ett JA inträffar kommer du att övergå till tillstånd 1. Om villkoret är NEJ, kommer maskinen att förbli i sitt nuvarande tillstånd. Med detta beteende är det möjligt att skapa en maskin med ett enkelt sekventiellt flödesschema. Naturligtvis är en sekventiell maskin vanligtvis inte särskilt användbar, tack och lov finns det ett sätt att övergå till tillstånd ur ordning, med hjälp av ett så kallat hopp. För att implementera ett hopp krävs ytterligare hårdvara för att välja destinationstillstånd. Den exakta hårdvaran beror på funktionen som körs.

Styrenhetens kärna

Schematisk för grundläggande Richards-kontroller

Richards controllers kärna kan kokas ner i fyra delar, en räknare, en multiplexer och två avkodare. En enkel styrenhet kan byggas med den klassiska 7400-serien av TTL logiska integrerade kretsar. Räknaren som används är 74163, multiplexorn är 74151 och de två avkodarna är 7442-delen. Utsignalen från räknaren väljer vilken bit från multiplexoringången som ska skickas till utgången Y, (vars invers skickas till utgången WN.) Om Y är hög får räknaren öka, annars är den inte . På samma sätt måste Y vara hög för att aktivera YES-funktionsutgångar eftersom D-ingången på dekodern är ansluten till WN, medan den måste vara låg för att aktivera NO-funktionsutgångarna, eftersom D-ingången på den dekodern är satt till Y. För att utföra en hoppa måste du ställa in LDN-biten på räknaren och A, B, C och D ingångarna. LDN talar om för räknaren att ladda värdet på A-, B-, C- och D-ingångarna. Med hjälp av en kombinationslogik kan du ladda ett värde i räknaren för vissa funktioner men inte andra, samt specificera tillståndsadressen som ska laddas, givet vilken funktion som är aktiv. Att göra detta är en enkel fråga om att bygga en tabell över funktioner och tillstånden som de ska övergå till, och sedan hitta det booleska algebrauttrycket för varje bit som utgör adressen till det tillstånd som ska hoppa till.

Se även

  • Richards, Charles L.; Ett enkelt sätt att designa komplexa programstyrenheter . Electronics, 1 (februari 1973): 107–113.
  • Wakerly, John F.; Digital design – 3:e upplagan. Upper Saddle River, NJ: Prentice-Hall Inc. 2001.