• 전문가 요청 쿠폰 이벤트
오*석
Bronze개인인증
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 2
검색어 입력폼
  • 컴퓨터 구조 계산기_quartus 설계_2024
    과목명컴퓨터 구조과제 제목계산기 설계학번 이름작성 시간제출 날짜간단한 구조의 계산기를 설계할 것이다. 여태까지 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한다.OP CodeDefinition of Operation0operands A와 B를 더하여 A 레지스터에 저장1operands A와 B를 빼서 A 레지스터에 저장# 제어 순서STATE DIAGRAM 타이밍 흐름Timingstate diagram설명T1IR ← SIR;;instruction Fetch: Fetch 작업이 일어난다.스위치 SIR에 따라 가/감산을 결정한다.T2A←SA; B←SB; C←0;;Data 읽기: SA, SB의 값이 A, B에 저장된다. C=0이 저장된다.T3→ (/IRO, IRO)/(4:6);Decoding, Jump:/IR0인지 IR0인지에 따라 T4, T6의 작업을 수행하기 위해 이동한다.T4C,A←SA+SBADD: SIR=0이면 가산 연산T5→ 7;Halt, Jump: T7로 가서 stop한다.T6C,A←SA-SBSUB: SIR=1이면 감산 연산T7HALT;;Halt: stop한다.제어 순서(T)T1, 2, 4, 6의 경우 Register 값이 변경되므로 CLK을 필요로 한다.T3, 5은 Branch 연산이므로 CLK이 불필요하다.;은 동시 실행이 가능한 연산임을 표기한 것이고 ;;은 클럭이 필요한 연산을 표기한 것이다.# Timing Pulse제어 신호를 만드는 방법은 여러 가지가 있다. 그중 하드와이어 방식은 조합 회로로 구성된 제어 unit이 명령어, 각종 flag 등으로부터 신호를 받아 제어신호를 만든다. 기능이 복잡해지면 설계하기 어려워진다는 단점이 있다.이번 timing pulse generator는 one flip-flop per state 방식을 사용하여 Flip-Flop을 통해 CLK을 발생 및 전달할 것이다. start 신호와 시스템 클럭을 동기화하기 위해 손으로 입력하는 비동기 입력인 start 신호를 JK Flip-Flop CLK에 넣어주고 JK Flip-Flop의 CLR을 첫 번째 D Flip-Flop의 /Q1와 연결해 동기화해준다.# 전체 Data Flow# 제어 클럭의 연결과 동작# 시뮬레이션 하는 방법FILE를 열어 새로운 PROJECT를 만들고파일을 생성해준다.PROJECT NAME도 정해준다,.추가할 파일이 있다면 여기서 추가하고 없으면 넘어간다.여기도 쓸 소자를 정해주는 것이므로 위의 사진과 동일하다면 쭉 넘어가서 새로운 PROJECT를 생성해준다.설계도를 완성한다.다시 FILE을 열어 OTHER를 선택해 WAVEFORM 파일을 생성한다.위의 node finder를 통해 새로운 창을 띄워주고추가된 창에서의 검색을 통해 만들어둔 현재 설계도의 모든 노드(핀)을 찾아준다.나온 모든 핀을 선택해서 밑의 사진 WAVE FILE에 넣어주면 모든 핀이 파일로 들어가진다.이후 각 핀의 값을 설정해주고(start 신호는 처음부터 주지 말고 조금 시간을 두고 계산기를 작동시키고 싶을 때 주면 된다.이 보고서에서는 20ns~40ns까지 h값을 주었다.)위 버튼을 눌러서 시뮬레이션을 시작한다.# Timing CLOCK3개의 D Flip-Flop을 이용하여 clock을 지연시켜 전달하도록 회로를 구성했다.T1에서 IR ← SIR;; 과정이 진행되고 T2에서 데이터를 읽어온다. 조건인 신호 IR의 값에 따라 T4, T6으로 진행된다.계산기를 작동시키기 위한 start 신호와 시스템 클럭이 입력으로 존재한다. 이 둘을 동기화하기 위해 손으로 입력하는 스위치인 비동기 입력 신호 start 신호를 JK Flip-Flop CLK에 넣어주고 JK Flip-Flop의 CLR을 첫 번째 D Flip-Flop의 /Q1와 연결해준다.자세한 원리로 손으로 비동기 입력인 스위치를 누르게 되면 그 입력이 JK Flip-Flop CLK에 전달된다. CLK이 들어와 JK Flip-Flop이 작동하게 되고 입력 값이 J=1, K=0임으로 스위치를 누르는 순간 출력으로 Q=1 값이 나온다. 나온 Q=1 값은 첫 번째 D Flip-Flop의 입력으로 들어간다. D Flip-Flop은 시스템 CLK에 동기되어 상승에지에서 입력 값을 출력 값으로 내보낸다. 이때 D Flip-Flop의 /Q1 값은 0으로 출력되어 JK Flip-Flop의 CLR로 들어가 그 값을 초기화시킨다. 그럼 입력이 0이 되고 결국 CLK에 동기화된 한 펄스로 작동하게 된다.# MUX & A, B REGISTERMUX로 74157, 각 REGISTER로 74194를 사용했다.MUX의 A 입력은 사용자로부터 얻는 스위치 A 입력 값이 들어가도록 설계되었다. B 입력은 ALU에서 계산한 연산 결과가 들어오도록 연결했다. MUX가 로드되는 T는 T2, T4, T6 타이밍으로 OR gate를 이용하여 알맞은 T에 로드되도록 했다. GN 핀이 버블을 가진 Active Low이므로 인버터를 이용하여 연결했다. SEL 핀은 T2 타이밍으로 제어된다.74157의 DATA SHEET를 살펴보면 SEL이 L일 때 입력은 스위치 입력 A를 받아 A ← SA 동작을 수행한다. SEL이 H일 때 ALU에서 온 출력값이 나오게 된다. 그러므로 제어신호는 /T2에 입력받은 데이터가 나오고 그 외 타이밍에는 연산 결과를 그대로 보내주니 /T2+T4+T6로 SEL을 연결해주었다.A register의 경우 74194를 사용했다. 표에 따라 clear에 H 값을 주고 S1, S0가 H일 때 원하는 값을 출력하므로 S1, S0의 입력값으로 T2+T4+T6를 주었다.B register 역시 74194를 사용했다. BR은 직접 스위치 B 입력을 받기 때문에 T2를 S1, S0에 넣어 B←SB를 수행하도록 했다.# ALU4비트 가감산기로서 전가산기를 4개 이용하여 연산을 한다. FA에 B 입력을 XOR로 달아 감산기 역할도 할 수 있게 만들었다.제어신호인 M이 T6일 때만 감산기(1)이고 나머지 타이밍에서는 가산기(0)로 동작된다.#CARRYALU에서 CARRY가 발생하면 다음 FA로 들어가게 되어있는데 마지막에 생긴 CARRY는 JK Flip-Flop으로 처리해주었다. JK Flip-Flop으로 T4+T6일 때 값이 나오도록 제어신호를 넣어주었고 JK Flip-Flop의 진리표를 확인해보면 JK=00일 때 값을 HOLD하므로 이를 방지하기 위하여 CARRY 입력 중 하나에 인버터를 넣었다.#전체 회로도 (RTL Viewer 포함)# 계산기 작동계산기를 작동시키기 위한 공식은 강의 자료에서 확인하면덧셈: 0101+1011=뺄셈: 1010-0101=인데 강의 영상을 확인하면덧셈: 1010+1011=, 1010+0100=뺄셈: 1010-1011=, 1010-0100=으로 4개가 더 있다. 6개의 공식을 모두 돌려 결과를 구했다.# 덧셈1. 0101+1011=10000가산 계산으로 IR=0, A=0101, B=1011으로 입력을 설정하고 계산기를 동작시켰다.OUT=0000이 나왔고 여기서 4bit로 인해 맨 앞자리 1이 CARRY가 1로 올라왔다.이를 통해 정답인 결과값 10000로 정상 출력되었음을 알 수 있다.2. 1010+1011=10101가산 계산으로 IR=0, A=1010, B=1011으로 입력을 설정하고 계산기를 동작시켰다.
    공학/기술| 2024.06.07| 17페이지| 2,000원| 조회(223)
    미리보기
  • 컴퓨터구조 CPU설계_Quartus 설계_2024 평가A+최고예요
    컴퓨터구조 CPU 보고서제목학과학년학번성명제출일우선 CPU 설계를 하기 전에 컴퓨터 명령어와 기본적인 CPU의 구성을 살펴보고 회로 설계를 진행했다.#컴퓨터 명령어컴퓨터 명령어는 각각 16진수 코드로 되어있는 마이크로 연산이다. 명령어를 Instruction Register (IR)에 넣어 해석을 진행해 필요한 장치에서 명령어를 실행한다.메모리 참조 명령어는 주소가 필요하다. 첫째 자리의 0~E까지를 보고 메모리 참조 명령어임을 확인하고 뒤의 XXX에 주소를 넣는다.레지스터를 건드리는 명령어는 정해져 있는 레지스터 명령어 16진수 값을 가져와서 처리한다.#기본적인 제어장치의 구성명령어가 IR에 들어가면 하위 12 bit( IR 0~11 )는 주소 bit로 할당된다. 그 위 3 bit가 3to8 Decoder에서 D 신호가 되어 나온다. ( D0~D7 )가장 상위 bit는 주소 모드를 나타내는 I bit가 나온다.명령어를 수행할 타이밍은 4-bit sequence counter ( SC )에서 0부터 숫자를 세기 시작해 4to16 Decoder에서 T 신호=타이밍 펄스가 되어 나온다. ( T0~T15 )기본 컴퓨터의 모든 플립플롭과 레지스터는 주클럭 발생기에 의해 제어된다. 제어장치에서 발생된 제어신호가 클럭과 동기되어 레지스터의 상태를 인에이블시킨다. ( 레지스터 선택 )#구성될 CPU 내부 로직기본 CPU에는 위와 같은 구성으로 내부에 레지스터들이 구성되어 있다.SRAM에서는 프로그램을 보관 중이고 사용될 프로그램은 IR로 이동한다.IR 밑에 명령어 분석 회로 연결되어 있어 해석을 진행하는 것이 Decoding 과정이다.HW의 소자 구성은 정해져 있기 때문에 CONTROL LOGIC GATES 설계가 주목적이다.CONTROL LOGIC GATES에서 만든 제어 신호를 각 소자에 뿌려주는 것을 설계하면 된다.이번 설계에서는 3-state-buffer인 74244 8-bit 버퍼를 사용하여 각 레지스터들이 버스를 점유하는 것을 선택하게 설계했다. 메모리의 입력과VERFLOW를 저장IEN FF& R FF인터럽트Interrupt를 표시IR명령어 레지스터16bit 명령어 저장SCSequence Countert 타이밍 생성TR임시 레지스터16bit 임시 데이터를 저장INPR & OUTR입/출력 레지스터각 8bit 입/출력 데이터를 저장#명령어 단계연산(명령어)에서 각 state를 실행하는 단계Fetch = 명령어를 메모리에서 가져온다.Decoding = IR에서 들어온 명령어를 해석해 제어 신호로 출력한다.Execution = 나온 제어 신호가 필요한 곳에 가서 명령을 처리하는 것으로 간접 주소 방식일 경우 메모리로부터 유효주소를 읽어온다.명령어를 실행하고 다시 첫 단계로 돌아온다.#Fetch & Decoding (T0,1,2) 과정 = 모든 명령어 공통으로 동작명령어는 메모리에 들어있다.IR에서 메모리를 읽기 위해서는 주소가 필요하다.주소는 Program counter ( PC )에 저장되어 있다.FetchT0 - PC의 주소를 AR로 옮긴다. PC에서 AR로 저장하는 과정이 필요하니 1 CLK 사용한다.T1 - AR의 주소로 메모리를 호출하면 메모리의 내용이 IR로 간다. IR로 저장하는 과정이 필요하니 1 CLK 사용한다. PC에는 다음 시행할 명령의 주소가 있는데 T0에서 이전의 PC가 가진 주소를 사용했으니 다음 명령어를 위해 PC+1 ( PC의 다음 번지 ) 명령어를 저장하게 표현해준다.DecodingT2 ? IR의 12bit( 0~11 )가 AR( address )로 들어가고 최상위 bit( 15 )가 I로 주소 모드( 직접 주소, 간접 주소 )를 표현하며 3bit( 12~14 )가 명령어 해석을 위해 Decoder에 들어가 D 신호 생성T3 이후부터의 마이크로 연산은 T2에서 생성된 D 신호를 해석하여 명령어의 종류를 결정하고 이를 각 소자에 보내주고 명령어를 수행한다.명령어 사이클의 구성을 최종적으로 살펴보면 아래의 그림과 같다.# 레지스터, 메모리, 입출력 명령어-레지스터 참조 명령어T3 타이밍에서 수행되 I=1인 명령어로 IR(0~11)의 각 비트위치를 B(i)로 표시하며 6가지 명령어를 표시한다. 모든 제어함수는 D7IT3= p의 부울식을 필요로 한다.# CPU의 전체 모습quartus로 설계한 cpu의 전체적인 모습. 설계한 회로들을 공통버스를 이용해 묶어 주었다.위부터 메모리, AR, PC, DR, ALU와 E, AC, INPR, IR, Sequence Counter, TR과 E, R FF, OUTR 순서이다.# Memory unit ( SRAM 62256 )사용한 메모리는 SRAM 62256으로 총 16비트의 Addresses와 8비트의 I/O 데이터 버스를 가진다.메모리는 메모리 참조 명령어에 의해 BUS의 데이터를 AR에서 지정한 Address에 저장하고, Address에 있는 데이터를 BUS에 출력해준다. 메모리의 데이터 버스는 입출력 공통으로 사용되고 AR과 연결된 Address 핀들이 존재한다.quatus에서 sram을 구현하기 위해 기본으로 주어진 block edit으로 소자를 만들어 역할을 대신했다.메모리 제어를 위해 사용한 명령어 제어식은 다음과 같다.메모리 읽기 : XX ← M [AR] ; XX = registerRead = /RT1+/D7IT3+(D0+D1+D2+D6)T4Read = /OE * WE * /CS메모리 쓰기 : M[AR] ← XXWrite = RT1 + D3T4 + D5T4 + D6T6Write = OE * /WE * /CS제어 신호는 active low로 들어가야 해서 최종적으로 제어 신호가 들어가기 전에 최종 출력단으로 nor 게이트를 사용했다.SRAM의 입력부는 12bit까지만 쓰는데 이는 AR의 출력부에서 12bit만을 보내기 때문이다. 출력부는 메모리가 어느 정도 사용될지 결정하고 늘려주면 되며 여기서는 SRAM 1개의 소자만 사용하여 8bit만을 쓰게 되었다.# ARAR 레지스터는 총 12bit로 되어 있는 레지스터로서 3개의 74LS163을 직렬로 연결하여 설계했다.AR 레지스터는 어드레스를 메모리에 넘겨주는INR (Increase(count) : AR의 값에 1을 증가 시킨다.) : D5T4BUS 연결 ( AR 제어 불필요 ) : D4T4, D5T5 ( BUN, BSA 명령어 )AR은 Load, INR, Clear 신호가 모두 있으므로 각각에 해당하는 제어 논리 게이트를 연결해주었다.D4T4, D5T5는 PC에서 제어해주므로 BUS만 연결했다.# PCPC 레지스터는 총 12bit로 되어 있는 레지스터로서 3개의 74LS163을 직렬로 연결하여 설계했다.PC 레지스터는 프로그램 카운터를 의미하며 다음에 실행되어야 하는 명령어가 저장된 주소를 저장하고 있다.PC 제어를 위해 사용한 명령어 제어식은 다음과 같다.PC_LD : D4T4 + D5T5PC_CLR : RT1PC_INR : R`T1 + RT2 + D6T6/DR + rB4/AC15 + rB3AC15 +rB2/AC + rB1/E + pB9(FGI) + pB8(FGO)BUS : RT0 + R5T4 + R`T0각각의 LD, CLR, INR에 할당된 제어신호를 연결해주고 INR을 보면 DR 데이터 레지스터, AC 레지스터의 신호가 들어와 이를 표시해주었다. 이와 같은 신호들이 들어오는 이유는 PC 레지스터가 INR되기 위한 여러 조건 중 하나만 충족되어도 명령어가 저장된 주소를 쉽게 올릴 수 있기 때문이다.# DRDR 레지스터는 총 16bit로 되어 있는 레지스터로서 4개의 74LS163을 직렬로 연결하여 설계했다.DR은 데이터 레지스터이고 DR 레지스터의 데이터가 AC 레지스터로 들어가기 위해서는 별도의 버스 입력 없이 들어갈 수 있으며 AC 레지스터로 들어가기 전에 ADDER AND LOGIC을 거쳐 들어가게 된다.DR 제어를 위해 사용한 명령어 제어식을 찾아 정리하면 다음과 같다.DR_LD : (D0+D1+D2+D6)T4DR_INR : D6T5CLR : 없음BUS : D2T5 + D6T6 ( LDA, ISZ )각각의 LD, INR에 할당된 제어신호를 연결해 주었다. CLR은 따로 제어 신호가 없기에 VCC로 묶어 : D3T4 + pB11 ( STA, INP )AC 회로에서 AC로 들어오는 BUS는 ALU의 출력이고 AC의 출력은 공통버스와 연결되어 나간다.# ALUALU에 DR과 AC 두 개의 입력이 존재하고 그 출력은 AC의 데이터 입력에 연결되어 있다.ALU는 각각 연산의 조건(AND ADD DR INPR COM SHR SHL)에 따른 연산을 하도록 되어있다.연산이 된 신호는 JK FF를 통해 AC 레지스터에 저장된다.ALU는 16bit이고 1bit 한 단은 아래 그림과 같이 구성되어 있다.1bit 한 단을 16개 병렬로 연결하여 ALU 16bit를 구성할 수 있고 발생하는 Carry는 직렬로 연결되며 OVERFLOW는 E로 연결되어 저장한다. 모두 연결하면 회로 설계가 너무 복잡해지므로 간략하게 FA를 통해 Carry를 연결하였고 그림 하단에 E를 구성했다. 초록으로 표시된 부분에서 E가 받는 것을 표현했다.# E registerE register는 ALU에서의 OVERFLOW를 저장하는 레지스터이며 JK FF의 특성에 맞추어 Active LEVEL에 맞게 신호를 넣어줬다.JK FF을 사용하여 Comp, CLR, LD, Hold를 나타내므로 JK FF의 특성을 확인해주며 회로를 설계하였다.# IRIR 레지스터는 메모리에서 읽어온 명령어를 저장하는 레지스터이다. 주소를 나타내는 12bit, 연산 코드를 나타내는 3bit, 간접 주소인지 직접 주소인지 나타내는 최상위 1bit로 구성되어 있다.IR 레지스터의 0~11번째 데이터는 주소를 나타내며 IR 레지스터의 12~14번째 데이터가 3X8 디코더를 통해 제어신호 D0~D7을 만들어내고 IR 15 데이터가 I에 입력으로 들어가게 된다. I는 Control Logic Gates의 외부에서 들어오는 신호를 만들어냄을 뜻한다.IR 제어를 위해 사용한 명령어 제어식은 다음과 같다.IR_LD : R`T1BUS : R`T2# Sequence CounterSequence Counter는 CLR 제어신호만 있고 LD는 입력이 없으주었다.
    공학/기술| 2024.06.01| 17페이지| 3,000원| 조회(256)
    미리보기
전체보기
받은후기 1
1개 리뷰 평점
  • A+최고예요
    1
  • A좋아요
    0
  • B괜찮아요
    0
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 03일 금요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
6:00 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감