리차드 컨트롤러
Richards controller리차드 제어기는 간단한 집적회로와 결합논리를 이용하여 유한상태 기계를 구현하는 방법이다. 이 방법은 발명가인 찰스 L의 이름을 따서 명명되었다. 리차드. 기존의 유한 상태 기계 설계 방법에 비해[which?] 이 방법의 뚜렷한 장점 중 하나는 상태 도표, 상태 전환표 및 부울 대수에서 제공하는 전통적인 기법보다 복잡한 유한 상태 기계의 설계를 더 쉽게 할 수 있다는 것이다. 리차드의 기술을 사용하면 수백, 심지어 수천 개의 주를 가진 유한한 주 기계를 구현하는 것이 더 쉬워진다.
역사
Richards 컨트롤러는 상태 다이어그램, 상태 전환 표, 로직 최소화의 전통적인 방법보다 더 쉬운 유한 상태 기계 설계 방법이 필요하기 때문에 개발되었다. 그 당시에는,[when?] 오늘날 우리가[when?] 가지고 있는 컴퓨터 기반의 로직 최소화 도구들 중 많은 것들이 존재하지 않았다. 따라서, 논리 최소화는 대부분 Karnaugh 지도와 DeMorgan의 법칙의 사용에 제한되었다. 이것 때문에 찰스 L. 리차드는 명시적 상태 전이표가 필요 없는 유한한 상태 기계를 구현하는 방법을 발명했다. 그는 1973년 2월 전자 신문에 그의 연구 결과를 발표했다.[citation needed] 그의 일반화된 구현은 대중화되었고 1980년대에 이르러서는 고전적인 디자인 방법으로 여겨졌다. 오늘날 발견되는 상업용 제품에는 고전적인 리차드 컨트롤러가 들어 있을 가능성은 낮지만(로드 가능한 카운터를 사용하는 것보다 현재 더 빠른 설계가 있기 때문에), 수정된 리차드 컨트롤러나 리차드 컨트롤러에서 파생된 설계가 사용될[citation needed] 가능성은 충분히 있다.
적용들
많은 주를 쉽게 사용할 수 있도록 확장할 수 있는 Richards 컨트롤러의 능력 때문에, 그것은 많은 실용적인 응용 분야에서 사용될 수 있다.
리차드 순서도
Richards 컨트롤러는 출력이 현재 상태와 입력 모두에 의존하기 때문에 Mealy 기계다. 그러나 Richards는 주 도표 대신 플로우차트 도표를 사용하여 주들을 나타내는 자신만의 방법을 고안했다. 각 상태는 흐름도에 전달 조건으로 표시된다. 각 조건에는 YES 또는 NO의 두 가지 제어 경로가 있다. 조건은 기계에 대한 단일 비트 입력을 기준으로 YES 또는 NO(TRUE 또는 FALSE)이다. (리처드 페이지 108) 어떤 조건의 입력이냐에 따라 그 조건과 관련된 2개의 전송 기능 중 하나가 실행된다. 기계는 장치의 단일 핀 출력을 설정하는 기능 실행을 고려하며, 이는 결합 논리를 트리거하는 데 사용될 수 있다. 전송 기능이 실행된 후 기계는 새로운 상태로 들어가고, 각 전송 기능은 암묵적으로 또는 명시적으로 전환될 새로운 상태를 정의한다. 암시적 상태 정의는 설계자의 추가 회로 없이 발생하기 때문에 기본값이라고도 할 수 있으며, 조건이 YES인 경우 다음 상태로 숫자적으로 전환된다. 예를 들어, 당신이 상태 0이고 YES가 발생하면 당신은 상태 1로 전환될 것이다. 상태가 NO일 경우 기계는 현재 상태를 유지한다. 이 동작을 사용하면 간단한 순차 흐름도로 기계를 만들 수 있다. 물론 순차적인 기계는 대개 그다지 유용하지 않지만, 고맙게도 소위 점프를 이용하여 고장난 상태로 전환하는 방법이 있다. 점프를 구현하려면 대상 상태를 선택하기 위한 추가 하드웨어가 필요하다. 정확한 하드웨어는 실행 중인 기능에 따라 달라진다.
컨트롤러의 커널
리차드 컨트롤러의 코어 커널은 카운터, 멀티플렉서, 디코더 2개 등 4개 부분으로 나눌 수 있다. 고전적인 7400 시리즈 TTL 로직 집적회로를 사용하여 간단한 컨트롤러를 구축할 수 있다. 사용되는 카운터는 74163이고 멀티플렉서는 74151이고 디코더 2개는 7442 부분이다.(리처드, 페이지 108) 카운터의 출력은 멀티플렉서 입력에서 출력 Y로 보내야 하는 비트를 선택한다(역방향은 출력 WN으로 전송됨). Y가 높으면 증분할 수 있고 그렇지 않으면 증분할 수 없다.t. 마찬가지로, 디코더의 D 입력이 WN에 연결되어 있기 때문에 Y는 YES 함수 출력을 활성화하려면 높아야 하고, NO 함수 출력을 활성화하려면 낮아야 하며, 그 디코더의 D 입력이 Y로 설정되어 있기 때문이다. 점프를 수행하려면 카운터에 LDN 비트, A, B, C, D 입력을 설정해야 한다. LDN은 카운터에 A, B, C, D 입력에 값을 로드하도록 지시한다. 어떤 조합논리를 사용하면 어떤 기능이 활성화되어 있는지를 고려하여 로드할 상태 주소를 지정할 뿐만 아니라 특정 기능에 대해서는 그렇지 않은 값을 카운터에 로드할 수 있다. 이렇게 하는 것은 기능표와 그들이 전환해야 할 상태들을 만든 다음, 점프할 주의 주소를 구성하는 각 비트에 대한 부울 대수식(Boolean Agebra)을 찾는 간단한 일이다.
참고 항목
참조
- Richards, Charles L.; 복잡한 프로그램 제어기를 쉽게 설계할 수 있는 방법. 전자제품, 1 (1973년 2월): 107–113.
- Wakerly, John F.; Digital Design – 제3판. Upper Saddle River, NJ: Fratice-Hall Inc. 2001.