Flip-Flop 설계.

Slides:



Advertisements
Similar presentations
내 마음의 버 스 이천신하교회 청년부. 이름 : 한상훈 나이 : 30 살 종교 : 기독교 ( 모태신앙 ) 생활신조 : 인생은 한방 ! 로또나 사자 이상형 : 청순 가련한 모태미녀 특이사항 : 걸그룹 노래에 환장함 식스팩을 갖기엔 슬픈 몸을 타고 남.
Advertisements

독서골든벨 2009 학년도 6 학년 1 학기 6-10 반. 1. 이야기 삼국유사 정대한 원효대사는 수행을 위해 떠나던 중 피곤하여 숲 속에서 잠이 들었다. 잠결에 너무 목이 마른 나머지 어디에 담겨있는 물을 맛있게 마셨나요 ?
두 손 들고 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 오직 주만이 나를 다스리네 오직 주만이 나를 다스리네 나 주님만을.
1 8 장 대형 순차회로 문제의 해법 1) 시프트 레지스터 2) 카운터 3)ASM 도를 이용한 설계 4)One Hot encoding 5) 복잡한 예제.
지금은 기도 하는 시간입니다 1. 송구영신예배를 위해서 2. ‘크리스마스 이브’ 행사를 준비하는 교육 기관을 위하여

서울시 ‘찾아가는 동 주민센터’ 사업 시행 이후 지역사회의 변화
Chapter 9. 컴퓨터설계기초 9-1 머리말 9-2 데이터 처리장치 (Datapath)
1 08 Simple Sequential Logic Design with Finite State Machines & Timing Design.
Copyright SangSangDom, All Rights Reserved.
VHDL 프로그램은 비동기 Reset을 갖는 D 플립플롭을 구현한 것이다
AMBA BUS Protocol의 이해 (AMBA 2.0 Specification)
Dept. of Electronics & Info. Eng. Prof. Jongbok Lee
Chapter 7. Flip-Flops and Other Multivibrators
ASIC의 개요 ASIC(Application Specific Integrated Circuit) 특정 용도 주문형 집적회로
디지털 시계 설계.
현대사회의 여성문제와 여성복지 3조 권경욱 강향원 황대인 변갑수 박창욱 김지현.
14주차 1교시 강화계획 [학습목표] 1. 강화계획의 정의를 안다 [학습내용] 1. 단순한 강화계획 2. 간헐적 강화 3. 복합 계획 4. 선택과 대응법칙 [사전학습] 강화계획이 일어날 수 있는 사례를 생각해본다.
연장근로와 야간·휴일근로 김영호 노무사 나눔 노사관계연구소 소장 연세대 일반대학원 박사 수료 고려사이버대 법학과 외래교수
Design of Digital Clock (디지털 시계의 설계)
고교평준화의 득과 실 김영주 이지영 최윤영.
Computer System Architecture
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
Sequential logic circuit
순차로직 개요.
1. VHDL과 합성 설계 1.1 HDL: Hardware Description Language 집적회로의 설계환경의 변화
가산기 설계.
10장 주변장치 (PIO) Slide 1 (of 28).
Multiplexer 설계.
VHDL의 기본 Lecture #5.
Verilog HDL 이론.
디지털 시스템 설계(3).
VHDL Description D-latch C=1 일 때 Q 는 D의 입력 값 이 전달된다.
VHDL의 개요 김 인 수.
신호등 제어기 차량의 흐름에 따라 신호등의 신호를 제어하는 장치 신호등 제어기의 입출력 신호
19장. 원격 조정 로봇 설계 김용애 1조 김정은 이동한 이재흔.
공학실험.
4장 병행 프로세스 병행성의 원리를 이해한다 병행 프로세스 수행과 관련된 상호 배 제 해결방안을 알아본다
VHDL Package and Sub program
Stop Watch 구현 Lecture #12.
Chap. 18 라인 트레이서의 설계 라인 트레이서 바닥에 그려진 선을 따라가는 로봇을 의미 라인 트레이서 구성도
순차회로 모델링 Sun, Hye-Seung.
II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계 구성 6장. VHDL 객체 및 타입 7장. VHDL 모델링
Ch2-2. VHDL Basic VHDL lexical element VHDL description
존슨카운터의 동작을 설명·설계할 수 있다 링카운터의 동작을 설명·설계할 수 있다
VHDL의 기본 Lecture #4.
Data type and Object 자료형 변환 함수들은 std_logic_arith 패키지에 정의되어 있음.
순차 회로 설계 및 검증 Sun, Hye-Seung.
FSM 설계.
2010년 직원연수 자료 제1차 : 4월 16일 ~ 17일 제2차 : 4월 23일 ~ 24일
오브젝트 하드웨어 기술 언어 IT CookBook, VHDL을 이용한 디지털 회로 입문.
4 병행 프로세스와 상호배제.
Programmable Logic Device
VHDL Mealy and Moore model
Chapter 01. 들어가기.
VHDL.
VHDL 디지털시계 2.
가산기 설계.
디 지 털 공 학 한국폴리텍V대학.
The Party-State (1) 영 어 학 부 강물결 영 어 학 부 박우인
Chapter 08. 플립플롭.
디지털 시계 설계 장성락 전영진 임종엽 전보현 이형준.
LCD.
의성어 국어어휘론 이신옥 정지연 정지형 임총인.
래치(latch) 일반적으로 플립플롭과는 별개의 부류로 분류되는 쌍안정 형태의 저장소자이다.
4. Flip-Flops : S-R, D, J-K, T 컴퓨터 구조 실습 안내서.
DEGITAL LOGIC CIRCUIT Term Project – 4 bit ALU.
컴퓨터 구조 실습 #4 - systemC process
나-는 믿음으로 주 얼굴 보리니- 아침에 깰 때에 주형상에 만족하리 나주님 닮기 원하네 믿음으로 주얼굴 보리라 -
VHDL 응용 Lecture #10.
Presentation transcript:

Flip-Flop 설계

Contents Latch vs. Flip-Flop(FF) DFF Synchronous reset vs. Asynchronous reset Enable Signal vs. variable 실습내용 Circular shifter Logical shifter Arithmetic shifter

Latch vs. Flip-Flop(FF) Asynchronous(비동기) 입력에 의해 출력이 변화하는 기억소자 RS latch, Level-sensitive RS latch, JK latch Flip-Flop(FF) Clock을 사용 클럭에 따라 출력이 변화하는 기억소자 초기화를 위한 동기/비동기 입력이 있을 수 있음(reset) RSFF, DFF, JKFF, TFF clk d_in d_out(F/F) d_out(latch)

DFF 클럭 입력의 변화에 따라서 D가 Q로 천이 클럭의 상승에지(rising edge or positive edge) 또는 하강에지(falling edge or negative edge)에서 천이함 Reset과 enable 필요 D Q Q’ Reset’ Enable’ D Q Q’ 1

DFF Module entity dff is port( clk, reset, enable : in std_logic; d : in std_logic; q, q_b: out std_logic ); end entity dff; architecture Behavioral of dff is signal in_q : std_logic; begin q <= in_q; q_b <= not in_q; process( clk, reset) if( reset = '0' ) then in_q <= '0'; elsif( clk = '1' and clk'event ) then if( enable = ‘1' ) then in_q <= d; end if; end process; end architecture Behavioral;

DFF Simulation 결과

Synchronous vs. Asynchronous Reset 입력 클럭이 변화할 때 작동 Asynchronous reset 입력 클럭과는 상관없이 작동 process( clk ) begin if( clk = '1' and clk'event ) then if( reset = '0' ) then in_q <= '0'; elsif( enable = '0' ) then … process( clk, reset ) begin if( reset = '0' ) then in_q <= '0'; elsif( clk = '1' and clk'event ) then if( enable = '0' ) then …

Enable Synchronous enable elsif( clk = '1' and clk'event ) then if( enable = '0' ) then in_q <= '1'; else in_q <= d; end if; …

Signal vs. Variable Ex.) process(clk) process(clk) variable a : std_logic; begin if clk’event and clk=‘1’ then if rst_n = ‘0’ then d_out <= ‘0’; elsif load = ‘1’ then d_out <= d_in; a := d_out; end if; if a = ‘1’ then state <= “0001”; else state <= “1111”; end process; process(clk) begin if clk’event and clk=‘1’ then if rst_n = ‘0’ then d_out <= ‘0’; elsif load = ‘1’ then d_out <= d_in; sig <= d_out; end if; if sig = ‘1’ then state <= “0001”; else state <= “1111”; end process; 9

Shift register 2진 데이터 저장 클럭이 인가될 때 왼쪽 혹은 오른쪽 방향으로 데이터 쉬프트

Circular shift 쉬프트 연산시 최상위 혹은 최하위 비트를 버리지 않고 순환하여 최하위 혹은 최상위로 보내는 쉬프트 오른쪽 쉬프트 연산 최하위 비트가 최상위로 이동 왼쪽 쉬프트 연산 최상위 비트가 최하위로 이동 수행전 b3 b2 b1 b0 수행후 b0 b3 b2 b1 수행전 b3 b2 b1 b0 수행후 b2 b1 b0 b3

Logical shift 쉬프트 연산시 최상위 혹은 최하위 비트를 0으로 함 오른쪽 쉬프트 연산 왼쪽 쉬프트 연산 최하위 비트가 최상위로 이동 왼쪽 쉬프트 연산 최상위 비트가 최하위로 이동 수행전 b3 b2 b1 b0 수행후 b3 b2 b1 수행전 b3 b2 b1 b0 수행후 b2 b1 b0

Arithmetic shift 쉬프트 연산시 부호비트를 유지하면서 쉬프트 오른쪽 쉬프트 연산 왼쪽 쉬프트 연산 양수 일 때 부호 비트는 0으로 유지/음수 일 때 부호 비트는 1로 유지 왼쪽 쉬프트 연산 Logical shift 연산의 왼쪽 쉬프트와 같음 예) 1101 = -3, 왼쪽 산술쉬프트시 1010=-6, 오른쪽 산술쉬프트시 1110=-2 수행전 b3 b2 b1 b0 수행후 b3 b2 b1 수행전 b3 b2 b1 b0 수행후 b2 b1 b0

Shift register 실습내용 Mode 입력에 따른 Circular, Logical, Arithmetic shifter 설계 비동기 Reset 및 동기 enable에 의한 동작 제어 Reset Enable MODE Direction CLK Q L X H ↑ 00 Parallel IN 01 Circular R Circular L 10 Logical R Logical L 11 Arithmetic R Arithmetic L

Shift register Entity entity shifter is port( clk, reset, enable, dir : in std_logic; mode : in std_logic_vector( 1 downto 0 ); pi : in std_logic_vector( 3 downto 0 ); q : out std_logic_vector( 3 downto 0 ) ); end entity shifter;

Shift register Simulation 결과

Shift register 주어진 entity를 사용할 것 Clock 주기는 10 ns로 할 것 Testbench는 다음을 따를 것 wait for 103 ns; pi <= “1010”; enable <= '1'; wait for 50 ns; reset <= '1'; enable <= '0'; wait for 60 ns; wait for 100 ns; pi <= "1011"; wait for 40 ns; mode <= "01"; wait for 20 ns; wait for 20 ns; dir <= '1'; wait for 40 ns; mode <= "10"; dir <= '0'; mode <= "00"; pi <= "1010"; mode <= "11"; reset <= '0';