Slides:



Advertisements
Similar presentations
연천 새둥지마을 체재형 주말농장 준공식 초청장 오시는 길 주제 일시 장소 21C 경기농촌희망심기 2005년 제1기 교육수료마을
Advertisements

SPARCS Wheel Seminar Mango X Sugoi
출석수업 자료 교과서 범위: 제1장-4장.
10월 충북노회 남선교회 순회 헌신예배 묵 도 기 도 성 경 봉 독 특 송 찬 양 설 교 찬양 / 봉헌 봉 헌 기 도
글에 나타난 시대적 사회적 배경을 파악할 수 있다. 배경 지식과 의미 해석의 관련성을 이해할 수 있다.
패널자료 분석
라오디게아 교회의 교훈 본문 계 3: ○라오디게아 교회의 사자에게 편지하라 아멘이시요 충성되고 참된 증인이시요 하나님의 창조의 근본이신 이가 이르시되 15. 내가 네 행위를 아노니 네가 차지도 아니하고 뜨겁지도 아니하도다 네가 차든지 뜨겁든지 하기를 원하노라.
한알Ⅱ「더불어 살기」전국대회 일정표 날짜 시간 7월 26일(목) 7월 27일(금) 7월 28일(토) 7월 29일(일)
2013학년도 전라북도고등학교신입생 입학전형 기본계획
선거관리위원회 위원 공개모집 4차 공고 제4기 선거관리위원회를 구성하는 위원 모집의
2015학년도 1학기 버디 프로그램 오리엔테이션 (목) 16:00.
열왕기하 1장을 읽고 묵상으로 예배를 준비합시다..
오늘의 학습 주제 Ⅱ. 근대 사회의 전개 4. 개항 이후의 경제와 사회 4-1. 열강의 경제 침탈 4-2. 경제적 구국 운동의 전개 4-3. 사회 구조와 의식의 변화 4-4. 생활 모습의 변화.
전도축제 계획서 *일시 : 2013년 4월 21, 28일 주일 (연속 2주)
2009학년도 가톨릭대학교 입학안내.
한국 상속세 및 증여세 과세제도 한국 국세공무원교육원 교 수 최 성 일.
중세시대의 의복 학번 & 이름.
다문화가정의 가정폭력의 문제점 연세대학교 행정대학원 정치행정리더십 2학기 학번 이름 홍 진옥.
이공계의 현실과 미래 제조업 立國 / 이공계 대학생의 미래 준비
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
◆ 지난주 반별 출석 보기 ◆ 제 56 권 26호 년 6월 26일 반 선생님 친구들 재적 출석 5세 화평 김성희 선생님
第1篇 자치입법 개론.
교직원 성희롱·성폭력·성매매 예방교육 벌교중앙초등학교 박명희
제5장 새로운 거버넌스와 사회복지정책 사회복지정책이 어떤 행위자에 의해 형성되고 집행되는지, 어떤 과정에서 그러한 일들이 이루어지는지, 효과적인 정책을 위해서는 어떤 일들이 필요한지 등을 본 장에서 알아본다 개인들이 생활을 개선하는 가장 효과적인고 궁극적인 방법은 개별적.
임상시험 규정 (최근 변경 사항 중심으로) -QCRC 보수 교육 과정 전달 교육
서울특별시 특별사법경찰 수사 송치서류 유의사항 서울특별시 특별사법경찰과 북부수사팀장 안   진.
특수학교용 아동학대! 제대로 알고 대처합시다..
사회복지현장의 이해 Generalist Social Worker 사회복지입문자기초과정 반포종합사회복지관 김한욱 관장
학교보건 운영의 실제 한천초등학교 이 채 금.
제 출 문 고용노동부 귀중 본 보고서를 ’ ~ ‘ 까지 실시한 “근로감독관 직무분석 및 교육프로그램 개발에 관한 연구”의 최종보고서로 제출합니다  연구기관 : 중앙경영연구소  프로젝트 총괄책임자 : 고병인 대표.
학습센터란? 기도에 관해 배울 수 있는 다양한 학습 코너를 통하여 어린이들이 보다 더 쉽게 기도를 알게 하고, 기도할 수 있게 하며, 기도의 사람으로 변화될 수 있도록 하는 체험학습 프로그램이다. 따라서 주입식이지 않으며 어린이들이 참여할 수 있는 역동적인 프로그램으로.
Digital BibleⅢ 폰속의 성경 디지털 바이블 2008년 12월 ㈜씨엔커뮤니케이션 ㈜씨엔엠브이엔오.
후에 70인역(LXX)을 좇아 영어 성경은 본서의 중심 주제인 “엑소도스”(출애굽기)라 하였다.
성 김대건 피츠버그 한인 성당 그리스도왕 대축일 공지사항
예배에 대하여.
말씀 듣는 시간입니다..
하나님은 영이시니 예배하는 자가 신령과 진정으로 예배할지니라.
지금 나에게 주신 레마인 말씀 히브리서 13장 8절.
예수의 제자들 담당교수 : 김동욱.
Lecture Part IV: Ecclesiology
KAINOS 날마다 더하여지는 Kainos News 이번 주 찬양 20 / 300 – 20개의 셀, 300명의 영혼
예배의 외부적인 틀II - 예배 음악 조광현.
영성기도회 렉시오 디비나와 묵상기도 2.
성인 1부 성경 공부 지도목사: 신정우 목사 부 장: 오중환 집사 2010년. 5월 9일
남북 탑승객 150명을 태운 디젤기관차가 2007년 5월 17일 오전 경의선 철길을 따라 남측 최북단 역인 도라산역 인근 통문을 통과하고 있다. /문산=사진공동취재단.
성경 암송 대회 한일교회 고등부 (일).
천주교 의정부교구 주엽동본당 사목협의회 사목활동 보고서
III. 노동조합과 경영자조직 노동조합의 이데올로기, 역할 및 기능 노동조합의 조직형태 노동조합의 설립과 운영
여수시 MICE 산업 활성화 전략 ( 중간보고 )
1. 단위사업 관리, 예산관리 사업설정 (교직원협의/의견수렴) 정책 사업 학교 정책 사업 등록 사업 기본정보 목표 설정
※과정 수료자에 한하여 수강료의 80~100% 차등 환급함
평생학습중심대학 프로그램 수강지원서 접수안내 오시는 길 관악구&구로구민을 위한 서울대학교 -- 접수 일정 및 방법 안내--
서비스산업의 선진화, 무엇이 필요한가? 김 주 훈 한 국 개 발 연 구 원.
기존에 없던 창업을 하고 싶은데, 누구의 도움을 받아야 할지 모르겠어요
전시회 개요 Ⅰ. 전시명칭 개최기간 개최장소 개최규모 주 최 참 관 객 현 지 파 트 너 General Information
Homeplus 일 家 양 득 프로그램 소개 2015년 12월.
Home Network 유동관.
통신이론 제 1 장 : 신호의 표현 2015 (1학기).
I. 기업과 혁신.
Chapter 4 – 프로그래밍 언어의 구문과 구현 기법
ESOCOM – IPIX 고정IP서비스 제안서 Proposer ㈜이소컴.
화장품 CGMP 한국콜마㈜.
초화류 종자 시장 규모 100억원 이상(추정, 생산액의 10%정도 차지)
COMPUTER ARCHITECTIRE
[ 한옥 실측 ] 1. 약실측 2. 정밀실측 조선건축사사무소.
14. 컴파일러 자동화 도구 스캐너 생성기 파서 생성기 코드 생성의 자동화
A제조용수/B환경관리/C시설관리 ㈜ 에이플러스 코리아
Introduction to Network Security
화재보험 건물구조급수 해설서 인 스 팩.
Presentation transcript:

카운터와 쉬프트 레지스터

단원목차 1. 디지털 카운터의 기본개념 2. 동기식 카운터 3. 동기식 카운터의 설계 4. 이진 카운터의 VHDL 프로그래밍 5. 동기식 카운터의 제어 옵션 6. 프리세트과 양방향 카운터의 VHDL 프로그래밍 7. 시프트 레지스터 8. 시프트 레지스터 VHDL 프로그래밍 9. 시프트 레지스터 카운터

카운터와 관련된 용어 카운터: 펄스를 계수하는 순서회로. 용도: 이벤트 계수, 주파수 분주, 타이밍 및 제어동작. 시프트 레지스터: 저장된 데이터 비트를 특정한 방향으로 이동시키는 순서회로로, 직렬 데이터 전송, SIPO/PISO 변환, 연산, 지연회로 등에 사용된다. 카운터는 출력이 미리 정해진 패턴으로 진행하는 디지털 회로이다. 진행은 매 클록 펄스마다 한 단계씩 이루어 진다. 상태도(State Diagram): 카운터와 같은 순서회로에서 상태의 진행을 보여주는 그래픽 도.

카운터 모듈러스(Counter Modulus) 카운터의 모듈러스는 한 반복구간에서의 카운터 진행상태의 수를 말한다.(mod-N) Mod-12 상승 카운터는 0000에서 1011까지(0~11) 의 12 상태를 계수하고 반복된다. Mod-12 하강 카운터는 1011에서 0000까지(11~0) 의 12 상태를 계수하고 반복된다.

카운터 상태도 Figure 9.2

절단된(Truncated) 카운터 최대 모듈러스(2N)를 계수하는 N-Bit 카운터는 소위 Full Sequence Counter 라 한다. (Mod-2, Mod-4, Mod-8 등) 계수 가능한 최대 모듈러스보다 적은 수를 계수하는 N-Bit 카운터를 Truncated Sequence Counter 라 한다.(Mod-3 (N=2), Mod-12 (N=4)) Mod-12 카운터는 0000에서 1011까지를 계수하지만, Mod-16 카운터는 0000에서 1111까지 계수한다. 양쪽 카운터는 4-Bit (N=4)이다.

타이밍 도 카운터의 출력(Q0  Q3)은 주파수 분주기로 사용될 수 있다.(Q0 = Clock  2, Q1 = Clock  4, Q2 = Clock  8, and Q3 = Clock  16) Figure 9.4

동기식 카운터 Fig. 9.8 : 동기식 카운터 블록 도 Direct the counter to its next state (combinational logic) Keep the present state (sequential logic)

동기식 카운터 설계 상태변화와 입/출력을 보여주는 상태도를 그린다. 상태표(현재와 다음상태)를 생성한다. 현재상태는 이진순서대로, 다음상태는 상태도에 근거하여 리스트를 작성한다. 플립플롭의 입력 식을 도출하기 위해, 현재상태에서 다음상태로의 천이에 근거한 플립플롭 여기표를 작성한다. 부울식의 간략화 과정을 통해 각 입력식을 최적화 한다. 이러한 과정은 매우 지루한 작업이다. 카운터 설계를 위한 VHDL 설계방법은 시간이 걸리지 않고 매우 쉽게 구현할 수 있다.

동기식 카운터 설계(예 9.5) Fig. 9.18

D3 = /Q3Q2Q1Q0 + Q3/Q2 + Q3/Q1 + Q3/Q0 = /Q3Q2Q1Q0 + Q3(/Q2 + /Q1 + /Q0) = /Q3Q2Q1Q0 + Q3/(Q2Q1Q0) = Q3 XOR Q2Q1Q0 D2 = /Q2Q1Q0 + Q2/Q1 + Q2/Q0 = /Q2Q1Q0 + Q2(/Q1 + /Q0) = /Q2Q1Q0 + Q2/(Q1Q0) = Q2 XOR Q1Q0 D1 = Q1/Q0 + /Q1Q0 = Q1 XOR Q0 D0 = /Q0 = Q0 XOR 1

VHDL에 의한 이진 카운터 프로그래밍 순차 카운터는 다음 카운터 상태로의 천이를 제어하기 위해 프로세스 문을 사용한다. VHDL Attribute는 클록에지를 정의하기 위한 식별자(identifier)와 함께 사용된다. 클럭은 소위 EVENT로 불리는 Attribute를 사용한다. 즉, 클록 이벤트의 상승에지를 정의하기 위해 (clk’EVENT AND clk=‘1’) 를 사용한다. INPUTS ACTION RESET=1 CLK=1 CLK’event FALSE FALSE FALSE Unspecified FALSE FALSE TRUE Unspecified FALSE TRUE FALSE Unspecified FALSE TRUE TRUE Q <= D TRUE - - Q <= ‘0’

카운터의 행위적 기술(1) Basic Entity for Binary Counter with Asynchronous Clear. ENTITY ct_simp IS PORT( clk, clear : IN BIT; q : OUT INTEGER Range 0 to 255); END ct_simp; -- Counter Outputs (8 Bit) are given as an integer with a -- range of 0 to 255 (Full Sequence Counter)

ARCHITECTURE a OF ct_simp IS BEGIN PROCESS(clk, clear) VARIABLE count : INTEGER RANGE 0 to 255; IF(clear = ‘0’) THEN count := 0; ELSE IF(clk’EVENT AND clk = ‘1’) THEN count := count + 1; -- integer(no quote) END IF; q <= count; END PROCESS; END a; -- Synchronous reset IF(clk’EVENT AND clk = ‘1’) THEN IF clear = ‘0’ THEN count := 0; ELSE count := count +1; END IF;

카운터의 행위적 기술(2) 프로세스는 clk나 clear에서 변화가 있을 때 실행하는 것을 규정한다. 비동기식 클리어는 ‘clk EVENT’ 앞에 위치한다. clk attribute (EVENT)는 상승에지로 규정된다. 다음상태로의 천이는 단순히 정수가산(count := count +1)에 의해 제어된다. 이와 같은 접근방법은 다른 하드웨어(곱셈기, 제산기 등) 설계에서도 적용할 수 있다. 예에서, 변수 ‘count’는 정수동작(increment)을 위해 사용되었다. 이 경우 신호할당 연산자(<=) 대신 변수신호 할당 연산자 (:=) 를 사용하였다.

Variable vs. Signal Variable(변수)는 PROCESS 문에서만 사용할 수 있다. 즉시 할당의 개념임. wire 요소를 나타낼 수 없음. Signal : PROCESS ( ) B <= A; C <= B; END PROCESS; -- PROCESS 종료시점 평가됨. 따라서 프로세스 종료 후에는 -- B = A(original), C = B(original) Variable : B := A; C := B; END PROCESS; -- 즉시 평가됨. 따라서 프로세스 종료 후에는 -- B = A(original), C = A(original)

LPM 카운터(1) 알테라 LPM(Library of Parameterized Modules) 카운터는 VHDL에서 카운터 설계를 생성하기 위해 사용될 수 있다. 이것은 설계계층에서 하나의 컴포넌트로 LPM-Counter 를 활용하는 구조적 설계 접근 방법이다. LPM 카운터는 구조적 설계에서 사례화된다. ‘width’와 같은 LPM 카운터의 기본 파라미터들은 ‘Generic Map’ 와 함께 정의된다. ‘Port Map’은 LPM 카운터 I/O를 실제 VHDL 설계 엔티티에 연결시키기 위해 사용된다. lpm 카운터를 이용 시 ‘behavioral description’ 은 필요 없다.

LPM 라이브러리 선언과 엔티티 통상의 STD_LOGIC에 Altera LPM Library를 추가한다. The ieee library must be declared before the LPM library. LIBRARY ieee; USE ieee.std_logic_1164.ALL; LIBRARY LPM USE lpm.lpm_components.ALL; Entity for an 8-Bit Mod-256 Counter. LPM requires the use of STD_LOGIC data types. ENTITY lpm_simp IS PORT( clk, clear : IN STD_LOGIC; q : OUT STD_LOGIC_VECTOR(7 downto 0)); END lpm_simp;

LPM Architecture(1) Architecture는 폭이 8-비트로 정의되고, LPM I/O에 clk, clear, q가 매핑되는 Generalized LPM 카운터를 사용한다. 이 경우, 계수를 위한 어떤 정수표현과 클럭 또는 비동기를 제어하는 프로세스(process)도 필요하지 않다. 이들은 프로그램이 가능한 ‘width counter’로 매핑된다. _instance_name : _component_name GENERIC MAP (_parameter_name => _parameter_value, _parameter_name => _parameter_value) PORT MAP (_component_port => _connect_port, _component_port => _connect_port); -- component_name : LPM component name -- parameter_name : name defined in LPM component -- component_port : LPM port name -- connect_port : name declared in the entity or as signals or variables

LPM Architecture(2) ARCHITECTURE count OF lpm_simp IS SIGNAL clrn : STD_LOGIC; -- for inverting active level of LPM_clear BEGIN count8 : lpm_counter GENERIC MAP(LPM_WIDTH => 8) PORT MAP(clock => clk, aclr => clrn, q => q(7 downto 0)); clrn <= NOT clear; END count;

동기식 카운터를 위한 제어 옵션 Parallel Load: 특정 이진 값을 카운터로 동기 또는 비동기식으로 로딩하는 것을 허용하는 함수. Clear: 비동기 또는 동기식 리셋 Preset: 동기 또는 비동기 세트 Counter Enable: 카운터가 카운터 동작을 진행할 지 또는 정지할 지를 제어하는 함수. BiDirectional: 카운터가 상승 카운트에서 하강 카운트로 변환되는 것을 제어하는 함수.

4-비트 병렬 로드 카운터(1) 프리셋 카운터(Parallel Load)는 4-비트 병렬 데이터 입력을 동기적으로 또는 비동기적으로 로드 할 수 있는 추가입력(Load)을 가진다.

동기식 로드 카운터(1) Fig. 9.23 synchronous load function Fig. 9.24 counter element(msb in fig9.19) with syn. load

동기식 로드 카운터(2) General counter element Fig. 9.25 Counter Element with Synchronous Load/ Asynchronous Reset (sl_count)

동기식 로드 카운터(3) Fig. 9.26 4-bit counter with synchronous load and asynchronous reset Refer to Fig. 9.27 Simulation results

비동기식 로드 카운터(1) Fig. 9.29 Fig. 9.30 (al_count)

비동기식 로드 카운터(2) Fig. 9.31

비동기식 로드 카운터(3) Fig. 9.32 Simulation of a 4-bit counter with asynchronous load and reset

Count Enable 로직(1) Fig. 9.33

Count Enable 로직(2) Fig. 9.34 Simulation of a 4-bit counter with synchronous load, asynchronous reset, and count enable

T-FF를 사용한 양방향 카운터(1) Adds a Direction Input(DIR) to the counter and the Control Logic for Up or Down Counting. Fig. 9.37 Synchronous counter element(T-FF)

Bidirectional Counter (Fig. 9.38)

양방향 카운터(2) Fig. 9.39 Simulation of 4-bit bidirectional counter

카운터 출력의 디코딩 Fig. 9.40

4-to-16 디코더의 VHDL 코드 Base specifier(string 사용 시) 2진 : bit_vector, B 16진 : X Ex) a <= X“7A” (a <= “01111010”) A <= O“76” (a <= “111110”)

4-to-16 디코더 시뮬레이션

카운터 종료(Terminal Count) 디코더

RCO를 갖는 4-bit 양방향 카운터

RCO를 갖는 4-bit 양방향 카운터의 시뮬레이션

-- 8-bit presettable counter with asynchronous clear and load and terminal count decoding ENTITY pre_ct8a IS PORT( clk, count_ena : IN BIT; clear, load, direction : IN BIT; p : IN INTEGER RANGE 0 TO 255; max_min : OUT BIT; qd : OUT INTEGER RANGE 0 TO 255); END pre_ct8a; ARCHITECTURE a OF pre_ct8a IS BEGIN PROCESS (clk, clear, load) -- clear and load are asynchronous and independent on clock VARIABLE cnt : INTEGER RANGE 0 TO 255; IF (clear = '0') THEN -- Asynchrnous clear, clear is firstly checked because of the highest priority cnt := 0; ELSIF (load = '1' and clear = '1') THEN -- Asynchronous load, the second priority cnt := p; ELSE IF (clk'EVENT AND clk = '1') THEN IF (count_ena = '1' and direction = '0') THEN cnt := cnt - 1; ELSIF (count_ena = '1' and direction = '1') THEN cnt := cnt + 1; END IF; qd <= cnt; -- Terminal count decoder IF (cnt = 0 and direction = '0') THEN max_min <= '1'; ELSIF (cnt = 255 and direction = '1') THEN max_min <= '1'; max_min <= '0'; END PROCESS; END a;

-- 8-bit presettable counter with synchronous clear and load and terminal count decoding ENTITY pre_ct8s IS PORT( clk, count_ena : IN BIT; clear, load, direction : IN BIT; p : IN INTEGER RANGE 0 TO 255; max_min : OUT BIT; q : OUT INTEGER RANGE 0 TO 255); END pre_ct8s; ARCHITECTURE a OF pre_ct8s IS BEGIN PROCESS (clk) VARIABLE cnt : INTEGER RANGE 0 TO 255; IF (clk'EVENT AND clk = '1') THEN -- A clock event is firstly checked because of synchronous clear. IF (clear = '0') THEN -- Synchronous clear cnt := 0; ELSIF (load = '1') THEN -- Synchronous load cnt := p; ELSIF (count_ena = '1' and direction = '0') THEN cnt := cnt - 1; ELSIF (count_ena = '1' and direction = '1') THEN cnt := cnt + 1; END IF; qd <= cnt; - Terminal count- decoder IF (cnt = 0 and direction = '0') THEN max_min <= '1'; ELSIF (cnt = 255 and direction = '1') THEN ELSE max_min <= '0'; END PROCESS; END a;

8-bit 양방향 카운터 RCO

Asynchronous load and clear

Priority of counter enable, asynchronous load and clear Priority of counter enable, synchronous load and clear

LPM 카운터 기본적으로 사용하는 port는 clock, q[ ], eq[ ], parameter는 LPM_WIDTH 임. 그 외에 나머지는 option임. LPM_WIDTH를 제외한 모든 Parameter들은 double quote.

LPM 카운터 예(1) – 8-bit updown counter

LPM 카운터 예(2) – Mod-500 down-counter 9-bit: 29 = 512

Mod-500 down-counter

LPM 카운터 예(3) – 12-bit counter with aclr and sset

LPM 카운터 예(3) – Sim. of a 12-bit counter with sset