산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

유한 상태 기계

지금까지 제시된 모든 회로는 조합이었습니다. 회로. 즉, 출력은 현재 입력에만 의존합니다. 해당 유형의 회로에 대한 이전 입력은 출력에 영향을 미치지 않습니다.

그러나 회로에 "메모리"가 있어야 하는 응용 프로그램이 많이 있습니다. 이전 입력을 기억하고 그에 따라 출력을 계산합니다. 출력이 현재 입력뿐만 아니라 입력의 이력에 따라 달라지는 회로를 순차 회로라고 합니다. .

이 섹션에서는 이러한 순차 회로를 설계하고 구축하는 방법을 배웁니다. 이 절차가 어떻게 작동하는지 보기 위해 우리는 주제를 공부할 예를 사용할 것입니다.

시계에서 작동하고 수동 버튼의 입력을 읽는 디지털 퀴즈 게임이 있다고 가정해 보겠습니다. 그러나 우리는 스위치가 회로에 단 하나의 HIGH 펄스만 전송하기를 원합니다. 버튼을 게임 회로에 직접 연결하면 손가락이 달성할 수 있는 만큼 적은 클록 주기 동안 HIGH를 전송합니다. 일반적인 클럭 주파수에서 우리의 손가락은 결코 충분히 빠를 수 없습니다.

설계 절차에는 작업을 완료하기 위해 따라야 하는 특정 단계가 있습니다.

1단계

설계 절차의 첫 번째 단계는 회로가 수행하기를 원하는 단순하지만 명확한 단어로 정의하는 것입니다.

“우리의 임무는 수동 버튼을 눌렀을 때 한 주기 동안만 HIGH 펄스를 전송하고 버튼을 눌렀다가 다시 누를 때까지 다른 펄스를 전송하지 않는 2차 회로를 설계하는 것입니다.”

2단계

다음 단계는 상태 다이어그램을 디자인하는 것입니다.

이것은 원과 화살표로 만든 다이어그램으로 우리 회로의 작동을 시각적으로 설명합니다. 수학적 용어로 순차 회로의 작동을 설명하는 이 다이어그램은 유한 상태 기계입니다. 이것이 무어 유한 상태 기계라는 점에 유의하십시오.

출력은 입력이 아니라 현재 상태의 함수입니다. 이는 입력이 출력에 영향을 미치는 Mealy 유한 상태 기계와 대조됩니다. 이 자습서에서는 Moore 유한 상태 기계만 조사합니다.

회로의 상태 다이어그램은 다음과 같습니다. (아래 그림)

상태 다이어그램

모든 원은 "상태"를 나타내며, 우리 기계가 찾을 수 있는 잘 정의된 조건입니다. 원의 위쪽 절반에서 해당 조건을 설명합니다. 설명은 해당 조건에서 회로가 수행해야 하는 작업을 기억하는 데 도움이 됩니다.

<울>
  • 첫 번째 원은 "대기" 상태입니다. 여기에서 회로가 시작되고 다른 버튼을 누를 때까지 대기합니다.
  • 두 번째 원은 버튼이 방금 눌렸고 회로가 HIGH 펄스를 전송해야 하는 상태입니다.
  • 세 번째 원은 "대기" 상태로 돌아가기 전에 버튼을 놓을 때까지 회로가 기다리는 조건입니다.
  • 원의 아래쪽 부분에는 우리 회로의 출력이 있습니다. 회로가 특정 상태에서 HIGH를 전송하도록 하려면 해당 상태에 1을 넣습니다. 그렇지 않으면 0을 넣습니다.

    모든 화살표는 한 상태에서 다른 상태로의 "전환"을 나타냅니다. 전환은 클록 주기마다 한 번씩 발생합니다. 현재 입력에 따라 매번 다른 상태로 갈 수 있습니다. 모든 화살표 중간에 있는 숫자를 확인하십시오. 이것은 현재 입력입니다.

    예를 들어, "초기 대기" 상태에 있고 1을 "읽으면" 다이어그램은 "펄스 활성화" 상태로 가야 한다고 알려줍니다. 0을 읽으면 "초기 대기" 상태를 유지해야 합니다.

    그렇다면 우리의 "기계"는 정확히 무엇을 합니까? "초기 - 대기" 상태에서 시작하여 입력에서 1이 읽힐 때까지 기다립니다. 그런 다음 "펄스 활성화" 상태로 이동하고 출력에서 ​​HIGH 펄스를 전송합니다. 버튼을 계속 누르고 있으면 회로는 세 번째 상태인 "Wait Loop"로 이동합니다.

    거기서 버튼을 놓을 때까지(입력이 0이 될 때까지) 출력에서 ​​LOW를 전송합니다. 그럼 이제 끝입니다!

    이것은 간단한 단계로 설명할 수 없기 때문에 아마도 설계 절차에서 가장 어려운 부분일 것입니다. 상태 다이어그램을 설정하려면 경험과 약간의 예리한 생각이 필요하지만 나머지는 미리 결정된 일련의 단계일 뿐입니다.

    3단계

    다음으로 다이어그램의 다양한 상태를 설명하는 단어를 binary로 바꿉니다. 번호. 초기 상태에 할당된 0부터 열거를 시작합니다. 그런 다음 모든 상태가 번호를 가질 때까지 원하는 상태로 열거를 계속합니다. 결과는 다음과 같습니다. (아래 그림)

    코드화된 상태가 있는 상태 다이어그램

    4단계

    그런 다음 상태 테이블을 채웁니다. . 이 테이블은 매우 구체적인 형식을 가지고 있습니다. 나는 우리의 예의 표를 제공하고 그것을 채우는 방법을 설명하는 데 사용할 것입니다. (아래 그림)

    상태 테이블

    첫 번째 열은 상태 다이어그램에 할당한 가장 높은 숫자의 비트만큼입니다. 상태가 5개라면 최대 100개까지 사용했을 것입니다. 즉, 3개의 열을 사용한다는 의미입니다. 이 예에서는 최대 10개까지 사용했으므로 2개의 열만 필요합니다. 이 열은 현재 상태를 설명합니다. 우리 회로의.

    현재 상태 열의 오른쪽에 입력 열을 씁니다. . 이것은 입력 변수만큼 많을 것입니다. 이 예에는 입력이 하나만 있습니다.

    다음으로 다음 상태 열을 작성합니다. . 현재 상태 열만큼 많습니다.

    마지막으로 출력 열을 작성합니다. . 이것들은 우리의 출력만큼 ​​많습니다. 우리의 예에는 하나의 출력만 있습니다. More Finite State Machine을 구축했기 때문에 출력은 현재 입력 상태에만 의존합니다. 이것이 출력 열에 두 개의 1이 있는 이유입니다. 결과적으로 입력 I과 독립적인 출력 부울 함수가 생성됩니다. 자세한 내용은 계속 읽으십시오. 현재 상태 및 입력 열은 테이블의 입력입니다. 0에서

    까지의 모든 이진수로 채웁니다.

    2 (현재 상태 열 수 + 입력 열 수) -1

    그것은 다행스럽게 들리는 것보다 간단합니다. 일반적으로 상태 다이어그램에서 만든 실제 상태보다 더 많은 행이 있지만 괜찮습니다.

    다음 상태 열의 각 행은 다음과 같이 채워집니다. 상태 다이어그램에서 동일한 행의 현재 상태에서 동일한 행의 입력을 따를 때 도달하는 상태로 채웁니다. 현재 상태 번호가 상태 다이어그램의 실제 상태와 일치하지 않는 행을 채워야 하는 경우 Don't Care 용어(X)로 채웁니다. 결국 우리는 존재하지 않는 국가에서 어디로 갈 수 있는지 신경 쓰지 않습니다. 우리는 처음부터 거기에 없었을 것입니다! 역시나 생각보다 간단합니다.

    출력 열은 상태 다이어그램에서 해당하는 현재 상태의 출력으로 채워집니다.

    상태 테이블이 완성되었습니다! 이것은 State Diagram이 하는 것처럼 우리 회로의 동작을 완벽하게 설명합니다.

    5a단계

    다음 단계는 이론적인 "기계"를 회로에 구현하는 것입니다. 대부분의 경우 이 구현에는 플립 플롭이 포함됩니다. 이 가이드는 이러한 종류의 구현에 전념하며 D - 플립 플롭 및 JK - 플립 플롭 모두에 대한 절차를 설명합니다. T - 플립플롭은 앞의 두 경우와 너무 유사하므로 포함되지 않습니다. 사용할 플립플롭의 선택은 임의적이며 일반적으로 비용 요소에 의해 결정됩니다. 가장 좋은 선택은 두 가지 분석을 모두 수행하고 논리 게이트 수를 최소화하고 비용을 절감할 수 있는 플립플롭 유형을 결정하는 것입니다.

    먼저 D-Flip Flops로 "머신"을 구현하는 방법을 살펴보겠습니다.

    우리는 State 열만큼 많은 D - Flip Flop이 필요합니다(이 예에서는 2개). 모든 Flip Flop에 대해 State 테이블(아래 그림)에 Flip Flop의 입력 이름이 "D"인 열을 하나 더 추가합니다. 각 플립 플롭에 해당하는 열은 현재 상태에서 다음 상태로 이동하기 위해 플립 플롭에 제공해야 하는 입력을 설명합니다. . D - Flip Flop의 경우 이것은 쉽습니다. 필요한 입력은 다음 상태와 같습니다. X가 포함된 행에서 이 열의 X도 채웁니다.

    D가 있는 상태 테이블 - 플립 플롭 여기

    5b단계

    JK - Flip Flops로 동일한 단계를 수행할 수 있습니다. 그러나 몇 가지 차이점이 있습니다. A JK - Flip Flop에는 두 개의 입력이 있으므로 각 Flip Flop에 대해 두 개의 열을 추가해야 합니다. 각 셀의 내용은 JK의 여기 테이블에 의해 결정됩니다.

    이 표는 상태 Q에서 상태 Qnext로 이동하려는 경우 , 각 터미널에 대한 특정 입력을 사용해야 합니다. 예를 들어, 0에서 1로 이동하려면 J에게 1을 공급해야 하며 우리는 상관하지 않습니다. 터미널 K에 공급하는 입력.

    JK가 있는 상태 테이블 - 플립 플롭 여기

    6단계

    우리는 절차의 마지막 단계에 있습니다. 남은 것은 플립플롭의 입력과 출력을 생성하는 부울 함수를 결정하는 것입니다. 우리는 우리가 가지고 있는 각 Flip Flop 입력에 대해 하나의 부울 함수를 추출할 것입니다. 이것은 Karnaugh 맵으로 수행할 수 있습니다. 이 지도의 입력 변수는 현재 상태 변수 입력.

    즉, D - Flip Flops의 입력 기능은 다음과 같습니다. (아래 그림)

    D를 위한 Karnaugh 지도 - 플립플롭 입력

    JK - Flip Flops를 사용하기로 선택한 경우 우리의 기능은 다음과 같을 것입니다:(아래 그림)

    JK용 Karnaugh 지도 - 플립플롭 입력

    Karnaugh 지도는 출력의 기능도 결정하는 데 사용됩니다. (아래 그림)

    출력 변수 Y에 대한 Karnaugh 맵

    7단계

    우리는 회로를 설계합니다. 플립 플롭을 배치하고 논리 게이트를 사용하여 계산한 부울 함수를 형성합니다. 게이트는 플립 플롭의 출력과 회로의 입력에서 입력을 받습니다. 시계를 플립플롭에 연결하는 것을 잊지 마세요!

    D - 플립플롭 버전:(아래 그림)

    완성된 D - 플립플롭 순차 회로

    JK - 플립플롭 버전:(아래 그림)

    완성된 JK - 플립플롭 순차 회로

    이거 야! 순차 회로를 성공적으로 설계하고 구축했습니다. 처음에는 어려운 작업처럼 보일 수 있지만 연습과 반복 후에 절차는 하찮게 될 것입니다. 순차 회로는 더 큰 회로의 제어 부분으로 유용할 수 있으며 우리가 생각할 수 있는 모든 순차 논리 작업을 수행할 수 있습니다. 하늘이 한계다! (또는 적어도 회로 기판)

    검토:

    <울>
  • 순차 논리 기능에는 "메모리" 기능이 있으며 출력을 결정하기 위해 과거 입력을 고려합니다.
  • Finite State Machine은 순차 논리 함수의 추상 수학적 모델입니다. 유한한 입력, 출력 및 상태 수가 있습니다.
  • FSM은 플립플롭을 사용하여 실제 회로에서 구현됩니다.
  • 구현 절차를 수행하려면 특정 단계(알고리즘) 순서가 필요합니다.

  • 산업기술

    1. 히스테리시스
    2. CNC 기계 이야기
    3. CNC 기계
    4. 밀링 머신의 15가지 유형
    5. 레거시 머신을 스마트하게 만들기
    6. 인쇄기:오프셋 인쇄
    7. 플렉소 인쇄기
    8. 연삭기 유형
    9. 밀링 머신 1대
    10. 보링 머신 소개