You are on page 1of 3

2015-03-16(월), 마이컴 퀴즈.

나는 시험과 관련한 일체의 부정행위를 하지 않을 것이며, 적발시 어떠한 불이익도 감수할 것임을 서명합니다.
학번 출석번호 이름 sign 점수(125점)

1. (3점) 오른쪽 아래 테이블은 Full adder logic table이다.


(a) (2) 오른쪽 논리회로를 4:1 Mux 회로로 구현하
1 x 3
고자 한다. (y,z) 신호를 MUX control 신호로 사용
3
x 2 x 2
C S
한다. (y,z)신호가 (0,1)이면 MUX의 1 신호를 선택 x 1 x 1

한다. 아래 그림에서 MUX 입력 신호를 1,0, x, x 0 0


x
0

중에서 선택하여 오른쪽 그림에 적으라. y,z


y,z

(b) (1) Full adder를 ROM으로 구현할 때 (x,y,z)를 ROM의 입력주소 (A2,A1,A0)로, (c,s)를 출력 (D1,D0)로 나타
낼 때, 각 번지에 저장되어야 하는 값을 0번지부터 적으라. ( 0 , 1, 1, 2, 1, 2, 2, 3 )
2. (4점) (a)(2)아래 회로는 ( edge ) sensitive 한 ( D flip-flop ) 회로이다. 최종출력은 Y이다.
S가 1이면 NMOS회로는 closed, PMOS(동그라미)회로는 open이다. S가 0이면 반대로 동작한다.
(b)(2)오른쪽에서 X와 Y회로의 파형을 그리시오.
(처음의 unknown 부분은 안 그려도 됨)
S
S
A

X Y X
A

3. (3점)아래는 4bit full adder의 그림이다.


A0 A1 A2 A3
S0 S1 S2 S3
B1 B2 B3
B0

C1
C2 C3 C4

Half Adder Full Adder Full Adder Full Adder

위의 그림에서 XOR gate는 20ns, AND 나 OR gate는 10ns의 시간지연이 발생한다고 가정하자.
(a). (1) Critical path를 위의 그림에 표시하라.
(b). (1) Critical path에 해당하는 propagation time delay를 구하라. ( 80 ns)
(c). (1) 아래 그림과 같이 두개의 데이터를 register에 저장하고 더한 후 다시 register에 저장한다. 만약
Register의 setup, hold time이 각각 20 ns, 10ns이고 Adder의 critical path time delay가 70ns라면 아래 회로
에서 clock 주파수는 최대 ( 1000/100=10 )MHz이다. (단, clock rising edge에서 Q 출력까지 지
연시간은 없다고 가정한다.)

A[3:0]
REG

4bit C[3:0]
Adder REG
B[3:0]
REG

CLK
4. (6) (다운 카운터는 이전 상태에 -1을 더하여 다음 상태로 천이하는 FSM이다. 4bit
Register
즉, 오른쪽 그림과 같이 설계할 수 있다.
(a) (2) 이전 페이지에 4bit adder그림이 있다. 이를 이용하여 이전 값을 1 감소
Q=Q-1
시키는 4bit 회로를 최대한 간단히 그려라. (AND/NOT/XOR로 표시)
LSB를 좌측에 그려라.
A3 S3
A0 A1 A2 S2
S0 S1

C2
C1
C3

상세 과정 뒷면 참조.
(b)(1) (a) 회로에서 NOT=10ns, AND=10ns, XOR gate=20ns 의 시간지연이 있다면 위의 4비트 카운터의 최대
동작 주파수는 (setup time=0으로 가정)? (1000/50 )MHz.
T
D Q
(c)(1) T-FF (toggle FF)을 D-FF 회로로 구현한 회로를 오른쪽에 그려라. Q

(d)(2) (a)와 (c)를 이용, T-FF을 이용한 4bit 다운카운터를 그려라.(LSB=좌측)


1 T Q T Q
T Q
T Q
Q Q
Q
Q

5. (6) Digital door lock 시스템을 FSM으로 설계하자. 시스템은 Key가 눌러졌는지를 감지한다. 만약 사용자가
#을 누르면 그 다음 4 글자를 4개의 Register에 LSB부터 저장한다. 마지막으로 #을 누르면 저장된 값과
“1234”라는 패턴을 비교하여 동일하면 문이 열린다. 만약 사용자가 중간에 #을 누르면 저장을 중지하고 초
기 상태 (즉, #을 기다리는 상태)로 돌아간다. 시스템을 설계하라. (시험지 뒷면에 적으시오). 설계를 간단히
하기 위하여 Key 가 눌러졌는지 감지하는 부분은 생략하고 매 클럭마다 Key값이 입력된다고 가정하자.
시스템의 입력
1. D[7:0]: 눌러진 Key 값

FSM의 입력
2. K_S : 1 if D==”#”, 0 otherwise

FSM의 출력
3. U: 1 이면 unlock 아니면 lock
4. LD_R[1:0]: “#”이후에 4글자를 각 register에 write 하기 위한 control 신호, LD_R=2이면 2번 register의
load 단자가 1로 되어 그 register에 값을 저장.

채점은 구조를 잘 잡았고 정확한지 (2), state transition diagram을 정확히 기술하였는지 (2), logic을 정확히
설계하였는 지(2)로 한다. 설계의 편의를 위하여 비교기 (입력이 #과 같은지 아닌지, 혹은 “1”과 같은지 아닌
지)는 사각형 박스에 비교기라고 적고 내부 회로를 상세히 기술하지 않아도 무방하다. 또한 logic은 ROM으
로 구현하고 각 번지의 값만 지정하면 됨. 하나의 답만 있는 것이 아니니 소신껏 설계하기 바람.
A0 A1 A2 A3
S0 S1 S2 S3
1 1 1
1

C1
C2 C3 C4

A0 A1
S0 S1
A2
S2
A3
S3
C1
C2

C3

A3
A2 S3
A0 A1 S2
S0 S1

C4
C2
C1
C3

A3 S3
A1 A2 S2
S0 S1

C2
C1
C3

A3 S3
A1 A2 S2
S0 S1

C2
C1
C3

첫번째  두번째 : B=”1111”연결


두번째  세번째 : A+A’B=(A+B)(A+A’)=A+B
세번째  네번째 : C’^A’=C^A and (A’+B’)=(AB)’

You might also like