전공 수업 CS/Digital Engineering
[디지털공학] digital design 1장 정리
10진 시스템은 기수가 10이다. 왜냐하면 10진 시스템에서는 10개의 숫자를 쓰며 계수에 10의 멱승을 곱하기 때문이다. 2진 시스템은 기수가 2이며 계수는 0과 1 두 개뿐이다. 기수 5에 대해서 생각해보자. 계수 값은 0, 1, 2, 3, 4만 가능하다. 8진 시스템은 0 -7까지 8개 기수를 갖는다.(여기서 8과 9는 나타나지 않음을 기억해야한다.) 보통 기수가 10 이하인 경우 계수에 소요되는 r개의 숫자를 10진 시스템에서 빌려쓰고 기수가 10 이상 되는 때는 10개의 10진수를 보충하기 위해 알파벳 문자를 쓴다. 예를 들면 16진수가 그 예이다. 0 - 9: 10진 시스템, 10-15: 알파벳 A - F 기수의 변환 다른 기수로 표현된 숫자는 10진수로 바꾸었을 때 같은 값이면 같다고 말할 ..
[디지털공학] 게이트 레벨 최소화하기 | 대수적 방법, 카르노맵(k-map)
이 글은 전공과목 디지털 공학을 복습하며 작성한 글이다. 이렇게 게이트 레벨을 최소화 하는 것이 핵심이다. 최소화가 필요한 이유는 이 글 마지막에 간단히 설명할 것이다. 게이트 레벨을 최소화 하기위한 방법은 2가지가 있다. 1. 대수적인 방법 2, K-map(카르노 맵) 대수적인 방법 이 방법은 논리변수가 많지 않을 때 사용하는 방법이다. 앞에서 배운 공준, 기본정리, 연산방법을 이용해 최대한 함수를 간략하게 만들어야한다. 예를 들어보자 F= x'y'z + x'yz+ x'y (a) 위의 식을 간단하게 해보자 앞에서 배웠던 분배법칙[xy+xz=x(y+z)]과 공준[x+x'=1]를 사용해 식을 간략하게 만들 수 있다. 대부분 이 두가지를 사용하여 식을 간단하게 만든다. F=x'z(y+y')+xy'=x'z+x..
[디지털공학] 함수의 보수와 Canonical form 사이의 변환
이 글은 전공과목 디지털 공학을 복습하며 작성한 글이다. 함수의 보수 보수는 앞에서 1의 보수, 2의 보수등을 들어보았을 것이다. 그것들의 보수의 의미도 보충해주는 수 이다. 집합으로 따지면 여집합을 나타낸다. 이 글에서는 함수의 보수를 다룰 것이다. 1. 함수의 보수란? 함수 F의 보수는 F'이다. 즉, F의 함수값에서 1을 0으로, 0을 1로 바꾸어주면 된다. Truth table에서 예를 들어보자. 이렇게 함수값에서 0과 1을 서로 바꿔주면 보수 관계에 있는 함수이다. 2. 함수의 보수 만들기 함수의 보수를 만들기 위해서는 앞에서 배운 드모르간 법칙을 반드시 알아야한다. (x+y)'=x'y' (xy)'=x'+y' 드모르간 법칙은 중요한 법칙이므로 꼭 알아두어야한다. 보수를 취한는 방법은 2가지가 있..
[디지털공학] Canonical form 그리고 truth table
이 글은 디지털 공학 전공과목을 공부하며 작성한 글이다. Canonical form 1, Sum of minterms(=canonical SOP) 2. product of maxterms(=canonical POS) 정규형 (Canonical form) 어떠한 논리식은 각 논리 변수(또는 그 부정)들의 곱의 합 또는 합의 곱만으로 표현할 수 있ek. 이렇게 표현한 식을 정규형이라고 한다. 이렇게 정규형을 만드는 이유는 여러 가지가 있지만 대부분 게이트의 효율과 관련이 있다. Sum of minterms(=canonical SOP) 1. SOP에서 canonical SOP 만들기 예를 들어보겠다. 3개의 변수를 가진 불 함수를 canonical form으로 만들어보자 F=A+BC' canonical SO..
[디지털공학] 불 함수 관련 용어 정리
이 글은 전공과목 디지털 공학을 공부하며 작성한 글이다. 불 함수와 관련된 용어정리 literal(리터럴, 문자) : 변수 또는 그것의 보수이다. (변수 : a , 보수 : a') ex1) ab' + bc'd + a'd + e' : 8 literals ex2) x'y'z + x'yz + xy' : 8 literals ex3) xy' + x'z : 4 literals product term : 한개 또는 여러개의 literal이 AND(·)로 연결된 것 ex1) x + y + z : 3개의 product terms ex2) x + w'y + wx'y'z + xw : 4개의 product terms ex3) xy' + x'z : 2개의 product terms sum of products(SOP) : 한개 ..
[디지털공학] 부울 대수와 논리게이트 | Boole 대수
Boole 대수 Boole 대수는 다음과 같은 공리를 만족하는 2개의 연산자 (+, *)와 원소들의 집합 B에 대해서 정의된 대수적인 구조다. Boole 대수의 특징 (1) 폐쇄: 연산자 +와 *에 대해서 닫혀있다. (2) 단위원: 연산자 +와 *에 대한 단위원은 각각 0와 1이다. x+0=0+x=x x*1=1*x=x (3) 교환법칙: 모든 x,y∈B 에 대해서 x+y=y+x x*y=y*x (4) 분배법칙: 모든 x,y∈B 에 대해서 x*(y+z)=(x*y) +(x*z) x+(y*z)=(x+y)*(x+z) (5) 보수: 모든 원소 x ∈B 에 대하여 x’ ∈B 원소가 존재하여 x+x’=1 x*x’=0 (6) x!=y를 만족하는 x,y∈B 인 원소가 적어도 2개 이상 존재. Boole 대수의 성질 > 쌍대..
[디지털공학] 그레이코드(GRAY CODE)
아침 막간을 이용한 간단 복습 정리 그레이코드 - 그레이는 검정색도 아니고 흰색도 아닌 그 사이 색인 회색이다. 한 번에 한 비트씩 변화한다. 한 숫자에서 다음 숫자로 넘어갈 떄 단 한 비트만이 변화한다. 오류 검출에도 성능이 괜찮고 아날로그와 디지털 기계에서 사용하는 코드를 서로 변화할 때 사용한다. ㄱ 이진수를 그레이 코드로 바꿀 때는 ㄱ 계산 2 그레이 코드를 이진수로 바꿀 때는 2 계산 그레이 코드는 가중치가 없기 때문에 연산에 사용되지 않고 아날로그와 디지털 사이의 변환에서만 사용한다.
[디지털 공학] 부울식 변환 | 최소항과 최대합 전개 | 일반화
이 글은 전공 과목인 디지털 공학을 복습하며 작성한 글이다. 부울함수에 대한 진리표가 주어지면, 표준 논리곱의 합(최소항 전개)과 표준 논리합의 곱(최대항 전개)의 두 가지 함수의 표준 대수식을 얻을 수 있다. 이들을 간략화하여 AND와 OR 게이트로 이루어진 회로를 구성할 수 있게 된다. 부울식 변환 논리설계 문제는 종종 한 문장 혹은 여러 문장을 사용하여 서술되기도 한다. 논리회로 설계의 첫 단계는 이들 문장을 부울식으로 변환하는 것이다. 이렇게 하기 위해서는 각 문장을 구로 나누고 각 구를 부울변수와 연관시켜야 한다. 어떤 한 구가 "참(true)" 혹은 "거짓(false)"의 진리값을 가진다면 이 구는 부울변수로 나타낼 수 있는데, 이와 같은 구는 참 혹은 거짓일 수 있다. 예를 들어보자. F =..
[디지털공학] 부울대수(불대수)란? | Boolean algebra | 쌍대 , 공리, 공준 | 부울 대수의 주요법칙
이 글은 전공 과목인 디지털 공학 수업을 복습하며 작성하는 글이다. 부울대수 (Boolean Algebra) 대수학 (Algebra)이란 일련의 공리들을 만족하는 수학적 구조들의 일반적인 성질을 연구하는 수학의 한 분야이다. 그 중, 부울대수 (Boolean Algebra)는 참(True), 거짓(False)라는 논리로만 이루어진 대수학이라 할 수 있다. 다들 이미 알다시피 컴퓨터는 0,1 이라는 두개의 숫자만으로 모든 것을 표현한다. True, False라는 논리를 0과 1이라는 두 숫자로 나타낼 수 있기 때문에 부울대수가 컴퓨팅의 기반이 되는 것이다. 논리연산자 - NOT, AND, OR 부울대수를 연산하는 연산자에는 3가지 - NOT, AND, OR - 가 있다. 하나 하나 살펴보도록 하자. NOT..
[디지털 공학] BCD 코드 | Gray 코드 | 아스키코드 | 여러가지 바이너리 코드
이 글은 전공과목인 디지털 공학을 복습하며 작성한 글이다. BCD code 1. BCD code((Binary coded decimal) : 이진수 네 자리를 묶어 십진수 한 자리로 사용하는 기수법이다. BCD code가 필요한 이유 : 컴퓨터는 모든 연산을 2진법을 사용하지만 사람은 10진법에 익숙해져있다. 따라서 2진수를 10진수로, 10진수를 2진수로 바꿔주어야하기 때문에 BCD code가 필요하다. BCD code - 10진수의 각각의 자리를 2진수로 바꿔주면 BCD code가 완성된다. 몇가지 예를 더 들어보면 ex1) (10)10=(0001 0000)BCD ex2) (56)10=(0101 0110)BCD 2. BCD 덧셈 BCD코드를 사용하면 1010~1111 6개의 숫자가 남는다. 그래서 2..