Section 02 덧셈 회로 BCD 덧셈 회로 BCD 코드에서 십진수 (16)BCD = 0001 0101.

Slides:



Advertisements
Similar presentations
채소야 놀자 : 브로콜리.  겨자과에 속하는 짙은 녹색채소로 ‘ 녹색 꽃양 배추 ’ 라고도 불립니다.  샐러드, 스프, 스튜 등 서양음식에 가장 많이 사용하는 채소 중 하나입니다.  구입 시, 송이가 단단하면서 가운데가 볼록 하게 솟아올라 있고 줄기를 잘라낸 단면이.
Advertisements

내 마음의 버 스 이천신하교회 청년부. 이름 : 한상훈 나이 : 30 살 종교 : 기독교 ( 모태신앙 ) 생활신조 : 인생은 한방 ! 로또나 사자 이상형 : 청순 가련한 모태미녀 특이사항 : 걸그룹 노래에 환장함 식스팩을 갖기엔 슬픈 몸을 타고 남.
독서골든벨 2009 학년도 6 학년 1 학기 6-10 반. 1. 이야기 삼국유사 정대한 원효대사는 수행을 위해 떠나던 중 피곤하여 숲 속에서 잠이 들었다. 잠결에 너무 목이 마른 나머지 어디에 담겨있는 물을 맛있게 마셨나요 ?
3. 자료형. 담당교수 : 이 성 우 C++ 프로그래밍 상수와 변수 (3) 1. 변수 (variable)  프로그램 수행 도중에 자료  변수를 위해 은 변하지 않음  선언 시에 반드시 그. ※ 저장 정보의 구성 ① 정보의 종류 ② 저장 값 ③ 저장 위치 int Num.
두 손 들고 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 오직 주만이 나를 다스리네 오직 주만이 나를 다스리네 나 주님만을.
내 손 내 손과 친구 손을 그려보세 요. 주제 : 유치원과 친구 활동명 : 친구 손과 내 손 친구 손.
제4장. 어린이집에서의 식사관리 아동영양학 창원대학교 식품영양학과 문혜경. Ⅰ. 영유아를 위한 식사관리 영양관리 ( 식사관리 ) 란 급식 목적에 맞는 적정한 영양 공급을 통해 급식 대상자의 정신적‧ 육체적 건강을 유 지하기 위해 시행되며 주로 영양계획의 수립과 이에 의한.
1. 2 과학의달, 장애인의날 (20), 책의날 (23) - 과학의 달이나 장애인의 달을 맞이해서 함께 읽으면 좋을 책 목록을 제공 ( 식목일의 경우에는 식물도감이나, 식물관련 책 목록을, 과 학의 달에 맞는 학년 별 권장도서 목록을, 장애인이 날에 는 장애인과 관련된.
지금은 기도 하는 시간입니다 1. 송구영신예배를 위해서 2. ‘크리스마스 이브’ 행사를 준비하는 교육 기관을 위하여
나를 지키고, 침착하게 대처하려면, 반드시 익혀야 하는

CRC 세미나 <제 61 차> IRB 업무 관련 문서의 이해 3 · 연자 : 김지예
VHDL Package & Subprogram
VHDL 프로그램은 비동기 Reset을 갖는 D 플립플롭을 구현한 것이다
ASIC의 개요 ASIC(Application Specific Integrated Circuit) 특정 용도 주문형 집적회로
현대사회의 여성문제와 여성복지 3조 권경욱 강향원 황대인 변갑수 박창욱 김지현.
Design of Digital Clock (디지털 시계의 설계)
Understanding of Multimedia
고교평준화의 득과 실 김영주 이지영 최윤영.
디지털 시스템 2010년 1학기 교수: 송상훈 연구실: 율곡관 603-B
7 조합논리회로 IT CookBook, 디지털 논리회로.
디지털 산술과 연산회로.
가산기 설계.
3 디지털 코드 IT CookBook, 디지털 논리회로.
VHDL의 기본 Lecture #5.
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
VHDL Description D-latch C=1 일 때 Q 는 D의 입력 값 이 전달된다.
신호등 제어기 차량의 흐름에 따라 신호등의 신호를 제어하는 장치 신호등 제어기의 입출력 신호
VHDL Package and Sub program
Chap. 18 라인 트레이서의 설계 라인 트레이서 바닥에 그려진 선을 따라가는 로봇을 의미 라인 트레이서 구성도
Watch VHDL을 이용한 다용도 시계 다른 사람의 지적 재산권을 침해 하지 않았다..
Ch2-2. VHDL Basic VHDL lexical element VHDL description
존슨카운터의 동작을 설명·설계할 수 있다 링카운터의 동작을 설명·설계할 수 있다
학습 목표 반가산기, 전가산기, 고속가산기의 동작을 이해하고 설계하는 방법을 알아본다.
VHDL의 기본 Lecture #4.
Data type and Object 자료형 변환 함수들은 std_logic_arith 패키지에 정의되어 있음.
Quartus 를 이용한 ROM 설계 ROM table 의 작성
                                  3장 가산회로 게이트를 이용한 2진 가산회로의 동작 원리 특성 1 비트 반 가산기, 전 가산기, 4비트 전 가산기 회로.
FSM 설계.
Unit 1 Number Systems and Conversion (수의 체계와 변환)
2010년 직원연수 자료 제1차 : 4월 16일 ~ 17일 제2차 : 4월 23일 ~ 24일
2 데이터 표현과 컴퓨터 연산 IT CookBook, 컴퓨터 구조와 원리 2.0.
오브젝트 하드웨어 기술 언어 IT CookBook, VHDL을 이용한 디지털 회로 입문.
Programmable Logic Device
프랑스 워크 캠프를 다녀와서 By 이수경 Powerpoint Templates.
adopted from KNK C Programming : A Modern Approach

예산결산 1.
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
나이스 진로정보 초‧중‧고 연계 서비스 안내 (수) 한국교육학술정보원 교육행정부 김지광 선임연구원
논리회로 설계 및 실험 3주차.
VHDL 디지털시계 2.
가산기 설계.
천연비누 만들기 체험하는 사람들.
디 지 털 공 학 한국폴리텍V대학.
디지털 시계 설계 장성락 전영진 임종엽 전보현 이형준.
자동 매크로 만들기 매크로 실행하기 매크로 편집하고 응용하기
디지털회로설계_강의안5 7. 가산기와 감산기 회로.
컴퓨터 계측 및 실습 로터리 엔코더 영남대학교 기계공학부.
유스비전헬퍼스 ( 유비해(Y.V.H) 유스비전헬퍼스 (
엑셀의 특징 엑셀의 설치 엑셀의 시작과 종료 엑셀의 화면구성
원소재유상사급 시스템 사용자 메뉴얼 주식회사 경창
전류는 자계에서 힘을 받는다 기계공학교육 박지훈 황인석 한만혁 이덕균.
“알콜중독자 대상 심리안정 프로그램”.
Report #4 (1) (due 4/4) 문제 #1 3개의 막대 A, B, C와 원판 n개를 전달받아 Hanoi 탑 문제를 해결하는데 필요한 원판의 이동 회수를 구하여 반환하는 hanoi_tower(n, A, B, C)를 작성하라. 여기서 원판 n은 막대 A에 쌓여 있고.
Introduction to Computer System 컴퓨터의 이해 3: 데이터 표현
10장. 컴퓨터 구조에 대한 세 번째 이야기 작성자: 윤성우.
나-는 믿음으로 주 얼굴 보리니- 아침에 깰 때에 주형상에 만족하리 나주님 닮기 원하네 믿음으로 주얼굴 보리라 -
VHDL 응용 Lecture #10.
매스펀 문제 2.
Presentation transcript:

Section 02 덧셈 회로 BCD 덧셈 회로 BCD 코드에서 십진수 (16)BCD = 0001 0101

Section 04 BCD 코드 BCD(Binary Coded Decimal) 코드 2진화 10진 코드라고 함 디지털 회로에서 10진수를 처리 할때 사용 10진수 (100)10을 BCD 코드로 변환하라. Tip) 상위 3비트 ‘0’을 생략하지 않도록한다. = (0001 0000 0000)BCD

Section 03 8진수와 16진수 10진수, 2진수, 8진수, 16진수에 대한 대조표

Section 02 덧셈 회로 2진 덧셈 결과가 16 이상일 경우에는 자리올림수가 ON이 되기 때문에 카르노 맵에서 구한 논리식에 [CY_OUT]을 OR함으로써 보정 조작을 위한 신호를 생성 (2진 덧셈결과의 10-15와 자리올림 16-19) 보정을 위한 신호의 논리식

Section 02 덧셈 회로 Revice : 보정출력단 신호

BCD 덧셈 회로의 VHDL 기술 Section 02 덧셈 회로 첫째단의 4비트 덧셈 회로의 출력(2진 덧셈 결과)은 [S] 첫째단의 4비트 덧셈 회로의 자리올림수 출력은 [CY_OUT] 보정 검출 회로의 출력은 [REVICE] 둘째단의 4비트 덧셈 회로의 B입력은 [ADDER1_BIN]

Section 02 덧셈 회로

Section 02 덧셈 회로 시뮬레이션 결과 (500[ns]부분) BCD 덧셈 회로의 입력 [A]= [9], [B]= [5], [CIN]=‘1’ 첫째단의 4비트 덧셈 회로의 [S]= [15], [CY_OUT]=‘0’ 보정 검출 회로의 출력 [REVICE]=‘1’ 둘째단의 4비트 덧셈 회로의 입력 [A]= [15], [B]= [6], [CIN]=‘0’ BCD 덧셈 회로의 덧셈 결과는, 10진수로 생각하면 [21], 2진수에서는 "10101"이므로, [BCD_COUT]=‘1’, [BCD_SUM]= [5]

Section 02 덧셈 회로

Section 02 덧셈 회로

Section 03 전가산기를 사용한 뺄셈회로 상위 비트에서 빌린 것(빌림수)을 가지고 다음 비트의 값을 뺄셈해 나가기 때문에, 4비트의 2진수 뺄셈 회로는 4개의 전감산기를 사용 4비트 뺄셈 회로의 VHDL 기술 (DIF=A-B-BIN, BR_OUT은 자리빌림)

Section 02 덧셈 회로 전가산기를 사용한 덧셈 회로와 전감산기를 이용한 뺄셈회로 비교

Section 03 전가산기를 사용한 뺄셈회로 600[ns]까지는 B=[0], BIN='0'이기 때문에 [A] 값이 그대로 [DIF]에 출력 600[ns]에서 A=[15], BIN='1'이기 때문에 BOUT='0', S=[14] 700[ns]에서는 [15-5-1(BIN)]로 BOUT='0', DIF=[9] 800[ns]에서는 [0-10]으로 BOUT='1', S=[6]

Section 03 전가산기를 사용한 뺄셈회로

Section 04 보수를 사용한 덧셈 뺄셈 회로 뺄셈 : A-B는 A에 B의 2의 보수를 더해서 구할 수 있음 [2의 보수]는 [1의 보수]에 [1]을 더해서 구할 수 있고, (01101)의 2의 보수는 (10010)+1 = (10011) [1의 보수]는 각 비트 자리의 '1'/'0'을 반전시킴으로써 구할 수 있음 (01101)의 1의 보수는 (10010) 덧뺄셈 동작 선택을 위해 EXOR 회로에서 제어신호인 [SUB]를 사용. 1의 보수의 입력 [SUB]='0' → 덧셈 동작 → 입력 [B]는 반전 불필요 [SUB]='1' → 뺄셈 동작 → 입력 [B]를 반전 2의 보수의 입력 4비트 덧셈 회로 [Adder4]의 [CY_IN]에 '1'을 접속 이 조작은 [B]를 반전했을 때, 즉, 뺄셈일 때만 필요한 조작이기 때문에 [CY_IN]에 [SUB]를 접속

Section 04 보수를 사용한 덧셈 뺄셈 회로

Section 04 보수를 사용한 덧셈 뺄셈 회로 보수를 이용한 덧셈뺄셈 회로의 VHDL 기술

Section 04 보수를 사용한 덧셈 뺄셈 회로

Section 04 보수를 사용한 덧셈 뺄셈 회로

Section 04 보수를 사용한 덧셈 뺄셈 회로 시뮬레이션 결과 300[ns]까지는 A= [0]이기 때문에 [B]값이 그대로 [ANS]에 출력 300[ns]에서는 A= [7], B= [7]이므로 [7+7=14]가 되지만, [ANS]에 표시되는 결과는 [-2]가 되는데 오버플로우가 발생 4비트로 표현할 수 있는 유부호 수치는 최대 +7까지이므로 그 이상의 값은 정상적으로 표현되지 않음 800[ns]에서는 A= [-7], B=[7], SUB='1'이므로 [-7-7=-14]가 되지만, [ANS]에 표시되는 결과는 [-2]가 되는데 오버플로우가 발생 4비트로 표현할 수 있는 유부호 수치는 최하 -8까지이므로 그 이하의 값은 정상적으로 표현되지 않음 1100[ns]에서는 A= [0], B=[-8], SUB='1'이므로 [0-(-8)=8]이 되지만, [ANS]에 표시되는 결과는 [-8]이 되는데 오버플로우가 발생 4비트로 표현할 수 있는 유부호 수치는 최대 +7까지 이므로 그 이상의 값은 정상적으로 표현되지 않음

Section 04 보수를 사용한 덧셈 뺄셈 회로 integer 형 변수에 의한 VHDL 기술

Section 04 보수를 사용한 덧셈 뺄셈 회로 integer 형 변수에 의한 VHDL 기술

Section 05 unsigned와 signed 연산 회로의 VHDL 기술에서는 2의 보수를 사용한 부호를 포함한 수치를 대상으로 할 경우와 부호를 포함하지 않는 수치를 대상으로 할 경우와는 다르기 때문에 주의가 필요 std_logic_vector 형으로 산술 연산을 할 때 부호 비트가 없는 연산을 한다면 use 문으로 패키지 [std_logic_unsigned]를 호출하고, 부호 비트를 추가하여 연산하면 패키지 [std_logic_signed]를 호출하는 것에 주의 2개의 패키지를 양쪽 모두 동시에 호출할 수 없음 부호 비트를 추가한 값과 부호 비트가 없는 값이 혼재할 경우에는 패키지 [std_logic_arith]를 호출

Section 05 unsigned와 signed

Section 05 unsigned와 signed ①: std_logic_vector를 unsigned로 덧셈 및 뺄셈을 할 경우에는 단순하게 비트끼리의 연산 ②: std_logic_vector를 signed로 덧셈 및 뺄셈을 할 경우에도 단순하게 비트끼리의 연산 단, 좌변과 우변의 비트 길이가 다를 경우에는 리스트 9.30의 *2와 같이 부호 확장이 필요 그림 9.31 : std_logic_vector를 unsigned로 덧셈했을 경우와 signed로 덧셈했을 경우 우변의 각 값의 비트수가 다를 경우는 unsigned와 signed로 동작이 다름 unsigned의 경우(그림 9.32) : 가장 큰 값의 비트수가 되도록 비트가 부족하고 있는 부분에 '0'을 부가 signed의 경우(그림 9.33) : 가장 큰 값의 비트수가 되도록 비트가 부족한 부분을 부호 확장

Section 05 unsigned와 signed

Section 05 unsigned와 signed ③,④: integer를 덧셈 및 뺄셈할 경우에는 unsigned에서도 signed에서도 단순하게 비트끼리 연산 ⑤: unsigned의 경우 [-연산자]에 의해 std_logic_vector를 부호 반전하면 오류가 발생 [A]가 std_logic_vector일 때, TEMP <= -A; 라고 기술할 수 없음 ⑥: signed의 경우에는 [-연산자]에 의해 std_logic_vector를 부호 반전할 수 있음 예를 들어, [A], [B]가 4비트이고 [B]가 [-6(“1010”)]일 때 A <= -B; 라고 기술하면 [A]에는 “0110”, 즉 [6]이 대입 좌변과 우변의 비트수가 다를 경우 부호 확장을 기술할 필요가 있음 예를 들어, [A]가 5비트이고 [B]가 4비트일 때 [A <= -B;]라고 기술한 것은 오류 발생  [A <= -('0' & B);]라고 기술하면 [B]가 [-6("1010")]일 때 [A]는 "10110", 즉, [-10]이 됨 부호 확장을 정확하게 기술하면, A <= -(B( 3 )& B); 가 되며, [A]에는 "00110", 즉, [6]이 대입 또, 부호 비트가 있는 값과 부호 비트가 없는 값이 혼재할 경우에 패키지 [std_logic_arith]를 호출했을 때에는, <= - signed (B( 3 )& B); 라고 기술

Section 05 unsigned와 signed ⑦, ⑧: integer의 경우에는, unsigned, signed 모두에서 [-연산자]에 의해 부호 반전 ⑨: unsigned의 경우에는, std_logic_vector, integer 모두에서, if 문 등의 조건식의 literal 값은 +값에 대해서만 유효 예를 들어, [A]가 4비트인 경우, unsigned로 [A]가 취할 수 있는 값은 [0]~ [+15]이기 때문에, if 문으로 아래의 경우 순차문 1은 실행안되고 2만 실행된다. if (A < 0) then 순차문1; else 순차문2; end if; ⑩: 비트가 있는 값과 부호 비트가 없는 값이 혼재할 경우에 패키지 [std_logic_arith]를 호출했을 때 unsigned에서는 if (unsigned (A) < 0) then signed에서는 if (signed (A) < 0) then 와 같이 기술한다.

Section 05 unsigned와 signed conv_integer 함수로 std_logic_vector 형을 integer 형으로 변환하면 부족한 비트에 '0'을 추가해서 변환 integer의 비트 길이는 32비트인 것에 주의 (그림 9-34) ⑫: signed의 경우 conv_integer 함수로 std_logic_vector 형을 integer 형으로 변환하면 부호 확장을 포함해서 변환 (그림 9-35) 부호 비트가 있는 값과 부호 비트가 없는 값이 혼재할 경우에 패키지 [std_logic_arith]를 호출했을 때는, unsigned에서는 TEMP <= conv_integer (unsigned (A)); signed에서는 TEMP <= conv_integer (signed (A)); 로 기술한다. ⑬, ⑭: conv_std_logic_vector 함수로 integer 형을 std_logic_vector 형으로 변환하면 unsigned에서도 signed에서도 정해진 비트 수로 잘라서 std_logic_vecor 형으로 변환

Section 05 unsigned와 signed