슬라이드 1

Similar documents
PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint - hw4.ppt [호환 모드]

디지털공학 5판 7-8장

9장 순차논리 회로

수없기때문에간단한부분으로나눠서구현하고, 이를다시합침으로써전체를구현하게 된다. 실험에서는이미구현된 4-Bit ALU인 74LS181 Chip을사용한다. 이 Chip은 4-bit의 Data input A, B와 Selection input 4 bit, Carry In 1

Microsoft PowerPoint - DSD03_verilog3b.pptx

논리회로설계 6 장 성공회대학교 IT 융합학부 1

ºÎ·ÏB

Microsoft PowerPoint - CHAP-01 [호환 모드]

Microsoft Word - logic2005.doc

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

wire [n-1:0] a, b, c, d, e, f, g, h; wire [n-1:0] x; // internal wires wire [n-1:0] tmp0, tmp1, tmp2, tmp3, tmp4, tmp5; mux_2to1 mux001 (.x(tmp0),.a(a

Microsoft Word - logic2005.doc

MAX+plus II Getting Started - 무작정따라하기

슬라이드 1

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

전자실습교육 프로그램

Microsoft PowerPoint - ICCAD_Digital_lec03.ppt [호환 모드]

Microsoft Word - 제6장 Beyond Simple Logic Gate.doc

歯Chap1-Chap2.PDF

PowerPoint 프레젠테이션

MAX+plusⅡ를 이용한 설계

Microsoft PowerPoint - ICCAD_Analog_lec01.ppt [호환 모드]

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20332EB5F0C1F6C5D0C8B8B7CEBFCD20B1B8C7F62E >

Microsoft PowerPoint - verilog문법new.ppt

Microsoft PowerPoint - Verilog_Summary.ppt

Microsoft Word doc

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

PRO1_09E [읽기 전용]

v6.hwp

동기순차회로 p 조합논리회로 combinational logic circuit) v 출력이현재의입력에의해서만결정되는논리회로 p 순차논리회로 sequential logic circuit) v 현재의입력과이전의출력상태에의해서출력이결정 v 동기순차논리회로와비동기순차논리회로로

Microsoft PowerPoint - ICCAD_Digital_lec02.ppt [호환 모드]

Ver. T3_DWS.UTP-1.0 Unit Testing Plan for Digital Watch System Test Plan Test Design Specification Test Cases Specification Date Team Infor

API 매뉴얼

Microsoft PowerPoint - es-arduino-lecture-03

untitled

歯15-ROMPLD.PDF

chap 5: Trees

23

Microsoft Word - PLC제어응용-2차시.doc

RVC Robot Vaccum Cleaner

한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - M07_RTL.ppt [호환 모드]

실험 5

도 1 명세서 도면의 간단한 설명 도 1은 본 발명의 바람직한 실시예에 따른 데이터 송수신 장치의 회로도이다. 도 2는 도 1에 도시된 등화기의 일 실시예를 보여주는 회로도이다. 도 3은 도 1에 도시된 프리엠퍼시스 회로의 일 실시예를 보여주는 회로도이다. 도 4는 본

API 매뉴얼

Microsoft PowerPoint - DSD03_verilog3a.pptx

Libero Overview and Design Flow

untitled

[8051] 강의자료.PDF

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

ATmega128

Microsoft PowerPoint - 30.ppt [호환 모드]

PowerPoint Presentation

REVERSIBLE MOTOR 표지.gul

텀블러514

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

2009년2학기 임베디드시스템 응용

2009년2학기 임베디드시스템 응용

DE1-SoC Board

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

tut_modelsim(student).hwp

Index Process Specification Data Dictionary

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Digital watch system

Microsoft PowerPoint - analogic_kimys_ch10.ppt

슬라이드 1

윈도우즈프로그래밍(1)

Microsoft PowerPoint - ch03ysk2012.ppt [호환 모드]

Microsoft PowerPoint - hw8.ppt [호환 모드]

Microsoft PowerPoint - VHDL08.ppt [호환 모드]

딥러닝 첫걸음

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap06-1Array.ppt

PowerPoint 프레젠테이션

b74...*

untitled

untitled

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

HX - Operation Manual MC / TC / CUT / QT HX Series(V2.x) Operation Manual for MC / TC / CUT / QT CSCAM

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

(SW3704) Gingerbread Source Build & Working Guide

Microsoft PowerPoint - DSD02_verilog2b.pptx

untitled

INDUCTION MOTOR 표지.gul

Slide 1

UI TASK & KEY EVENT

PowerPoint 프레젠테이션

슬라이드 1

S A S D 발표 : 구태환

T100MD+

adfasdfasfdasfasfadf

2009년2학기 임베디드시스템 응용

PowerPoint Template

Transcription:

보안회로설계 순차회로 Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr

조합과순차 조합회로 (combinational circuit) Memory가없다. 입력한값에따른출력 출력 = f ( 입력 ) 순차회로 (sequential circuit) Memory가있다. Memory에는회로의현상태가저장 출력은입력과현상태에의해결정 ( 출력, 다음상태 ) = f ( 입력, 상태 ) 2

순차회로 Sequential circuit Sequential circuit 의 output 은현재의 input 값과이전의 input 값에의해서결정된다. Latches 와 Flip-flops 가 sequential circuit 중메모리디바이스로많이사용된다. Input Gates Output State 3

다양한 Latch 와 Flip-Flops Latches and Flip-Flops Set-Reset Latch Gated D Latch Edge-Triggered D Flip-Flop S-R Flip-Flop J-K Flip-Flop T Flip-Flop Flip-Flops with Additional Inputs 4

Latch 와 Flip-Flops Latch E Flip-Flop 5

Latch 기초원리 Unstable State 아래와같은회로에서임의의시간에 inverter 입력이 0 이면 inverter 출력은 (b) 와같은진동 (Oscillation) 하게된다. 이회로가진동하는 rate 은 inverter 의전파지연에의해결정된다. (b) 와같은상황을출력이 0 또는 1 로정의되지않았기때문에 Unstable State (output undefined) 라한다. 6

Latch 기초원리 Stable State 아래 (a) 회로는두번째 inverter 의출력은 0 으로유지되고, (b) 회로의경우두번째 inverter 의출력은 1 로유지된다. -> Stable State (output defined when input is given) 7

Set-Reset Latch (SR Latch) SR Latch S=0 and R=0 인경우. P=1 and Q=0 인 stable state 이다. 위의상태에서 S 값을 0 에서 1 로바꾼다. P=1->0 and Q=0->1 로바뀐다. P=0 and Q=1 인 stable state 이된다. 8

Set-Reset Latch (SR Latch) SR Latch 앞의상태에서 S=1->0 로바꾼다. P=0 and Q=1 인상태가유지된다. 위의상태에서 R=0->1 로바꾼다. P=0->1 and Q=1->0 으로바뀐다. 9

Set-Reset Latch (SR Latch) SR Latch 앞의상태에서 R=1->0로바꾼다. P=1 and Q=0인상태가유지된다. 회로분석을시작한처음상태로돌아온다. 이회로는출력이현재의입력뿐만아니라과거일련의입력에도의존하므로, 메모리특성이있다고할수있다. 10

Set-Reset Latch (SR Latch) SR Latch S=1 and R=1 인경우는고려하지않는다. 두개입력이 (S=R=1) 상태에있으면 P=Q=0 이된다. 이러한경우두개의출력은서로보수관계가되어야하는 Latch 기본동작에위배된다. 또한 S=R=1 에서 S=R=0 으로동시에변하게되면출력이 1,0,1 반복되는불안한상태가된다. 11

Set-Reset Latch (SR Latch) SR Latch ( 정리 ) S=1, R=1인경우 : 고려하지않는다. S=0, R=0인경우 : 이전출력값을출력한다.(Q = 이전출력 ) S=1, R=0인경우 : Q = 1 <- Set S=0, R=1인경우 : Q = 0 <- Reset R S Q 0 0 Q 0 1 1 1 0 0 1 1 회로도와 symbol 의 Q 의위치가다른것에주의해야한다. 12

Set-Reset Latch(SR Latch) Timing Diagram for S-R Latch 입력이변화되면짧은시간 (ε) 후에출력값이변화한다. (ε은 Latch의딜레이를나타낸다.) latch의속도결정 13

Gated D Latch Gated D Latch SR-Latch에게이트로구성되어있다. Data input(d) 와 gate input(g) 두개의 input이있다. G=0일때 S=R=0이므로 Q값은바뀌지않는다. 14

Edge-Triggered D Flip-Flop Edge-Triggered D Flip-Flop Level-triggered D Latch 2개로구성 D Flip-Flop은 D(data) 과 Ck(clock) 으로구성 D 입력의변화에따라서가아니라 clock에반응하여변화 15

Edge-Triggered D Flip-Flop D Flip-Flop 출력이 clock 입력의 0 -> 1 전환시에변화한다면 rising-edge trigger 출력이 clock 입력의 1 -> 0 전환시에변화한다면 falling-edge trigger Clock 입력에 bubble이있는 flip-flop은 falling Edge-Triggered Bubble이없는 flip-flop은 rising Edge-Triggered flip-flop 16

Edge-Triggered D Flip-Flop D Flip-Flop Active edge 후의 D flip-flop의상태 (Q + ) 는 active edge에서의입력 (D) 와같다. D Q Q + 0 0 0 0 1 0 1 0 1 1 1 1 + Q = D Timing for D Flip-Flop (Falling-Edge Trigger) 17

Flip-Flops with Additional Inputs Flip-Flops with Additional Inputs FF 은 clock 과는독립적으로 FF 을어떤초기상태 (initial state) 로만들기위해부가적인입력을가질수있다. 여기서어떤초기상태란 0 의상태또는 1 의상태를나타낸다. 초기상태를 0 으로만드는입력신호 : Clear (Clr) 초기상태를 1 으로만드는입력신호 : Preset (Pre) Ck D PreN ClrN Q + x x 0 0 (not allowed) x x 0 1 1 x x 1 0 0 0 1 1 0 1 1 1 1 0,1, x 1 1 Q(no change) 18

Flip-Flops with Additional Inputs D Flip-Flop with clock Enable FF 의 clock 이나입력값에에관계없이이전데이터값을유지하고싶은경우 Clock 자체의동작을 gating 하는방식 ( 그림 a): clock 지연되어다른 FF 와의동기성을상실 Clock Enable (CE) 을사용하는방식 : CE=1 일때 Q + =D, CE=0 일때 Q + =Q + The characteristic equation : Q = Q CE + D CE + The MUX output ( 그림 c): Q = D = Q CE + D CE in 19

Flip-flop 사용법 Rising edge always@(posedge Clock) begin Falling edge always@(negedge Clock) begin 20

Synchronous vs Asynchronous Reset (Code) 정의 always @(posedge Clock) if(!synreset) Data_Out <= 0; else Data_Out <= Data_In; always @(posedge Clock or negedge AsynReset) if(!asynreset) Data_Out <= 0; else Data_Out <= Data_In; Synchronous Reset : clock 의 edge 에서 reset 의상태에따라 reset 발생 Asynchronous Reset : clock 의 edge 에서 reset 발생 reset 의 edge 에서도 reset 발생 edge condition 과 if 조건문의극성이일치해야함 always@(posedge clk or negedge AsynReset) if(!asynreset) always@(posedge clk or posedge AsynReset) if(asynreset) 21

Synchronous vs Asynchronous Reset (Circuit) Synchronous Reset Reset Data_In Clock D Q _ CK Q Data_Out Asynchronous Reset Data_In Clock D Q _ CK Q Data_Out Reset 22

Enable & Reset (Code) 정의 always @(posedge Clock) if(enable) Data_Out <= Data_In; always @(posedge Clock) if(!synreset) Data_Out <= 0; else Data_Out <= Data_In; Enable : Clock 의 edge 에서 Enable = 1 : Data Data_in Enable = 0 : Data 유지 ( 출력 입력피드백발생 ) Synchronous Reset : clock 의 edge 에서 reset 의상태에따라 reset 발생 23

Enable vs Reset (Circuit) Enable feedback 발생 Enable Data_In Clock D Q _ CK Q Data_Out Reset Reset Data_In Clock D Q _ CK Q Data_Out 24

실습 1

시계만들기 - 1 실습 1. 시계만들기 watch.v 파일생성 watch 모듈생성 watch 입출력상세 1-bit input clock 1-bit input reset 5-bit output hour 6-bit output minute 6-bit output second 1 clock = 1 second 를가정하고 hour, minute, second 생성 reset = 1 입력시모두초기화 26

시계만들기 코드 1 27

시계만들기 코드 2 28

실습 2

시계검증하기 실습 2. 시계검증 tb 만들기 tb_watch.v 파일생성 tb_watch 모듈생성 reset = 1 입력시 $display 이용하여아래와같은출력생성 ========= reset ========== minute 이변경될때마다 $monitor 이용하여아래와같은출력생성 시간 : 분 ex ) 03 : 30 30

Testbench 기본문법 [ 시스템태스크 ] Simulation 에서결과를 display 하는 system task Transcript 에출력됨 $time 시뮬레이션의현재시간을나타낸다. $display C언어의 printf와용법이비슷하다. 시뮬레이션실행시실행창에내용 1회출력한다. 변수값, 문자열, 수식등을출력하는용도로사용한다. ex) $display( i = %d,i ); $monitor 연결한레지스터나와이어의값이변할때마다그값을계속해서출력한다. ex) $monitor($time, %d%dmin %d%dsec, highm, lowm, highs, lows); 31

System Task Example display / monitor Test Stimulus 값이변할때마다계속출력 START 문구를한번출력 START 출력 값이변할때마다계속출력한다. 14

시계검증하기 코드예시 33

Blocking Assignment Blocking Assignment : = 사용 하나의대입이끝난후다음대입 ( 기술순서에영향 O) assignment 가바로발생 wire [3:0] A, B, C, D; always @(posedge CLK) begin C = B; B = A; A = D; 처리전의초기값 A=5; B=3; C=10; D=2; 처리결과 A=2; B=5; C=3; D=2; wire [3:0] A, B, C, D; always @(posedge CLK) begin A = D; C = B; B = A; 처리전의초기값 A=5; B=3; C=10; D=2; 처리전의초기값 A=2; B=2; C=3; D=2; 34

Non-Blocking Assignment Non-blocking Assignment : <= 사용 대입식의오른쪽처리후왼쪽에대입 ( 기술순서에영향 X) clock cycle 의끝단에서 assignment wire [3:0] A, B, C, D; always @(posedge CLK) begin C <= B; B <= A; A <= D; 처리전의초기값 A=5; B=3; C=10; D=2; 처리결과 A=2; B=5; C=3; D=2; wire [3:0] A, B, C, D; always @(posedge CLK) begin A <= D; C <= B; B <= A; 처리전의초기값 A=5; B=3; C=10; D=2; 처리전의초기값 A=2; B=5; C=3; D=2; 35

Blocking/Non-Blocking Assignment (Code) 실제사용시차이점 combination circuit 에서는차이점이없음 sequential circuit 에서두개이상의 assignment 가일어날때차이점발생 always @(posedge Clock) begin Intermediate_Variable = In_A & In_B; Data_Out <= Intermediate_Variable; blocking assignment Intermediate_Variable 바로갱신 갱신된값이 Data_Out 에저장 always @(posedge Clock) begin Intermediate_Variable <= In_A & In_B; Data_Out <= Intermediate_Variable; non-blocking assignment cycle 의끝에서할당 Data_Out 에갱신전 Intermediate_Variable 값이저장 36

Blocking/Non-Blocking Assignment (Circuit) 실제사용시차이점 blocking assignment In_A In_B Data_out Clock non-blocking assignment In_A In_B Intermediate_Variable Data_out Clock 37

Blocking/Non-Blocking Assignment Flip-Flop 의입 / 출력을분리하여사용 always @(posedge clock) begin if(sec == 6'd59) sec <= 0; else sec <= sec + 6'd1; if(sec == 6'd59 && min == 6'd59) min <= 0; else if(sec == 6'd59) min <= min + 6'd1; else min <= min; sec sec 해결방법 always @(posedge clock) begin c_sec <= n_sec c_min <= n_min always @ * if(c_sec == 6'd59) n_sec = 0; else n_sec = c_sec + 6'd1; if(c_sec == 6'd59 && c_min == 6'd59) n_min <= 0; else if(c_sec == 6'd59) n_min <= c_min + 6'd1; else n_min <= c_min; n_sec c_sec Clock Clock 38

실습 3

시계만들기 실습 3. 시계만들기 실습 1. 에서만든 watch 모듈을수정할것. 앞의예시에따라 Flip-Flop 의입 / 출력을분리하여사용 레지스터입 / 출력 n_hour, c_hour n_minute, c_minute n_second, c_second 40

Latch vs. Flip-flop Latch enable = 1 인동안 ( 또는 0 인동안 ) 현재상태유지 level sensitive Flip-flop clock 이변화하는순간 (0 1 또는 1 0) 에만입력신호를받아들임 2 개의 latch 로구성 edge sensitive D G Q _ Q D G Q _ Q X 0 1 0 1 1 Q 0 1 _ Q 1 0 D Latch D Q _ CK Q _ D CK Q Q 0 1 X X 0 1 D Flip-flip 0 1 Q Q 1 _ 0 Q_ Q 41

Latch Latch 의역할 현재값을유지해주어야할때발생한다. Example Clock 1 : 입력 D 가출력 Q 로전달 Clock 0 : 입력이출력에영향 X, 출력유지 42

Inferred Latch 정의 If/case 에서모든 branch 에대해정의되어있지않을때발생하는 Latch Asynchronous latch In_A Data_out Latch Enable clock 이없음 막아야하는이유 모든 flip-flop이같은 clock에서컨트롤되는 synchronous 선호 Difficulty with accurate timing analysis Unpredictable behavior 43

Solution of Inferred Latch : if If 문 모든 branch 에대해정의 초기값설정 always @(Enable or In_A) begin if(enable) begin Data_Out = In_A; 해결방법 if(enable) begin Data_Out = In_A; else begin Data_Out = In_B; Data_Out = In_B; if(enable) begin Data_Out = In_A; 44

Solution of Inferred Latch : Case Case 문 default 사용 초기값설정 always @(Data_In) begin case(data_in) 0 : Data_Out = In_A; 1 : Data_Out = In_B; case 해결방법 always @(Data_In) begin case(data_in) 0 : Data_Out = In_A; 1 : Data_Out = In_B; default : Data_Out = In_A; case always @(Data_In) begin Data_out = In_A; case(data_in) 0 : Data_Out = In_A; 1 : Data_Out = In_B; case 45

실습 4

시계만들기 실습 4. 시계만들기 실습 3. 에서만든 watch 모듈을수정할것. 앞의예시에따라 Inferred Latch 방지를위한초기값사용 47

시계만들기 최종코드 48