- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[시스템분석및설계] 11,12장 3비트 2진 카운터, 3비트 시프트 레지스터 예비레포트 본문
◎ 실험 목적
▶ 3비트 2진 카운터와 3비트 시프트 레지스터의 동작을 VHDL로 기술하고, 시뮬레이션을 통해 동작을 검증한다.
◎ 이론 설명
▶ 3비트 2진 카운터
① 카운터(Counter)란 들어오는 입력 신호(보통은 클록 신호)의 펄스의 개수를 해아려 그 값을 출력으로 나타내어 주는 회로를 일컫는다.
② 3비트 2진 카운터는 출력 값이 3비트의 2진 값으로 나타내어지는 카운터이다.
③ 카운터 회로에서는 출력 값을 계속 유지할 수 있어야 하기 때문에 저장 소자인 플립플롭 의 사용이 필수적이다. 따라서 카운터는 플립플롭으로 구성되어진다.
④ 카운터가 들어오는 클록 신호의 펄스 수에 따라 출력 값을 1씩 증가시켜 간다는 기능을 한다는 점만 상기하면, 그 설계는 그리 어렵지 않다.
⑤ 카운터는 자기가 나타낼 수 있는 최대값 이후에 다시 펄스가 들어오면 초기값인 0으로 순환된다는 점도 유의해야 한다.
⑥ 상태도
⑦ 상태표와 여기표
▶ 3비트 시프트 레지스터
① 레지스터(Register)란 여러 개의 비트 데이터를 저장하는 데 쓰이는 디지털 저장 소자를 말하는데, 실제적으로는 F/F의 그룹으로 구성된다.
② 시프트 레지스터(Shift Register)란 레지스터의 일종으로 그 레지스터에 저장되어 있는 데이터를 클록에 따라 좌, 우 혹은 양방향으로 이동할 수 있도록 되어 있는 레지스터를 말한다.
③ 데이터의 이동이 LSB 쪽에서 MSB 쪽으로 되는지, 아니면 그 반대인지를 잘 이해할 필 요가 있다.
④ 설계자는 데이터의 이동 방향이 MSB, LSB 중 어느 쪽인지를 항상 유의하여야만, 레지 스터에 저장된 데이터를 활용하는 데에 착오가 생기지 않는다.
⑤ VHDL 코드에서 실제 시프트가 일어나도록 하는 구문은 아래와 같다.
if clk'event and clk ='1' then
q ( 2 downto 0 ) <= q ( 1 downto 0 ) & d_in;
-> 이것이 q값이 LSB로부터 MSB쪽으로 이동되는 것을 의미한다.
◎ 실험 장비
▶ Xilinx ISE
▶ ModelSIM
▶ Rov-Lab 트레이닝 키트
◎ 실험 순서
▶ 3비트 2진 카운터
① 3비트 2진 카운터의 동작을 VHDL로 기술
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity cnt3 is Port ( pr_b : in std_logic; clr_b : in std_logic; clk : in std_logic; q : inout std_logic_vector(2 downto 0)); end cnt3; architecture Behavioral of cnt3 is begin process( pr_b , clr_b , clk ) begin if pr_b = '0' then q <= "111"; elsif clr_b = '0' then q <= "000"; elsif clk'event and clk = '1' then if q = "111" then q <= "000"; else q <= q+1; end if; end if; end process; end Behavioral;
② TestBenchWaveform으로 시뮬레이션
주어진 입력(pr_b, clr_b, clk)에 따라 출력(q)이
진리표대로 정확하게 출력되는지를 검증
③ 트레이닝 키트로 동작 검증
주어진 입력(pr_b, clr_b, clk)에 따라 출력(q)이
진리표대로 정확하게 출력되는지를 검증
▶ 3비트 시프트 레지스터
① 3비트 시프트 레지스터의 동작을 VHDL로 기술
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity is Port ( pr_b : in std_logic; clr_b : in std_logic; clk : in std_logic; d_in : in std_logic; q : inout std_logic_vector(2 downto 0) ); end shift3; architecture Behavioral of shift3 is begin process ( pr_b , clr_b , clk ) begin if pr_b = '0' then q <= "111"; elsif clr_b = '0' then q <= "000"; elsif clk'event and clk = '1' then q(2 downto 0) <= q(1 downto 0) & d_in; end if; end process; end Behavioral;
=> 새로운 q(0)값은 외부로부터의 데이터 입력인 d_in값으로 결정되도록 되어 있다.
② TestBenchWaveform으로 시뮬레이션
주어진 입력(pr_b, clr_b, clk, d_in)에 따라 출력 (q)이 진리표대로 정확하게 출력되는지를 검증
③ 트레이닝 키트로 동작 검증
주어진 입력(pr_b, clr_b, clk, d_in)에 따라 출력 (q)이 진리표대로 정확하게 출력되는지를 검증
'★─Multi Media > ☆─2학년 2학기' 카테고리의 다른 글
[시스템분석및설계] 14, 15장 7 세그먼트 제어기 설계, 스텝 모터 제어기 설계 예비레포트 (0) | 2008.03.11 |
---|---|
[시스템분석및설계] 11,12장 3비트 2진 카운터, 3비트 시프트 레지스터 결과보고서 (2) | 2008.03.11 |
[시스템분석및설계] 10장 D FF, JK FF 결과보고서 (0) | 2008.03.11 |
[시스템분석및설계] 10장 D 플립플롭, JK 플립플롭 예비레포트 (0) | 2008.03.10 |
[물리및실험] 선팽창계수 ( 엑셀 ) (0) | 2008.03.10 |