SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
project #6



2-비트 덧셈기 설계

                      A0

                       조장
             20083438 김무경
                       조원
             20063532 조부관
             20073547 홍진욱
             20093447 김도형
             20093489 송하윤
             20093516 장진승
순서




 1.프로젝트 전체일정
       2.업무분담
3.프로그램에 대한 내용
       4.알고리즘
    5.프로그램소스
       6.결과분석
1.프로그램일정
첫 주(6월 4일~9일)

알아야   할 개념에 대하여 공부하고 토의
모르는 내용에 대하여 질문
알고리즘 짜기
프로그램 코딩



2.업무분담
   김무경    회의진행. 보고서 작성


   조부관    boolean expression disjunction of minterms 조사


   홍진욱    프로그램 코딩


   김도형    조사프로그램에 대한 알고리즘


   송하윤    complete set of operations , Karnaugh maps 조사


   장진승    binary device , logic gates 조사
3.프로그램 내용
프로젝트를 하기 위해 공부해야 할 내용



boolean expression

1. 부울 대수의 개념


① 하나의 명제가 참 또는 거짓인가를 판단하는데 이용되는 수학적인 방법
② 이진변수와 논리 동작을 취급하는 대수
③ 부울 대수를 이용하여 기본적인 연산은 NOT연산, AND연산, OR연산 등이 있음


2. 부울 대수의 목적


① 변수 사이의 진리표 관계를 대수 형식으로 표시
② 논리도의 입출력 관계를 대수 형식으로 표시
③ 같은 기능을 가진 더 간단한 회로를 발견할 수 있음


3. 부울 대수의 기본 법칙


⑴ 교환법칙                              ⑵ 결합법칙


① A + B = B + A                      ① (A + B) + C = A + (B + C)
② A · B = B · A                     ② (A · B) · C = A · (B · C)



⑶ 배분법칙                              ⑷ 부정의 법칙
① A · (B + C) = A · B + A · C         ① (A')' = A
② A + (B · C) = (A + B) · (A + C)


⑸ 누승법칙                              ⑹ 흡수법칙
① A + A = A                         ① A + A · B = (A + A) · (1 + B) = A · 1 = A
② A · A = A                         ② A · (A + B) = (A · A) + (A · B) = A + (A ·
B)= (A + A) · (1 + B) = A · 1 = A


⑺ 항등법칙                     ⑻ 보간법칙
① A + 0 = A ② A + 1 = 1        ① A' + A = 1
③ A · 1 = A ④ A · 0 = 0     ② A' · A = 0


⑼ 드모르간(De-Morgan)법칙


① (A + B)' = A' · B'
② (A · B)' = A' + B'




Karnaugh maps

카르노 맵또는 카르노 도표는 복잡한 논리식을 간단히 하기 위해 사용되는 진리표의
2차원적인 표현이며, 일반적으로 2변수 카르노맵, 3변수 카르노맵, 4변수 카르노맵이 사용된다.



카르노 맵은 앞서말한 복잡한 논리식을 간단히하는(간소화하는) 불 대수와 같은 목적으로

이 역시 간소화 하는 작업을 한다는 것이다.




(↑그림 1-1)


위에 있는 그림은 2변수 카르노맵을 그린 것이다.
이것을 읽는 방법은
일단 변수는 X하고 Y 가 있다. ( 변수 2개 )
그리고 각각의 칸을 읽어보면
빨갛게 X'Y'라고 적힌 칸에는 X가 0이고 Y가 0일때는 X'Y' 이다.
또 X'Y라고 적힌 칸에는 X가 0이고 Y가 1일때는 X'Y 이다.
또 XY' 라고 적힌 칸에는 X가 1이고 Y가 0일때는 XY' 이다.
또 XY 라고 적힌 칸에는 X 가 1이고 Y가 1일때는 XY 이다.
참고로 X라는 변수가 1이면 X' 는 0이 된다. 이것은 당연하다. X'는 X의 NOT이기 때문에 X
의 반대이다.


logic gates
1.OR Gate
OR Gate는 일반적으로 더하기 라고 생각 하시면 간단하게 이해 하실수 잇습니다.

그러나 우리가 일반적으로 아는 더하기는 1+1=2 라는 답을 얻을수 있습니다. 하지만 논리식에서의 더하기는…

1+1=1 이라는 결과 값이 나오게 됨니다. 이것만 생각한다면 그리 어렵지 않습니다.

           출
  입력
           력
 A     B   Y
 0     0   0
 0     1   1
 1     0   1
  1 1      1
<진리표>




논리 기호

논리식 : A+B

2.AND Gate
AND Gate 는 일반적으로 곱하기 라고 생각하시면 됨니다.
1*1=1,1*0=0 이러한 결과값이 나오게 됨니다.


           출
  입력
           력
 A     B   Y
 0     0   0
 0     1   0
 1     0   0
 1     1   1




논리식 : A*B
3.NOT Gate
낫게이트. 즉 부정게이트 입니다. 이걸통과한 값은 반전이 되게 되어있습니다.
여기서 반전이란.. 컴퓨터는 참을 0이 아닌 모든수. 거짓을 0이라고합니다. 이때 이 게이트를 통과하게 되면 값
이 1은 0으로 0은 1로 반전되어 나오게 됨니다.

 입   출
 력   력
 A     Y
 0     1
 1     0
<진리표>




               논리 기호


논리식 :

4.NAND Gate                      5.NOR Gate
AND+NOT.                         OR+NOT.

           출
  입력                                       출
           력                      입력
                                           력
 A     B   Y                      A    B   Y
 0     0   1                      0    0   1
 0     1   1                      0    1   0
                                  1    0   0
 1     0   1
                                  1    1   0
 1     1   0




6.EX - OR Gate (배타적    논리 게이트)
서로 같지 않으면 1이 출력됩니다.
           출
  입력
           력
 A     B   Y
 0     0   0
 0     1   1
 1     0   1
 1     1   0
7.EX - NOR Gate (일치              논리 회로)
서로 같으면 1출력.


               출
      입력
               력
  A        B   Y
  0        0   1
  0        1   0
  1        0   0
  1        1   1




                                                     출처: 네이버 블로그
                                                       논리설계 참고서




4.알고리즘
5.프로그램소스

#include <stdio.h>
typedef struct{
           int u;
           int v;
}HalfAdder;
int HalfAdder_u(int x, int y);
int HalfAdder_v(int x, int y);
void HalfAdder_f(HalfAdder *ad, int x, int y);


int main(){


           HalfAdder ad[3];       /// 이쪽 부분을 실행 ->


           int a,b,c,d;


           int e,f,g;
scanf("%d %d %d %d",&a,&b,&c,&d);


    /*합치면 2-bit Adder*/
    /*#region 2-bit Adder Region*/
    /*First half adder*/


    HalfAdder_f(ad[0], a, c);


    /*Second half adder*/


    HalfAdder_f(ad[1], b, d);


    /*Third half adder*/


    HalfAdder_f(ad[2], ad[0].v, ad[1].u);


    /*F*/
    f = ad[2].v;


    /*E*/
    if(ad[0].u == 0 && ad[2].u == 0){
             e = 0;
    }else{
             e = 1;
    }


    /*G*/
    g = ad[1].v;


    printf("e = %d, f = %d, g = %dn",e,f,g);   //// 여기까지 동그라미 안쪽부분 구현


    /*#endregion 2-bit Adder Region*/


}


    /*두개 합치면 하프 애더*/
    /*HalfAdder part u*/
    int HalfAdder_u(int x, int y){
    if(x == 1 && y == 1)
        return 1;
else
                   return 0;
}


/*HalfAdder part v*/
int HalfAdder_v(int x, int y){
        if(x != y)
               return 1;
        else
               return 0;
}


/*합쳐서 HalfAdder*/
void HalfAdder_f(HalfAdder ad, int x, int y){
        ad.u = HalfAdder_u(x,y);
        ad.v = HalfAdder_v(x,y);
}

Mais conteúdo relacionado

Mais procurados

2. c언어의 기본
2. c언어의 기본2. c언어의 기본
2. c언어의 기본SeonMan Kim
 
자료구조 그래프 보고서
자료구조 그래프 보고서자료구조 그래프 보고서
자료구조 그래프 보고서mil23
 
Pure Function and Rx
Pure Function and RxPure Function and Rx
Pure Function and RxHyungho Ko
 
2012 Ds B2 05
2012 Ds B2 052012 Ds B2 05
2012 Ds B2 05chl132435
 
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기Chris Ohk
 
Data Structure - 1st Study
Data Structure - 1st StudyData Structure - 1st Study
Data Structure - 1st StudyChris Ohk
 
이산치수학 Project6
이산치수학 Project6이산치수학 Project6
이산치수학 Project6KoChungWook
 
Model interpretation
Model interpretationModel interpretation
Model interpretationsuman_lim
 
[Why Programs Fail] Deducing Errors, 오류 연역
[Why Programs Fail] Deducing Errors, 오류 연역[Why Programs Fail] Deducing Errors, 오류 연역
[Why Programs Fail] Deducing Errors, 오류 연역종빈 오
 
프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2dktm
 
Pure Function and Honest Design
Pure Function and Honest DesignPure Function and Honest Design
Pure Function and Honest DesignHyungho Ko
 
이산치수학 Project5
이산치수학 Project5이산치수학 Project5
이산치수학 Project5KoChungWook
 
Selection Sort Algorithm(선택 정렬 알고리즘)
Selection Sort Algorithm(선택 정렬 알고리즘)Selection Sort Algorithm(선택 정렬 알고리즘)
Selection Sort Algorithm(선택 정렬 알고리즘)Junyeong Choi
 
[C++ Korea] Effective Modern C++ MVA item 8 Prefer nullptr to 0 and null +윤석준
[C++ Korea] Effective Modern C++ MVA item 8 Prefer nullptr to 0 and null +윤석준[C++ Korea] Effective Modern C++ MVA item 8 Prefer nullptr to 0 and null +윤석준
[C++ Korea] Effective Modern C++ MVA item 8 Prefer nullptr to 0 and null +윤석준Seok-joon Yun
 

Mais procurados (20)

2. c언어의 기본
2. c언어의 기본2. c언어의 기본
2. c언어의 기본
 
자료구조 그래프 보고서
자료구조 그래프 보고서자료구조 그래프 보고서
자료구조 그래프 보고서
 
02_3_여러가지연산자
02_3_여러가지연산자02_3_여러가지연산자
02_3_여러가지연산자
 
Pure Function and Rx
Pure Function and RxPure Function and Rx
Pure Function and Rx
 
2012 Ds B2 05
2012 Ds B2 052012 Ds B2 05
2012 Ds B2 05
 
Ch10
Ch10Ch10
Ch10
 
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
 
Data Structure - 1st Study
Data Structure - 1st StudyData Structure - 1st Study
Data Structure - 1st Study
 
이산치수학 Project6
이산치수학 Project6이산치수학 Project6
이산치수학 Project6
 
Model interpretation
Model interpretationModel interpretation
Model interpretation
 
[Why Programs Fail] Deducing Errors, 오류 연역
[Why Programs Fail] Deducing Errors, 오류 연역[Why Programs Fail] Deducing Errors, 오류 연역
[Why Programs Fail] Deducing Errors, 오류 연역
 
프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2
 
Pure Function and Honest Design
Pure Function and Honest DesignPure Function and Honest Design
Pure Function and Honest Design
 
Equation Solving
Equation SolvingEquation Solving
Equation Solving
 
이산치수학 Project5
이산치수학 Project5이산치수학 Project5
이산치수학 Project5
 
(닷넷, C#기초교육)C#선택적인수, 명명된 인수
(닷넷, C#기초교육)C#선택적인수, 명명된 인수(닷넷, C#기초교육)C#선택적인수, 명명된 인수
(닷넷, C#기초교육)C#선택적인수, 명명된 인수
 
6비트덧셈기
6비트덧셈기6비트덧셈기
6비트덧셈기
 
Selection Sort Algorithm(선택 정렬 알고리즘)
Selection Sort Algorithm(선택 정렬 알고리즘)Selection Sort Algorithm(선택 정렬 알고리즘)
Selection Sort Algorithm(선택 정렬 알고리즘)
 
Ch11
Ch11Ch11
Ch11
 
[C++ Korea] Effective Modern C++ MVA item 8 Prefer nullptr to 0 and null +윤석준
[C++ Korea] Effective Modern C++ MVA item 8 Prefer nullptr to 0 and null +윤석준[C++ Korea] Effective Modern C++ MVA item 8 Prefer nullptr to 0 and null +윤석준
[C++ Korea] Effective Modern C++ MVA item 8 Prefer nullptr to 0 and null +윤석준
 

Semelhante a 2012 Dm A0 06 Pdf

Project#6 2 비트 덧셈기 Hwp
Project#6 2 비트 덧셈기 HwpProject#6 2 비트 덧셈기 Hwp
Project#6 2 비트 덧셈기 HwpKimjeongmoo
 
부울 대수와 컴퓨터 논리
부울 대수와 컴퓨터 논리부울 대수와 컴퓨터 논리
부울 대수와 컴퓨터 논리suitzero
 
입문 Visual SLAM 14강 - 3장 3d rigid body transform
입문 Visual SLAM 14강 - 3장 3d rigid body transform입문 Visual SLAM 14강 - 3장 3d rigid body transform
입문 Visual SLAM 14강 - 3장 3d rigid body transformjdo
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdfjinwookhong
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdfkd19h
 
자바 스터디(6기) 1
자바 스터디(6기) 1자바 스터디(6기) 1
자바 스터디(6기) 1Jina Lee
 
2018 Ajou Programming Contest solutions
2018 Ajou Programming Contest solutions2018 Ajou Programming Contest solutions
2018 Ajou Programming Contest solutions현정 김
 
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)WON JOON YOO
 
1.자료구조와 알고리즘(강의자료)
1.자료구조와 알고리즘(강의자료)1.자료구조와 알고리즘(강의자료)
1.자료구조와 알고리즘(강의자료)fmbvbfhs
 
제4강 명제와 논리-정보
제4강 명제와 논리-정보제4강 명제와 논리-정보
제4강 명제와 논리-정보csungwoo
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본Lee Sang-Ho
 
이산치수학 Project2
이산치수학 Project2이산치수학 Project2
이산치수학 Project2KoChungWook
 
자료구조 프로젝트
자료구조 프로젝트자료구조 프로젝트
자료구조 프로젝트hyungoh kim
 
이산수학 C1 프로젝트 3
이산수학 C1 프로젝트 3이산수학 C1 프로젝트 3
이산수학 C1 프로젝트 3pkok15
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조영기 김
 
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)WON JOON YOO
 
5통신망에서 길 찾기
5통신망에서 길 찾기5통신망에서 길 찾기
5통신망에서 길 찾기herojoon1378
 

Semelhante a 2012 Dm A0 06 Pdf (20)

Project#6 2 비트 덧셈기 Hwp
Project#6 2 비트 덧셈기 HwpProject#6 2 비트 덧셈기 Hwp
Project#6 2 비트 덧셈기 Hwp
 
부울 대수와 컴퓨터 논리
부울 대수와 컴퓨터 논리부울 대수와 컴퓨터 논리
부울 대수와 컴퓨터 논리
 
입문 Visual SLAM 14강 - 3장 3d rigid body transform
입문 Visual SLAM 14강 - 3장 3d rigid body transform입문 Visual SLAM 14강 - 3장 3d rigid body transform
입문 Visual SLAM 14강 - 3장 3d rigid body transform
 
자료구조02
자료구조02자료구조02
자료구조02
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf
 
이산치2번
이산치2번이산치2번
이산치2번
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf
 
자바 스터디(6기) 1
자바 스터디(6기) 1자바 스터디(6기) 1
자바 스터디(6기) 1
 
2018 Ajou Programming Contest solutions
2018 Ajou Programming Contest solutions2018 Ajou Programming Contest solutions
2018 Ajou Programming Contest solutions
 
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
 
1.자료구조와 알고리즘(강의자료)
1.자료구조와 알고리즘(강의자료)1.자료구조와 알고리즘(강의자료)
1.자료구조와 알고리즘(강의자료)
 
제4강 명제와 논리-정보
제4강 명제와 논리-정보제4강 명제와 논리-정보
제4강 명제와 논리-정보
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본
 
이산수학03
이산수학03이산수학03
이산수학03
 
이산치수학 Project2
이산치수학 Project2이산치수학 Project2
이산치수학 Project2
 
자료구조 프로젝트
자료구조 프로젝트자료구조 프로젝트
자료구조 프로젝트
 
이산수학 C1 프로젝트 3
이산수학 C1 프로젝트 3이산수학 C1 프로젝트 3
이산수학 C1 프로젝트 3
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조
 
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
 
5통신망에서 길 찾기
5통신망에서 길 찾기5통신망에서 길 찾기
5통신망에서 길 찾기
 

2012 Dm A0 06 Pdf

  • 1. project #6 2-비트 덧셈기 설계 A0 조장 20083438 김무경 조원 20063532 조부관 20073547 홍진욱 20093447 김도형 20093489 송하윤 20093516 장진승
  • 2. 순서 1.프로젝트 전체일정 2.업무분담 3.프로그램에 대한 내용 4.알고리즘 5.프로그램소스 6.결과분석
  • 3. 1.프로그램일정 첫 주(6월 4일~9일) 알아야 할 개념에 대하여 공부하고 토의 모르는 내용에 대하여 질문 알고리즘 짜기 프로그램 코딩 2.업무분담 김무경 회의진행. 보고서 작성 조부관 boolean expression disjunction of minterms 조사 홍진욱 프로그램 코딩 김도형 조사프로그램에 대한 알고리즘 송하윤 complete set of operations , Karnaugh maps 조사 장진승 binary device , logic gates 조사
  • 4. 3.프로그램 내용 프로젝트를 하기 위해 공부해야 할 내용 boolean expression 1. 부울 대수의 개념 ① 하나의 명제가 참 또는 거짓인가를 판단하는데 이용되는 수학적인 방법 ② 이진변수와 논리 동작을 취급하는 대수 ③ 부울 대수를 이용하여 기본적인 연산은 NOT연산, AND연산, OR연산 등이 있음 2. 부울 대수의 목적 ① 변수 사이의 진리표 관계를 대수 형식으로 표시 ② 논리도의 입출력 관계를 대수 형식으로 표시 ③ 같은 기능을 가진 더 간단한 회로를 발견할 수 있음 3. 부울 대수의 기본 법칙 ⑴ 교환법칙 ⑵ 결합법칙 ① A + B = B + A ① (A + B) + C = A + (B + C) ② A · B = B · A ② (A · B) · C = A · (B · C) ⑶ 배분법칙 ⑷ 부정의 법칙 ① A · (B + C) = A · B + A · C ① (A')' = A ② A + (B · C) = (A + B) · (A + C) ⑸ 누승법칙 ⑹ 흡수법칙 ① A + A = A ① A + A · B = (A + A) · (1 + B) = A · 1 = A ② A · A = A ② A · (A + B) = (A · A) + (A · B) = A + (A ·
  • 5. B)= (A + A) · (1 + B) = A · 1 = A ⑺ 항등법칙 ⑻ 보간법칙 ① A + 0 = A ② A + 1 = 1 ① A' + A = 1 ③ A · 1 = A ④ A · 0 = 0 ② A' · A = 0 ⑼ 드모르간(De-Morgan)법칙 ① (A + B)' = A' · B' ② (A · B)' = A' + B' Karnaugh maps 카르노 맵또는 카르노 도표는 복잡한 논리식을 간단히 하기 위해 사용되는 진리표의 2차원적인 표현이며, 일반적으로 2변수 카르노맵, 3변수 카르노맵, 4변수 카르노맵이 사용된다. 카르노 맵은 앞서말한 복잡한 논리식을 간단히하는(간소화하는) 불 대수와 같은 목적으로 이 역시 간소화 하는 작업을 한다는 것이다. (↑그림 1-1) 위에 있는 그림은 2변수 카르노맵을 그린 것이다. 이것을 읽는 방법은 일단 변수는 X하고 Y 가 있다. ( 변수 2개 ) 그리고 각각의 칸을 읽어보면 빨갛게 X'Y'라고 적힌 칸에는 X가 0이고 Y가 0일때는 X'Y' 이다.
  • 6. 또 X'Y라고 적힌 칸에는 X가 0이고 Y가 1일때는 X'Y 이다. 또 XY' 라고 적힌 칸에는 X가 1이고 Y가 0일때는 XY' 이다. 또 XY 라고 적힌 칸에는 X 가 1이고 Y가 1일때는 XY 이다. 참고로 X라는 변수가 1이면 X' 는 0이 된다. 이것은 당연하다. X'는 X의 NOT이기 때문에 X 의 반대이다. logic gates 1.OR Gate OR Gate는 일반적으로 더하기 라고 생각 하시면 간단하게 이해 하실수 잇습니다. 그러나 우리가 일반적으로 아는 더하기는 1+1=2 라는 답을 얻을수 있습니다. 하지만 논리식에서의 더하기는… 1+1=1 이라는 결과 값이 나오게 됨니다. 이것만 생각한다면 그리 어렵지 않습니다. 출 입력 력 A B Y 0 0 0 0 1 1 1 0 1 1 1 1 <진리표> 논리 기호 논리식 : A+B 2.AND Gate AND Gate 는 일반적으로 곱하기 라고 생각하시면 됨니다. 1*1=1,1*0=0 이러한 결과값이 나오게 됨니다. 출 입력 력 A B Y 0 0 0 0 1 0 1 0 0 1 1 1 논리식 : A*B
  • 7. 3.NOT Gate 낫게이트. 즉 부정게이트 입니다. 이걸통과한 값은 반전이 되게 되어있습니다. 여기서 반전이란.. 컴퓨터는 참을 0이 아닌 모든수. 거짓을 0이라고합니다. 이때 이 게이트를 통과하게 되면 값 이 1은 0으로 0은 1로 반전되어 나오게 됨니다. 입 출 력 력 A Y 0 1 1 0 <진리표> 논리 기호 논리식 : 4.NAND Gate 5.NOR Gate AND+NOT. OR+NOT. 출 입력 출 력 입력 력 A B Y A B Y 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 6.EX - OR Gate (배타적 논리 게이트) 서로 같지 않으면 1이 출력됩니다. 출 입력 력 A B Y 0 0 0 0 1 1 1 0 1 1 1 0
  • 8. 7.EX - NOR Gate (일치 논리 회로) 서로 같으면 1출력. 출 입력 력 A B Y 0 0 1 0 1 0 1 0 0 1 1 1 출처: 네이버 블로그 논리설계 참고서 4.알고리즘 5.프로그램소스 #include <stdio.h> typedef struct{ int u; int v; }HalfAdder; int HalfAdder_u(int x, int y); int HalfAdder_v(int x, int y); void HalfAdder_f(HalfAdder *ad, int x, int y); int main(){ HalfAdder ad[3]; /// 이쪽 부분을 실행 -> int a,b,c,d; int e,f,g;
  • 9. scanf("%d %d %d %d",&a,&b,&c,&d); /*합치면 2-bit Adder*/ /*#region 2-bit Adder Region*/ /*First half adder*/ HalfAdder_f(ad[0], a, c); /*Second half adder*/ HalfAdder_f(ad[1], b, d); /*Third half adder*/ HalfAdder_f(ad[2], ad[0].v, ad[1].u); /*F*/ f = ad[2].v; /*E*/ if(ad[0].u == 0 && ad[2].u == 0){ e = 0; }else{ e = 1; } /*G*/ g = ad[1].v; printf("e = %d, f = %d, g = %dn",e,f,g); //// 여기까지 동그라미 안쪽부분 구현 /*#endregion 2-bit Adder Region*/ } /*두개 합치면 하프 애더*/ /*HalfAdder part u*/ int HalfAdder_u(int x, int y){ if(x == 1 && y == 1) return 1;
  • 10. else return 0; } /*HalfAdder part v*/ int HalfAdder_v(int x, int y){ if(x != y) return 1; else return 0; } /*합쳐서 HalfAdder*/ void HalfAdder_f(HalfAdder ad, int x, int y){ ad.u = HalfAdder_u(x,y); ad.v = HalfAdder_v(x,y); }