순차로직 개요.

Slides:



Advertisements
Similar presentations
Electronic Engineering Yoo Han Ha 1. OrCAD 에는 부품기호 라이브러리에 약 20,000 개의 부품이 준비 부품기호 (part symbol) 가 기존 라이브러리에 없는 경우 라이브러리 에디터를 사용하여 새로운 부품기호.
Advertisements

1 8 장 대형 순차회로 문제의 해법 1) 시프트 레지스터 2) 카운터 3)ASM 도를 이용한 설계 4)One Hot encoding 5) 복잡한 예제.

Chapter 9. 컴퓨터설계기초 9-1 머리말 9-2 데이터 처리장치 (Datapath)
1 08 Simple Sequential Logic Design with Finite State Machines & Timing Design.
Introduction 2007년 2학기.
Sequence Control -Introduction-
Copyright SangSangDom, All Rights Reserved.
VHDL 프로그램은 비동기 Reset을 갖는 D 플립플롭을 구현한 것이다
Dept. of Electronics & Info. Eng. Prof. Jongbok Lee
Chapter 7. Flip-Flops and Other Multivibrators
ASIC의 개요 ASIC(Application Specific Integrated Circuit) 특정 용도 주문형 집적회로
디지털 시계 설계.
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
마이크로프로세서 메모리 및 입출력장치 인터페이스
Digital Logic Structures
Design of Digital Clock (디지털 시계의 설계)
디지털 시스템 2010년 1학기 교수: 송상훈 연구실: 율곡관 603-B
Computer System Architecture
VHDL, FPGA를 이용한 소리인식 스위치 (Matched Filter 사용)
Sequential logic circuit
디지털 산술과 연산회로.
가산기 설계.
10장 주변장치 (PIO) Slide 1 (of 28).
Multiplexer 설계.
VHDL의 기본 Lecture #5.
Verilog HDL 이론.
디지털 시스템 설계(3).
VHDL Description D-latch C=1 일 때 Q 는 D의 입력 값 이 전달된다.
신호등 제어기 차량의 흐름에 따라 신호등의 신호를 제어하는 장치 신호등 제어기의 입출력 신호
공학실험.
Computer System Architecture
COMPUTER ARCHITECTIRE
MAX+PLUS II 설치 및 디지털 시스템의 설계 방법
VHDL Package and Sub program
Chap. 18 라인 트레이서의 설계 라인 트레이서 바닥에 그려진 선을 따라가는 로봇을 의미 라인 트레이서 구성도
순차회로 모델링 Sun, Hye-Seung.
II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계 구성 6장. VHDL 객체 및 타입 7장. VHDL 모델링
Ch2-2. VHDL Basic VHDL lexical element VHDL description
존슨카운터의 동작을 설명·설계할 수 있다 링카운터의 동작을 설명·설계할 수 있다
1장. 디지털 논리 회로 다루는 내용 논리 게이트 부울 대수 조합 논리회로 순차 논리회로.
VHDL의 기본 Lecture #4.
Data type and Object 자료형 변환 함수들은 std_logic_arith 패키지에 정의되어 있음.
IT CookBook, VHDL을 이용한 FPGA 디지털 설계
FSM 설계.
Flip-Flop 설계.
오브젝트 하드웨어 기술 언어 IT CookBook, VHDL을 이용한 디지털 회로 입문.
Programmable Logic Device
VHDL Mealy and Moore model
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
10. 소프트웨어 아키텍처 뷰 설계 명지대학교 융합소프트웨어학부 김정호 교수.
Introduction to Programming Language
Digital design 5장. 동기식 순차논리.
User Datagram Protocol (UDP)
VHDL 디지털시계 2.
가산기 설계.
디 지 털 공 학 한국폴리텍V대학.
Chapter 08. 플립플롭.
디지털 시계 설계 장성락 전영진 임종엽 전보현 이형준.
Signature, Strong Typing
Signature, Strong Typing
LCD.
래치(latch) 일반적으로 플립플롭과는 별개의 부류로 분류되는 쌍안정 형태의 저장소자이다.
Signature, Strong Typing
IBM Corporation {haoxing, eleve, kravets,
4. Flip-Flops : S-R, D, J-K, T 컴퓨터 구조 실습 안내서.
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
Chapter 09. 동기 순서논리회로.
VHDL 응용 Lecture #10.
Lecture 7 7-Segment LED controller using u-controller
Presentation transcript:

순차로직 개요

단원목차 1. 래치(Latches) 2. NAND/NOR 래치 3. 게이트 래치 4. 에지-트리거 D-플립플롭 5. 에지-트리거 JK-플립플롭 6. 에지-트리거 T-플립플롭 7. Timing Parameters

순차회로와 순차회로 요소 회로의 출력이 입력 값의 현재 조합뿐만 아니라 회로의 과거(history) 입력에도 의존하는 디지털 회로. 두 가지 기본적인 형태: - 래치(latch) - 플립플롭(flip-flop) 차이는 저장되는 비트를 변경시키는 조건에 따른다.

순차회로 입력과 출력 SET – 논리 값 ‘1’을 저장시키는 입력. RESET – 논리 값 ‘0’을 저장시키는 입력. 두 개의 보수출력, Q 와 /Q. 출력은 항상 반대 논리 값을 가진다.

SR 래치(active high inputs) Fig. 7.1 Motor Start/Stop switch(application)

NAND 와 NOR 래치 NAND Latch NOR Latch /S /R Action 0 0 Forbidden condition 0 1 SET 1 0 RESET 1 1 Output does not change from the previous state. NOR Latch S R Action 0 0 Output does not change from the previous state 0 1 RESET 1 0 SET 1 1 Forbidden condition.

NOR/NAND 래치 동작 두 가지 가능한 안정된 상태. 하나는 SET. 다른 하나는 RESET. 피드백은 래치를 안정된 상태로 유지시킨다. Fig. 7.6

NAND 래치의 WYSIWYG 합성 Synthesis report file nQ = LCELL(_EQ001 $ GND); _EQ001 = !nR # !Q; Q = LCELL(_EQ002 $ GND); _EQ002 = !nS # !nQ; Q = /(nS) + /(nQ) nQ = /(nR) + /Q Equal path delay : /S to /Q vs. /R to Q Different path delay : /S to Q vs. /R to Q

RESET to SET Transition (Fig. 7.12, 7.13) 1 7.5ns 12.5ns

SET to RESET Transition (Fig. 7.14, 7.15)

Fig. 7.18 SET goes HIGH before RESET n Fig. 7.19 RESET goes HIGH before SET

Fig. 7.20 NAND Latch Forbidden State Fig. 7.21 SET and RESET go HIGH simultaneously t=0

MAX+PLUS II 에서의 실제적인 합성 (Normal style) Fig. 7.22 참조 Report file nQ = LCELL(_EQ001 $ VCC); _EQ001 = nR & Q; Q = LCELL(_EQ002 $ !nS); _EQ002 = nR & nS & Q; Q = (nR•nS•Q)  /(nS) nQ = (nR•Q)  1 = /(nR•Q) Equal path delay : SET to Q vs. RESET to Q

스위치 바운스(Switch Bounce) 스위치 접촉은 최종 접촉이 이루어지기 전에 기계적인 바운스가 발생한다. 스위치 접촉 시 논리회로에서 한 펄스 대신에 여러 펄스가 입력된다. Fig. 7.23

스위치 디바운스 회로 접촉된 단자가 래치의 활성레벨(active level )이 되도록 NAND 래치를 사용하라. S=R=1 입력조건은 출력을 바꾸지 않으므로 바운스가 무시된다. Fig. 7.24 Ex. 7.3

게이트 SR 래치 SR 래치 상태의 변경은 ‘ENABLE’로 표시되는 제어신호에 의해 통제된다. 구동 게이트에 의해 제어되는 NAND 래치이다. Latch ENABLE Input - Used in two principal ways. - One, as an ON/OFF signal. - Two, as a synchronizing signal.

게이트 SR 래치의 기능표 EN S R Qt+1 /Qt+1 Function 1 0 0 Qt /Qt No change 1 0 1 0 1 RESET 1 1 0 1 0 SET 1 1 1 0 0 Forbidden 0 X X Qt /Qt Inhibited.

Fig. 7.27

Gated D 또는 Transparent Latch ENABLE 입력이 활성일 때, 래치의 출력이 데이터 입력을 따른다. ENABLE이 비활성일 때, 래치는 과거 ENABLE이 활성일 때 제시되었던 데이터를 저장한다. EN D Qt+1 /Qt+1 Function 0 x Qt /Qt No change 1 0 0 1 RESET 1 1 1 0 SET.

D-Latch 동작

MAX+PLUS II 에서의 D-래치 그래픽 설계 파일(.gdf)에서 프리미티브로 구현될 수 있다. VHDL 파일에서 행위적(behavioral) 또는 구조적(structural) 기술로 구현될 수 있다.

프로세스 구문을 사용한 D-Latch VHDL code A PROCESS statement is concurrent, but the statements inside the PROCESS are sequential. VHDL code for D-Latch -- d_lch.vhd -- D latch with active-HIGH level-sensitive enable ENTITY d_lch IS PORT( d, ena : IN BIT; q : OUT BIT); END d_lch; ARCHITECTURE a OF d_lch IS BEGIN PROCESS (d, ena) IF (ena = '1') THEN q <= d; ELSE NULL; END IF; END PROCESS; END a;

ALTERA Library와 maxplus2 Package를 사용한 래치 프리미티브의 사례화 COMPONENT LATCH PORT( d : IN STD_LOGIC; ena : IN_STD_LOGIC; q : OUT_STD_LOGIC); END COMPONENT;

ALTERA Library 와 maxplus2 패케이지를 사용한 D-Latch -- lch_prim.vhd -- D latch with active-HIGH level-sensitive enable LIBRARY ieee; USE ieee.std_logic_1164.ALL; LIBRARY altera; USE altera.maxplus2.ALL; ENTITY lch_prim IS PORT( d_in, enable : IN STD_LOGIC; q_out : OUT STD_LOGIC); END lch_prim; ARCHITECTURE a OF lch_prim IS BEGIN -- Instantiate a latch from a MAX+PLUS II primitive latch_primitive : latch PORT MAP (d => d_in, ena => enable, q => q_out); END a;

VHDL Implementation of Latches with Multiple Inputs/Outputs and Common Enable 1. Use behavioral description with STD_LOGIC_VECTOR types. : Use STD_LOGIC_VECTOR types for D and Q, rather than STD_LOGIC for a single latch. 2. Use primitives – predefined components. : ALTERA recommends using a latch primitive, rather than creating your own latch structures. That is, use multiple LATCH primitives instantiated by a GERNERATE statement. 3. Use a latch component from Library of Parameterized Modules (LPM). : These components are specified in the lpm_components package in the lpm library.

4-bit Latch의 행위적 기술 -- ltch4bhv.vhd -- D latch with active-HIGH level-sensitive enable LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY ltch4bhv IS PORT(d : IN STD_LOGIC_VECTOR(3 downto 0); enable : IN STD_LOGIC; q : OUT STD_LOGIC_VECTOR(3 downto 0)); END ltch4bhv; ARCHITECTURE a OF ltch4bhv IS BEGIN PROCESS (enable, d) IF (enable = '1') THEN q <= d; END IF; END PROCESS; END a;

4 LATCH 프리미티브와 GENERATE 문 -- ltch4prm.vhd -- D latch with active-HIGH level-sensitive enable LIBRARY ieee; USE ieee.std_logic_1164.ALL; LIBRARY altera; USE altera.maxplus2.ALL; ENTITY ltch4prm IS PORT( d_in : IN STD_LOGIC_VECTOR(3 downto 0); enable : IN STD_LOGIC; q_out : OUT STD_LOGIC_VECTOR(3 downto 0)); END ltch4prm; ARCHITECTURE a OF ltch4prm IS BEGIN -- Instantiate a latch from a MAX+PLUS II primitive latch4: FOR i IN 3 downto 0 GENERATE latch_primitive: latch PORT MAP (d => d_in(i), ena => enable, q => q_out(i)); END GENERATE; END a;

LPM 래치 -- ltch4lpm.vhd , 4-BIT D latch with active-HIGH level-sensitive enable -- Uses a latch component from the Library of Parameterized Modules (LPM) LIBRARY ieee; USE ieee.std_logic_1164.ALL; LIBRARY lpm; USE lpm.lpm_components.ALL; ENTITY ltch4lpm IS PORT( d_in : IN STD_LOGIC_VECTOR(3 downto 0); enable : IN STD_LOGIC; q_out : OUT STD_LOGIC_VECTOR(3 downto 0)); END ltch4lpm; ARCHITECTURE a OF ltch4lpm IS BEGIN -- Instantiate latch from an LPM component latch4: lpm_latch GENERIC MAP (LPM_WIDTH => 4) PORT MAP (data => d_in, gate => enable, q => q_out); END a;

Flip-Flop 정의 클록 입력을 가진 게이트 래치 순서회로 출력은 클록 입력이 에지를 검출할 때 변한다. Edge-sensitive instead of level-sensitive. Fig. 7.37

Positive-Edge Triggered D Flip-Flop 기능표 CLK D Qt+1 /Qt+1 Function 0 0 1 RESET 1 1 0 SET 0 X Qt /Qt Inhibited 1 X Qt /Qt Inhibited X Qt /Qt Inhibited. [에지 검출기] 클럭 입력의 활성 에지를 짧은 활성-레벨 펄스로 변환시키는 회로. 게이트의 전파지연을 이용하여 생성된다. positive 나 negative edge가 될 수 있다. Fig. 7.40

Edge Detector Circuit Fig. 7.40

D Flip-Flop 동작

JK Flip-Flop Negative-Edge Triggered JK Flip-Flop Function Table CLK J K Qt+1 /Qt+1 Function 0 0 Qt /Qt No change 0 1 0 1 RESET 1 0 1 0 SET 1 1 /Qt Qt Toggle.

Synchronous vs. Asynchronous Circuits 동기식 회로는 출력이 동일한 시점에서 변하는 순서요소를 가진다. 비동기식 회로는 출력이 상이한 시점에서 변하는 순서요소를 가진다. 비동기식 회로의 단점 - 동작을 해석하는 데 어렵다. - 설계 상에 원하지 않는 중간상태(Intermediate states)가 생성될 수 있다.

3-bit 비동기식 카운터 Intermediate states

3-bit 동기식 카운터

동기와 비동기 입력 플립플롭의 동기 입력(D, J, K 등)은 클록의 활성 에지에서 출력에 영향을 미치는 입력이다. 플립플롭의 비동기 입력은 출력을 즉각적으로 변경시킨다. 비동기 입력은 동기 입력보다 우선한다 플립플롭 비동기 입력 - /Preset – An asynchronous set function, usually designated as /PRE. - /Clear – An asynchronous reset function, usually designated as /CLR. - Active levels are usually LOW.

JK Flip-Flop Asynchronous Inputs Function Table /PRE /CLR J K Qt+1 /Qt+1 Function 0 1 X X 1 0 SET 1 0 X X 0 1 RESET 0 0 X X 1 1 Forbidden 1 1 See normal function table operation.

마스터 리셋(Master Reset) 비동기 입력은 순서회로를 알려진 초기상태로 세트하기 위해 사용된다. 일반적으로 RESET은 모든 플립플롭의 CLR 입력에 연결된다. Fig. 7.57

T (Toggle) Flip-Flop 출력은 동기 입력이 활성일 때, 매 클록 펄스마다 토글된다. 동기입력은 ‘T’. T Flip-Flop Function Table CLK T Qt+1 Function 0 Qt No change 1 /Qt Toggle 0 X Qt Inhibited 1 X Qt Inhibited X Qt Inhibited.

T (Toggle) Flip-Flop Function

타이밍 파라미터(1) 입력 데이터에 대한 클록 타이밍 클록 타이밍 요구조건 Setup time (ts) – 클록 에지 전에 플립플롭의 동기입력이 안정하게 유지되도록 요구되는 시간. Hold time (th) – 클록 에지 후에 플립플롭의 동기입력이 안정하게 남아 있어야 할 시간. 클록 타이밍 요구조건 Pulse width(tw)는 CLK, /CLR 또는 /PRE 입력에 인가된 활성펄스에 요구되는 최소한의 지속시간이다. 시간은 펄스의 앞 모서리 중간에서 뒤 모서리의 중간 까지로 측정된다.

타이밍 파라미터(2) 플립플롭 전파지연시간 플립플롭 회복시간(trec) 입력의 변화 후 출력에서 변화가 일어나는 데 걸리는 시간 출력 천이의 방향에 따라 정의된다. 전파지연의 종류 - tPHL – 출력이 HIGH에서 LOW로 변할 때 측정되는 전파지연 - tPLH – 출력이 LOW에서 HIGH로 변할 때 측정되는 전파지연 플립플롭 회복시간(trec) /CLR 또는 /PRE 펄스의 꼬리 모서리에서 클록 에지까지의 최소시간. 비동기 펄스 입력 후 내부 논리 레벨이 안정된 상태로 도달하는 데 요구되는 시간.

Flip-Flop Timing Chart

SUMMARY A D Latch can be described in VHDL by an IF statement within a PROCESS. The PROCESS statement in VHDL is concurrent, but the statements inside the PROCESS are sequential. A D Latch can be also implemented in VHDL by instantiating a LATCH primitive as a component in a VHDL design entity or by instantiating a component called lpm_latch from the Library of Parameterized Modules(LPM). An LPM component is a standard component with certain properties, called parameters, that can be specified when the component is instantiated. The inputs and outputs of an LPM component are called ports. Parameter values are assigned in the generic map of a component instantiation statement. Component port names are associated with user port names in the port map of a component instantiation statement.