42
보안 회로 설계 조합 논리 회로 Dong Kyue Kim Hanyang University [email protected]

보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

보안 회로 설계

조합 논리 회로

Dong Kyue Kim

Hanyang University

[email protected]

Page 2: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

디지털 논리 회로

Page 3: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Analog란?

• 아날로그(analog)의 신호와 자료는 연속적인 물리량으로 나타낸 것이다.

• 우리가 거시적인 자연에서 얻는 신호는 대개 아날로그이다.

• 이를테면, 빛의 밝기, 소리의 높낮이나 크기, 바람의 세기 등이 있다.

3

TextVoiceVideoImage

Encoder

Analog

Page 4: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Digital 이란?

• 디지털(Digital)은 아날로그의 반대되는 개념으로 자료를 연속적인 실수가 아닌, 특정한 최소 단위를 갖는 이산적인 수치를 이용하여 처리하는 방법을 말한다.

4

TextVoiceVideoImage

Encoder

Digital

Page 5: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

조합과 순차

• 조합 회로(combinational circuit)

– Memory가 없다.

– 입력한 값에 따른 출력

• 출력 = f (입력)

• 순차 회로(sequential circuit)

– Memory가 있다.

– Memory에는 회로의 현 상태가 저장

– 출력은 입력과 현 상태에 의해 결정

• (출력, 다음 상태) = f (입력, 상태)

5

Page 6: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

논리회로 설계란?

• 기능이 주어질 때, 그 기능을 논리 소자(하드웨어)로 구현하는 것– 기능의 표현(뭘 하는 회로인가?)

• 문장, 말, pseudo code, program

• 진리표

• 카르노 맵

• minterm의 합, maxterm의 곱

• FSM

• BDD, 등등등…

– 구현 방법• 논리 회로 설계에서는 논리 게이트를 서로 연결하여 회로망을 형성하여 구현

• 하나의 기능을 구현하는 논리 회로는 많이 있다. 그 중 최적을 구하는 것이 중요

6

Page 7: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Design Levels

7

+

SYSTEM

MODULE

GATE

CIRCUIT

DEVICE

n+

S D

n+

G

VoutVin

Page 8: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

설계의 단계

• 시스템 단계(board-level)

• 칩 단계 (chip-level)

• 모듈 단계 (module-level)

• 게이트 단계 (gate-level)

• 회로 단계 (circuit-level)

• 트랜지스터 단계 (transistor-level)

8

Computer ArchitectureMicroprocessor

Logic Design

전자회로

VLSI/SoC 설계

Page 9: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

음수의 표현

Page 10: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

음수의 표현

10

Page 11: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• 2’s Complement 의 표현 방법에서 음수 -N 의 표현은 2의 보수

으로 표시된다. n 비트 word에서 양의 정수 N에 대한 2의 보수

은 다음과 같이 정의된다.

2

4

110012416

42*4)4(

==−=

−==−

2

4

1000016

02*0)0(

==

−==−

음수의 표현 (2’s Complement Number)

11

10008

10017

10106

10115

11004

11013

11102

11111

'2

numberPositive

Complements

number

Negative

NN n −= 2*

*N

*N

Page 12: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• 1’s Complement 수를 만드는 또 다른 방법은 단순히 K을 비트 별로(bit by bit) 0은 1로 1은 0으로 대체하여 보수를 취하는 것이다.

– 예를 들어 word가 6비트이고, K=010101(21)인 경우

• 2’s Complement 수를 만드는 또 다른 방법은 1’s Complement 를 취한 후 1을 더해 구할 수 있다.

– 예를 들어 N=0101100(44)인 경우

음수의 표현

12

10101001010121)21( ===−

11)12(2* +=+−−=−= NNNN nn

*101010010100110101100 NN =→→=

Page 13: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

논리 소자

Page 14: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• NOT 연산

– NOT의 또 다른이름을 inverse이라고 한다. Boolean variable x의Inverse을 나타내는 전자회로는 inverter이다. Inverter의 기호는 다음과 같다.

– 논리 0이 낮은 전압이라하고 논리 1이 높은 전압이라고 하면, Inverter 입력에서의 낮은 전압은 그 출력에서는 높은 전압으로 나타나고, 그 반대도성립한다.

Basic Operations

14

X X

Page 15: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Basic Operations

• AND 연산

– A와 B가 1일 때만 C=1가 된다. AND 연산을 수행하는 Logic Gate는다음과 같이 표시한다.

– “ ”기호는 Boolean expression에서는 일반적으로 생략하여A B 대신 AB로 표기한다.

15

ABAC =

B

Page 16: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• OR 연산

– A 또는 B가 1일 때 C=1가 된다. OR 연산을 수행하는 Logic Gate는 다음과 같이 표시한다.

– OR 연산을 내포적 OR(Inclusive-OR)라고도 한다.

Basic Operations

16

ABAC +=

B+

Page 17: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• Exclusive-OR 의 연산

• Exclusive-OR 의 Truth table

– Boolean variable X, Y의 값이 서로 다를 경우 Exclusive-OR의 결과가1이고 같을 경우 결과가 0이다.

– Exclusive-OR은 AND와 OR gate를 이용해 다음과 같이 쓸 수 있다.

Exclusive-OR and Equivalence Operations

17

011101

110000

==

==

011

101

110

000

YXYX

YXYXYXYXXYYXYX +=++=+= ))(())((

Page 18: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Exclusive-OR and Equivalence Operations

• Exclusive-OR의 gate symbol

• Exclusive-OR에 대한 정리

18

YXYXYX +=X

Y

YXXYYXYXYX

XZXYZYX

ZYXZYXZYX

XYYX

XXXX

XXXX

+===

=

==

=

==

==

)(

)(

)()(

1 0

1 0

Page 19: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Multiplexer

• Multiplexer (데이터 선택기, MUX )

– 데이터 입력과 제어 입력으로 구성된 소자.

– 제어 입력은 데이터 입력 중에서 하나를 선택하여 출력단과 연결하는 역할을 한다

– 2-to-1 multiplexer 및 등가 스위치

19

0 1'Z A I AI= +

Page 20: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• 여러 가지 multiplexer들

Multiplexer

20

3210 ABIIBABIAIBAZ +++=

7654

3210

ABCIICABCIBAICBA

BCIAICBACIBAICBAZ

++++

+++=

=

=12

0

n

k

kk ImZ

Page 21: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• 작은 MUX를 이용한 큰 MUX의 구현

Multiplexer

21

0

1

0

1

f 0

1

2-to-1 MUX를 이용한 4-to-1 MUX

0s1s

0w

1w

2w

3w

f

16-to-1 MUX

0s1s

0w

3w

4w

7w

8w

11w

12w

15w

3s2s

Page 22: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• Truth table와 MUX와의 관계

– MUX로 어떤 함수도 만들 수 있다.

Multiplexer

22

Truth table Graphic symbol

1s 1s

0w

1w

2w

3w

f

00

01

10

11

0s1s

0w

1w

2w

3w

f

Page 23: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Adder and Subtractor

Page 24: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Design of Binary Adders

• Parallel adder의 설계

– 2개의 4비트 unsigned 2 진수와 carry 입력을 더하여 4비트 sum과carry 출력을 갖는 parallel adder를 설계하고자 한다.

– 하나의 접근 방법은 9개의 입력과 5개의 출력을 갖는 truth table을 작성하고, 5개의 출력 식을 구하고 simplifying하는 것이다.

• 이 방법은 매우 어렵고 논리 회로도 매우 복잡할 수 있다.

24

4bitparallel adder

00112233 BA BA BA BA

0123 S S S S

4C 0C

Page 25: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• Parallel adder의 설계

– 또 다른 방법은 2개의 1비트 입력과 1개의 carry를 더하는 logic module을 설계하고 아래 그림과 같이 4비트 Adder를 구성하기 위해 이들 모듈4개를 연결하는 것이다.

– 여기서 각 모듈을 Full adder라고 한다.

Design of Binary Adders

25

FullAdder

00112233 BA BA BA BA

0123 S S S S

4C 0CFull

AdderFull

AdderFull

Adder

3C2C 1C

Page 26: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

실습 1

Page 27: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• Full Adder의 설계

– 3개의 입력과 2개의 출력으로 구성됨.

Design of Binary Adders

27

A Y Cin Cout Sum

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

BA

Sum

inCFull

AdderoutC

Page 28: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Design of Binary Adders

28

( 1, 2, 4, 7 )

( ) ( )

( ) ( )

( 3, 5, 6, 7 )

in in in in

in in in in

in in

in

out

in in in in

in in in

Sum m

X Y C X YC XY C XYC

X Y C YC X Y C YC

X Y C X Y C

X Y C

C m

X YC XY C XYC XYC

X YC XYC XY C XYC

=

= + + +

= + + +

= +

=

=

= + + +

= + + +

( ) ( ) ( )

in in in

in in in in

in in

XYC XYC

X X YC Y Y XC XY C C

YC XC XY

+ +

= + + + + +

= + +

XYCin

Sum

X

X

Y

Y

Cin

Cin

Cout

Page 29: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• 실습 1. Full Adder

– day3 폴더에 프로젝트 생성

– full_adder.v 파일 생성

– full_adder 모듈 생성

– full_adder 입출력 상세

• 1-bit input의 a

• 1-bit input의 b

• 1-bit input의 cin

• 1-bit output의 result

• 1-bit output의 cout

Design of Binary Adders

29

Page 30: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Design of Binary Adders

30

Page 31: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

실습 2

Page 32: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• 실습 2. 32-bit Serial Adder (Ripple Carry Adder)

– serial_adder_32bit.v 파일 생성

– serial_adder_32bit 모듈 생성

– serial_adder_32bit 입출력 상세

• 32-bit input의 a

• 32-bit input의 b

• 1-bit input의 cin

• 32-bit output의 result

• 1-bit output의 cout

– 앞에서 만든 full_adder 모듈 32개 이용

Design of Binary Adders

32

Page 33: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Design of Binary Adders

33

Page 34: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Design of Binary Adders

• Ripple Carry Adder 단점

– 첫 번째 full adder에서 발생한 carry가 최종 full adder로 전파되기 때문에 비트 수가 큰 경우에는 덧셈 결과가 느림

34

001122 BA BA BA

012 S S S

0CFull

AdderFull

AdderFull

Adder

3C2C 1CFull

Adder1nC +

nnBA

nS

nC

Page 35: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Design of Binary Adders

• Carry-look-ahead adder

– Carry 값을 미리 계산하는 logic을 포함한 adder

35

FullAdder

00112233 BA BA BA BA

0123 S S S S

4C

0CFull

AdderFull

AdderFull

Adder

3C2C 1C

4-bit carry look-ahead block

Page 36: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

실습 3

Page 37: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Design of Binary Subtractors

• Full adder를 이용한 부호화 연산

– 4 비트 가산기의 B가 음수일 경우 보수 형태로 변환된 수가 입력되면 됨

– 2의 보수를 사용하는 경우

• B는 역수

• 𝐶0 = 1

37

FullAdder

A3B′3 A2B′2 A1B′1 A0B′0

0123 S S S S

4C 1Full

AdderFull

AdderFull

Adder

3C2C 1C

Page 38: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• 실습 3. 32-bit Subtractors

– sub_32bit.v 파일 생성

– sub_32bit 모듈 생성

– sub_32bit 입출력 상세

• 32-bit input의 a

• 32-bit input의 b

• 32-bit output의 result

– 앞에서 만든 serial_adder_32bit 모듈 이용

Design of Binary Subtractors

38

Page 39: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

Design of Binary Subtractors

39

Page 40: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

실습 4

Page 41: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

• 실습 4. ALU

– 지난 시간의 ALU 실습내용을 활용

• adder를 32-bit serial adder로 대체

• xor연산 대신 32-bit subtractor 동작 수행

– 지난 시간 작성한 testbench 사용

• 32-bit serial adder 정상동작 확인

• 32-bit subtractor 정상동작 확인

ALU 만들기 - 1

41

Page 42: 보안회로설계 - esslab.hanyang.ac.kresslab.hanyang.ac.kr/uploads/security_circuit_design/lecture_note... · 전자회로 VLSI/SoC 설계 . 음수의표현. 음수의표현 10

ALU 만들기 – 2

42