1 / 38

8 장 대형 순차회로 문제의 해법

8 장 대형 순차회로 문제의 해법. 시프트 레지스터 카운터 ASM 도를 이용한 설계 One Hot encoding 복잡한 예제. 시프트 레지스터. 그림 8.1 간단한 시프트 레지스터. 추적 8.1 시프트 레지스터 타이밍. 부하 (load) 를 줄이는 NOT 게이트가 있는 시프트 레지스터. 클럭 부하 : 1 ( 앞에서는 4) 입력 x 부하 : 1 ( 앞에서는 2). 시프트 레지스터 저장장치.

Télécharger la présentation

8 장 대형 순차회로 문제의 해법

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 8장 대형 순차회로 문제의 해법 • 시프트 레지스터 • 카운터 • ASM 도를 이용한 설계 • One Hot encoding • 복잡한 예제

  2. 시프트 레지스터 그림 8.1 간단한 시프트 레지스터 추적 8.1 시프트 레지스터 타이밍

  3. 부하(load)를 줄이는 NOT 게이트가 있는 시프트 레지스터 • 클럭 부하: 1 (앞에서는 4) • 입력 x 부하: 1 (앞에서는 2)

  4. 시프트 레지스터 저장장치 • LOAD = 0 → 데이터는 n개의 플립 플롭 순회 (circular shift) • LOAD = 1 → 새로운 x값이 저장

  5. 74164 직렬입력 병렬출력 시프트 레지스터 • Active low 정적 클리어 입력 • 병렬(parallel) 출력 • 모뎀 입력 포트에사용

  6. 병렬입력(parallel-in) 시프트 레지스터 • 정적인 적재(74165) • Load’ = 1, CLR’와 PRE’가 모두 1 → 시프트 • Load’ = 0 → 클럭 비활성화, PRE’= IN2’, CLR’= IN2, 플립플롭 출력 = IN2 • 동기적인 적재(74166) • Enable’ = 0 → 클럭 전달, 아니면 클럭이 인가되지 않음 • Enable’ = 0, Load’ = 0 → IN2가 q2에 저장, • Load’가 1 → 시프트 • 직렬출력

  7. 오른쪽/왼쪽 시프트 레지스터(74194)

  8. 예제 8.1 입력 x가 7 클럭 동안 계속 변경되면 출력 z가 1인 시스템 • 플립 플롭 - 최근 8 클럭 동안 x 값 저장 • 가장 최근 것 A, 가장 오래된 것 H • 6개만 필요

  9. 카운터 • 74161 카운터 • 동기식 카운트, 동기식 적재(active low) , 비동기식(active low) 클리어 • 적재(Load  = 0) : D = IND • C = INC • B = INB • A = INA • Count (ENP=1, ENT=1) • OV: 오버플로우 출력

  10. 8-비트 카운터 (74161 두개를 사용) • 처음 15 클럭 동안: 우측 카운터(낮은 자리) 만 활성화 • 카운터=15(0000 1111) → 오버플로우 출력(OV)=1. 좌측 카운터 활성화 • 다음 클럭 → 우측 카운터 = 0 (OV도 0), 좌측 카운터는 1 증가 (카운터=16) • 다음 15 클럭 동안 → 우측 카운터만 증가 • 카운터=31(0001 1111), → 좌측 카운터 다시 활성화 • 다음 클럭 → 우측 카운터 = 0 (OV도 0), 좌측 카운터는 1 증가 (카운터=32)

  11. 예제 8.2 : MOD-120 카운터 (74161: 비동기 클리어) • 74161 카운터 사용,정적 클리어 • 최대값보다 하나 더 카운트하고 클리어 시킨다 • 120 (01111000)에서 NAND 게이트가클리어 신호 생성 • 정적 클리어 때문에 짧은 시간 동안 120 이 나타난다

  12. 예제 8.3: MOD-120 카운터 (74163: 동기식 클리어) • 74163 카운터, 동기화된 클리어 • 클리어 입력 활성화, 클럭에 맞추어 모든 플립 플롭이 0 • 119 (01110111) 감지, 다음 클럭 펄스에서 클리어 • 카운터의 120인 상태가 나타나지 않음

  13. 74191 Down/Up´카운터

  14. 7493 비동기 이진 카운터 • 7493 16 진 (2 x 8) • 클럭 X점 연결 → 8진 counter, 출력 D, C, B • 클럭 Y점 연결, A점 X점 연결→ 16진 counter • 7490 10진 (2 x 5) • 7492 12 진 (2 x 6)

  15. 예제 8.4 : 9 번째 클럭마다 한 개의 클럭펄스를 출력하는시스템방법 1: 74163 (동기식 클리어 ) 사용 • 0 1 2 3 4 5 6 7 8 0 … • 상태 8인 동안만 D=1 → 카운터 리세트

  16. 예제 8.4 방법 2: 74161(비동기식 클리어) 사용 • 9 까지 카운트하고 클리어 • 출력을 D와 clock을 AND하여 발생(방법 1과 같이) • 상태 9의 시작 부분에 glitch 발생 • Glitch 없애기 위해 7이 될 때 출력을 발생

  17. 예제 8.4 방법 3: 74163을 이용한 다른 방법 • 동기식적재 • 8, 9, 10, 11, 12, 13, 14, 15, 0, 8 … • 카운터= 0 일 때  출력 1, 카운터에 8 적재

  18. 예제 8.4 방법 4: 74163 이용 • OV 출력 이용 • 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, … • 카운터=15→OV 출력 • active low 적재 신호, 카운터에 7 적재(출력 1)

  19. ASM 도를 이용한 설계 • ASM(Algorithmic State Machine) 방법 • Finite machine을 설계할 때 사용되는 방법으로, 상태도와 유사하고 이해하기가 쉽다. • 3가지 기본요소 • 상태(state), 판단(condition check), 조건부 출력(conditional output)

  20. Moore 상태도와 ASM 도

  21. Mealy 상태도와 ASM 도

  22. Serial Adder • A, B : 8bit 시프트 레지스터 • 결과: B 레지스터

  23. 직렬 덧셈기에 대한 ASM 도 • 신호 s : 덧셈과정 시작 • 신호 d : 계산완료 • N: 3 bit counter

  24. One Hot Encoding • One Hot: 한 bit만 1이 되는 경우 (반대는 One Cold) • Ex) decoder output • 한 bit 만 1이 되도록 encoding 하게 되면 플립플롭 수가 많아지지만 설계가 쉬워진다. • 아래 상태도에서 각 상태에 대하여 A, B, C, D4개의 플립플롭을 할당하면 • A* = x (A+B+C+D) • B* = x A • C* = x B • D* = x (C+D) • z = D

  25. 간단한 컴퓨터 설계 • 메모리 : 명령어와 데이터를 저장 • 256(28) words (1 word = 12 bits) • Address lines: A0, … A7 • r’/w : read/write 제어선 • 레지스터 • 사용자 주소지정 가능한 레지스터: B, C • 내부 레지스터 • R : 12bit 명령어 레지스터 (교재의 I 와 R은 동일한 것) • P : Program Counter • T : 12 bit temporary register

  26. 간단한 컴퓨터 설계 • 명령어 형식 • OP: 명령어 코드 • 00 : 메모리에서 레지스터로 로드 • 01 : 레지스터에서 메모리로 저장 • 10 : 메모리 내용과 레지스터 내용을 더함 • 11 : 점프 • N : 레지스터 선택 비트 • 0 : B 레지스터 • 1 : C 레지스터 • M : 주소지정방식 • 0 : 직접 주소지정 • 1 : 간접 주소지정

  27. 명령어 실행 단계 • 명령어 fetch • PC 내용을 주소 선으로 보냄 • Read 신호 • 명령어 레지스터 ( R register ) 에 저장 • PC update • 명령어 decode, operand 결정 • Operand 준비 • 실행

  28. One Hot Encoding 방식의 제어기

  29. 복잡한 예제 • 입력으로 들어온 연속적인 1을 추적하여, 같은 수만큼 1을 출력 • AND, OR, NOT 게이트, JK 플립 플롭, 74191 상향/하향 카운터 이용 • 카운터로 연속적인 1의 갯 수를 카운트하고 (카운터 증가), • 1 이 출력되면서 카운터를 감소

  30. 방법 1 • x=1 → D/U=0, 카운터 증가 • X=0 → D/U =1,카운터가 0 이 아닌 동안 감소, 출력=1 • 카운터가 15를 넘지 않을 때만 동작

  31. 방법 2 • 15개 이상의 입력에도, 최대 15개의 1이 나오도록 출력 제한 • 값=15(1111)→ x=1 이라도 카운터 비활성화

  32. 방법 3: 1의 출력 완료까지 입력 무시 • 플립 플롭 Q, 카운터가 감소 중이고 x가 무시 • x = 0 Q = 0 count = 0 EN = 0 z = 0 D/U = X • x = 0 Q = 0 count = 1 EN = 1 z = 1 D/U = 1 • x = 0 Q = 0 count > 1 EN = 1 z = 1 D/U = 1 Q <- 1 • x = 1 Q = 0 count ≠ 15 EN = 1 z = 0 D/U = 0 • x = 1 Q = 0 count = 15 EN = 0 z = 0 D/U = X • x = X Q = 1 count > 1 EN = 1 z = 1 D/U = 1 • x = X Q = 1 count = 1 EN = 1 z = 1 D/U = 1 Q <- 0 • J = x (D + C + B) K = D C B A • z = Q + x Q (D + C + B + A) = Q + x (D + C + B + A) • EN = x (A B C D) + z • D/U = Q + x (D + C + B + A)

  33. 방법 4: 세 개의 오른쪽/왼쪽 시프트 레지스터 이용 • 12-비트 시프트 레지스터 • x = 1 → S0 =1, S1 = 0, 오른쪽 시프트, 가장 왼쪽 비트에는 1이 들어간다 • x = 0 → 왼쪽 시프트,오른쪽에 0을 적재 • 레지스터 수보다 많은 1 입력도 처리

  34. 예제 8.7: 16 상태(1 2 4 7 11 0 6 13 5 14 8 3 15 12 10 9)를 순회하는 카운터 • 카운터 상태표

  35. 방법 1: JK 플립 플롭 4개 사용 • JD = C A + C B + B A KD = C B + C A + B A • JC = D A + D B KC = D A + D B A • JB = D + A KB = D + A • JA = D C + D C KA = D B + C B + D C B • 2-입력 게이트 18개, 3-입력 게이트 5개 → 50센트 IC 7개, 총 비용=$5.50

  36. 방법 2: 4-비트 동기식 카운터(74161과 같은)와 디코더 블럭 사용 • 디코더 블럭 진리표

  37. 방법 2 계속 • W = C B A + D B A + C B A + D B A • X = D B + D B • Y = C A + C A • Z = B A + B A • 2-입력 게이트 9개, 3-입력 게이트 4개, 4-입력 게이트 1개 • 카운터 출력(D, C, B, A) NOT 게이트 4개 • 총 패키지 수=6, 비용= $3.00 + 카운터 비용 • 카운터 비용 < $2.50 → 이 방법이 더 저렴

More Related