VHDL의 모든 것
본 자료는 5페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
해당 자료는 5페이지 까지만 미리보기를 제공합니다.
5페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1. VHDL(Very High Speed Integrated Circuit Hardware Description Language) 특징

2. VHDL 규칙과 표현

3. Entity 선언과 Architecture Body 선언

4. 객체(Object)와 자료형(Data Type) 및 연산자(Operator)

5. 동작적 표현(Behavioral Description)과 구조적 표현 (Structural Desciption)

6. 순차 처리문과 병행 처리문

본문내용

수행되어야 하는 else문이 없으므로, else에 해당되는 출력은 과거의 출력 값을 그대로 유지하게 된다. 따라서 출력은 조건이 거짓일 때는 과거의 출력 값을 지녀야 하므로 VHDL 합성시에 기억소자가 내포된다. 이러한 기억소자가 내포된 if문의 예가 Latch와 Flip/Flop이다. Latch와 Flip/Flop의 차이는 if의 조건이 Level Trigger에 의해 출력이 변화되면 Latch이고, if의 조건이 신호의 상승 혹은 하강에 의해,즉 Rising Edge나 Falling Edge Trigger에 의해 출력이 변화되면 Flip/Flop이다. VHDL에서 이들을 표현하기 위해 event라는 예약어를 사용한다.
예) if clk'event and clk = '1' then -- Rising Edge에서 동작하는 Flip/Flop
q <= d;
end if;
if clk'event and clk = '0' then -- Falling Edge에서 동작하는 Flip/Flop
q <= d;
end if;
if en = '1' then -- Leve Trigger에 의해 동작하는 Latch
q <= d;
end if;
③ Case문
Case문은 수식 값에 따라 문장을 선택한다. Case문의 수식 값은 integer형, 열거형 등과 같은 자료형이 주로 사용되며, 진리표와 같은 기능표에 대한 설계에 적합하다. Case문은 When의 값과 비교하여 일치하면 그 문장을 수행한다. When의 수식을 여러 값으로 표현할 때는 '|'(또는)이라는 기호를 사용한다.
예) case sel is
when "00" => y <= d(0);
when "01" => y <= d(1);
when "02" => y <= d(2);
when others => y <= d(3);
end case;
④ Loop문
Loop문은 반복처리 하기 위한 것이다. Loop문은 For-Loop형식과 While-Loop형식 및 단순 Loop형식이 있다. 형식은 다음과 같다.
[ 레이블 ] : for 루프변수 in 변수범위 loop
순차 처리문; -- 변수 범위만큼 반복
end loop [ 레이블 ];
[ 레이블 ] : while 조건 loop
순차 처리문; -- 조건이 참일 때까지 반복
end loop [ 레이블 ];
[ 레이블 ] : loop
순차 처리문; -- 무한 반복
end loop [ 레이블 ];
◈ For-Loop형식
For-Loop문은 루프변수가 1씩 증가 또는 감소하면서, 최종값에 도달할 때까지 Loop문에 둘러싸인 순차 처리문을 반복처리한다. 루프변수는 어떠한 객체로도 선언되지 않아야 되며, 오직 For-Loop의 루프변수로만 사용되어야 한다.
예) entity and_logic is
port ( a, b : in std_logic_vector( 3 downto 0 );
y : out std_logic_vector( 3 downto 0 ) );
end and_logic;
architecture sample of and_logic is
begin
process( a, b )
begin
for I in 3 downto 0 loop
y(i) <= a(i) and b(i); -- 변수 i에 대해서 4번 반복
end loop;
end process;
end sample;
◈ While-Loop형식
While (조건) Loop문은 조건이 참이면 loop에 둘러싸인 순차 처리문을 반복수행한다. While-Loop문의 조건은 반복횟수가 명확히 결정되지 않으면, 논리합성을 할 수 없으므로 주의해야 한다.단순 Loop문은 무한히 반복하므로 Loop를 빠져 나오기 위해서 exit문이 필요하며, While문의 경우와 같이 반복횟수가 정해지지 않을 경우에는 VHDL 논리합성이 될 수 없다. 대부분의 VHDL 합성기는 While-Loop문과 단순 Loop문을 지원하지 않는다.
2. 병행 처리문
하드웨어 회로에서는 입력선로에서 출력선로로 신호가 전달되어 처리될 때 순차처리되는 것이 아니라 병행처리된다. 따라서 하드웨어 구조를 기술하는 VHDL의 문장은 병행처리에 기반을 두고 있다고 볼 수 있다. Architecture문 내부에 표현되는 모든 VHDL 문장은 Process문의 내부를 제외하고는 모두가 순서에 무관하는 병행 처리문이다. 이러한 병행 처리문에는 조건적 병행처리문(When~Else)과 선택적 병행 처리문(With~Select)이 있다.
① 조건적 병행 처리문 :: 순차처리문인 if문과 유사하다.
signal_이름 <= 파형1 when (조건1) else
파형2 when (조건2) else
파형n-1 when (조건n-1) else
파형n;
예) entity logic is
port ( a, b, c, d : in std_logic;
y : out std_logic );
end logic;
architecture sample of logic is
begin
y <= '0' when d='0' else
'0' when c='1' else
'0' when ( a='1' ) and ( b='1' ) else
'1';
end sample;
② 선택적 병행 처리문 :: with이하의 수식값에 의해 판단하며, Case문과 유사하다.
with (수식) select
signal_이름 <= 파형1 when (선택값1),
파형2 when (선택값2),
파형n-1 when (선택값n-1) else
파형n when others;
예) entity logic is
port ( x : in std_logic_vector( 1 downto 0 );
y : out std_logic_vector( 3 downto 0 ) );
end logic;
architecture sample of logic is
begin
with x select
y <= "0001" when "00",
"0010" when "01",
"0100" when "10",
"1000" when others;
end sample;
  • 가격1,500
  • 페이지수15페이지
  • 등록일2003.10.24
  • 저작시기2003.10
  • 파일형식한글(hwp)
  • 자료번호#228300
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니