![]()
![]()
목차
없음
본문내용
간단한 구조의 계산기를 설계할 것이다. 여태까지 Schematic editor 설계 기법에 따라 register transfer level을 기초로 하는 설계를 진행했었다. 이 방법은 간단한 회로만 설계가 가능하며 원하는 로직을 회로도로 직접 구현하는 방법이다. 이번 설계에서는 HDL (hardware description language) 기법을 이용하여 알고리즘이나 기능 레벨에서의 설계를 진행할 것이며 gate 레벨의 로직 설계를 한다. ROM or Hard-Wired Logic 등 용어를 이해하며 설계를 진행한다.
# 제어장치의 구현
계산기를 구현하는데 필요한 내부 register는 A[4bit], B[4bit], IR[1bit], C[1bit]를 가진다.
계산기를 작동시키기 위해 필요한 외부 입력(switch)의 경우 SA[4bit], SB[4bit], SIR[1bit], START[1bit]이 있다.
ALU를 통해 add, subtract 연산을 수행하는 가감산기를 만든다.
DISP(display)[4bit]는 IR(instruction register)의 출력 신호와 C(carry out)를 출력 신호로 가진다.
# 연산 과정
4 bit 스위치인 SA, SB의 데이터를 읽어 들여 1bit 명령어 IR를 해석하여 ALU에서 연산을 하여 데이터를 A Register에 저장하고 display한다.
# 제어 순서
STATE DIAGRAM 타이밍 흐름
T1, 2, 4, 6의 경우 Register 값이 변경되므로 CLK을 필요로 한다.
T3, 5은 Branch 연산이므로 CLK이 불필요하다.
;은 동시 실행이 가능한 연산임을 표기한 것이고 ;;은 클럭이 필요한 연산을 표기한 것이다.
# Timing Pulse
제어 신호를 만드는 방법은 여러 가지가 있다. 그중 하드와이어 방식은 조합 회로로 구성된 제어 unit이 명령어, 각종 flag 등으로부터 신호를 받아 제어신호를 만든다.
출처 : 해피캠퍼스