FSM 설계.

Slides:



Advertisements
Similar presentations
3 학년 -54 명 4 학년 -53 명 3.4 학년 총인원 -107 명 교사 -21 명 초 등 부 총인원 -128 명 2008 년 1 월 인원보고.
Advertisements

스트링 처리 알고리즘. 2 목차 스트링 탐색 알고리즘 – 직선적 알고리즘 –KMP 알고리즘 – 보이어 - 무어 알고리즘 – 라빈 - 카프 알고리즘 패턴 매칭 알고리즘 화일 압축 알고리즘 – 런 - 길이 인코딩 – 가변 - 길이 인코딩 암호화 알고리즘 – 단순한 기법 –
1 8 장 대형 순차회로 문제의 해법 1) 시프트 레지스터 2) 카운터 3)ASM 도를 이용한 설계 4)One Hot encoding 5) 복잡한 예제.
임진수 이현철. 회로 설계 과정 합성 ?  합성 도구가 주어진 HDL 코드를 Library 에 맞춰 회로로 변경시켜주는 과정  모든 코드가 합성되는 것은 아니다 !

1 08 Simple Sequential Logic Design with Finite State Machines & Timing Design.
Introduction 2007년 2학기.
VHDL Package & Subprogram
Copyright SangSangDom, All Rights Reserved.
VHDL 프로그램은 비동기 Reset을 갖는 D 플립플롭을 구현한 것이다
Dept. of Electronics & Info. Eng. Prof. Jongbok Lee
ASIC의 개요 ASIC(Application Specific Integrated Circuit) 특정 용도 주문형 집적회로
디지털 시계 설계.
Digital Logic Structures
Design of Digital Clock (디지털 시계의 설계)
미디어시스템프로젝트1 (졸업프로젝트).
교육 PROCESS 제일엠앤이주식회사.
제 7 장 문장 구조화 제어문 지정문 조건문 반복문 GOTO 문 비결정적문.
순차로직 개요.
디지털 산술과 연산회로.
1. VHDL과 합성 설계 1.1 HDL: Hardware Description Language 집적회로의 설계환경의 변화
가산기 설계.
Multiplexer 설계.
VHDL의 기본 Lecture #5.
Verilog HDL 이론.
VHDL Description D-latch C=1 일 때 Q 는 D의 입력 값 이 전달된다.
신호등 제어기 차량의 흐름에 따라 신호등의 신호를 제어하는 장치 신호등 제어기의 입출력 신호
제 6 장 프로세스 동기화 (Process Synchronization)
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 패키지에 정의되어 있음.
Quartus 를 이용한 ROM 설계 ROM table 의 작성
순차 회로 설계 및 검증 Sun, Hye-Seung.
시스템 분석 및 설계.
Flip-Flop 설계.
Section 02 덧셈 회로 BCD 덧셈 회로 BCD 코드에서 십진수 (16)BCD =
오브젝트 하드웨어 기술 언어 IT CookBook, VHDL을 이용한 디지털 회로 입문.
4 병행 프로세스와 상호배제.
HW (5월 11일 제출) P405 문제 7 a), d) 주어지 회로에 대한 상태표를 완성하고 주어진 입력에 대한
Programmable Logic Device
- 나는 내 마음의 주인공 – 집단상담프로그램 인제대학교 교육대학원 상담심리전공 하 정 선
Chapter 4 The Von Neumann Model.
VHDL Mealy and Moore model
MS. Pac Man Jang Su-Hyung.
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
활동 다이어그램(Activity Diagram)
제 6 장 프로세스 동기화 (Process Synchronization)
D:\win_9X\setup.exe 또는 D:\win_XP\setup.exe 을 클릭하여 설치합니다.
VHDL.
2. 상호배제와 동기화 01 program versionone; // 첫 번째 버전
VHDL 디지털시계 2.
가산기 설계.
루브르 박물관 작품 Review 웹 기획을 하는 방법 이라기 보단 더 잘하기 위한 노력이 중요하다.
디 지 털 공 학 한국폴리텍V대학.
법인객실 예약 메뉴얼 하이원리조트 중부사무소.
디지털 시계 설계 장성락 전영진 임종엽 전보현 이형준.
컴퓨터 계측 및 실습 로터리 엔코더 영남대학교 기계공학부.
LCD.
낙관주의자는 극심한 불운 속에서도 기회를 보고, 비관주의자는 엄청난 기회 속에서도 불운을 본다.
DEGITAL LOGIC CIRCUIT Term Project – 4 bit ALU.
VHDL 응용 Lecture #10.
Lecture 7 7-Segment LED controller using u-controller
Presentation transcript:

FSM 설계

Contents RAM Finite State Machine(FSM) Mealy machine Moore machine 3bits up/down counter Binary/gray counter 실습내용

RAM entity raminfr is port( clk, en, we : in std_logic; addr, di : in std_logic_vector( 3 downto 0 ); do : out std_logic_vector( 3 downto 0 ) ); end entity raminfr; architecture Behavioral of raminfr is type ram_type is array(15downto0)of std_logic_vector(3downto0); signal RAM : ram_type; signal read_addr : std_logic_vector( 3 downto 0 ); Begin process( clk ) begin if( clk = '1' and clk'event ) then if( en = '1' ) then if( we = '1' ) then RAM( conv_integer( addr ) ) <= di; end if; read_addr <= addr; end process; do <= RAM( conv_integer( read_addr ) ); end architecture Behavioral;

FSM Finite State Machine 짝수, 홀수 parity 검사기 일정한 천이 가능한 상태 내에서만 동작하는 순차 논리 회로 FSM의 출력과 다음상태는 현재 상태와 출력에 의해 결정 짝수, 홀수 parity 검사기 연속으로 입력되는 binary code 중 ‘1’의 수를 세어 parity 출력 짝수 parity 검사기 ‘1’의 개수가 홀수일 때 ‘1’을 출력 홀수 parity 검사기 ‘1’의 개수가 짝수일 때 ‘1’을 출력

짝수 parity 검사기 State diagram(상태도) ‘even’과 ‘odd’의 두가지 상태를 가짐 현재 까지 입력이 홀수 일때 0이 입력되면 그대로 홀수 1이 입력되면 짝수 상태천이를 나타내는 화살표 ‘제어입력/출력’의 형태로 표기 even odd 1/0 1/1 0/1 0/0

짝수 parity 검사기 State transition table(상태표) 상태표를 이용한 논리식 Even을 ‘0’, odd를 ‘1’ 상태표를 이용한 논리식 현재 상태(PS), 입력값(PI), 다음상태(NS), 추력(PO) Present state Input Next state Output 1

짝수 parity 검사기 DFF를 이용한 구현

Mealy machine 클럭의 이벤트와 상관없이 입력 값의 변화에 따라 출력이 즉시 반영 S는 FSM의 상태 집합, I는 제어 입력신호 집합, O는 출력 신호 집합 비동기 동작 특성을 가지고 있음

Moore machine 현재의 상태에 의해서만 출력값이 결정 클럭과 함께 동기동작

Mealy vs. Moore machine 일반적으로 밀리 상태기계는 천이에 의해서 출력값이 결정되므로 무어 상태기계보다 더 적은 상태 개수만으로도 동작 수행가능 두개 이상의 ‘0’이 둘어왔을 때 ‘1’을 출력하는 FSM

3bits up/down counter Increment input에 따른 증가 카운트 및 감소 카운트의 동작 Rst_n Clk Cnt Low x 000 High ↑ Down count Up count Up/down counter Clk Incr Rst_n Cnt 3

3bits up/down counter 상태표 CS INPUT NS 000 1 001 111 110 010 101 011 110 010 101 011 100

3bits up/down counter 상태도 S0 S7 S4 S6 S5 S1 S2 S3 1

3bits up/down counter Module library IEEE; use ieee.std_logic_1164.all; entity updown_cnt is port( clk, rst_n, incr : in std_logic; cnt : out std_logic_vector(2 downto 0)); end entity updown_cnt; architecture Behavioral of updown_cnt is signal state : std_logic_vector(2 downto 0); signal next_state : std_logic_vector(2 downto 0); begin cnt <= state; -- state registers process( clk, rst_n ) if( rst_n = '0' ) then state <= "000"; elsif( clk = '1' and clk'event ) then state <= next_state; end if; end process; -- fsm counter process( state, incr ) Begin Case state is when "000" => if( incr = '1' ) then next_state <= "001"; else next_state <= "111"; when "001" => next_state <= "010"; next_state <= "000"; when "010" => if( incr = '1' ) then next_state <= "011"; else next_state <= "001"; end if; when "011" => next_state <= "100"; next_state <= "010"; when "100" => next_state <= "101"; when "101" => next_state <= "110"; when "110" => next_state <= "111"; when others => next_state <= "000"; end case; end process; end architecture Behavioral;

3bits up/down counter Simulation result

Binary/gray counter Binary count Gray count 000, 001, 010, 011, 100, 101, 110, 111 Gray count 000, 001, 011, 010, 110, 111, 101, 100

Binary/gray counter Mode 입력에 따른 선택적 동작 Rst_n Mode Clk Cnt Low x 000 High ↑ Gray count Binary count Binary/gray counter Clk Mode Rst_n Cnt 3

Binary/gray counter 상태표 CS MODE NS 000 1 001 010 011 110 100 101 111

Binary/gray counter 상태도 S0 S7 S4 S6 S5 S1 S2 S3 1 0,1

실습내용 Binary/gray counter 설계 앞서의 binary/gray counter를 설계 주어진 entity, 상태표 및 상태도 사용 Testbench는 임의의 입력으로 작성( counter의 특성을 충분히 보여 줄 수 있는 입력을 직접 입력 ) entity bin_gray_cnt is port( clk, rst_n, mode : in std_logic; cnt : out std_logic_vector( 2 downto 0 ) ); end entity bin_gray_cnt;