3. 병렬문
3.1 프로세스문(process statement)
; 순차적으로 서술할 수 있는 독립 모듈
- 알고리즘 표현 가능 도구
- 외부에서 보면(자체는) 병렬문
- 내부는 순차문.
- 여기서 신호 선언 불가.
3.2 동작
- 일종의 무한루프 => 감지리스트 신호 변화에 의해 순차문 수행
3.3 감지리스트
- (process 예약어 다음) or 마지막 순차문 wait문에 위치.
3.4
ex1) process 예약어 다음, sensitivity list 위치.
Process(A,B)
begin
if A>B then
Y <= '0';
else
Y < ='1';
end if;
end process;
==> 가급적 이 코드를 사용할 것.
ex2) wait on 다음에 sensitivity list 위치.
process
begin
if A>B then
Y <= '0';
else
Y <= '1';
end if;
wait on A,B ;
end process;
3.5 delta delay (델타 지연)
; 순차문의 논리적인 실행 순서의 차이를 표현 한 것.
-> 실제 지연 없음
-> 순차문들이 순차적으로 진행하는 것.
=> 감지리스트 신호 변화가 없을 때 : 시뮬레이션 타임 진행
=> 감지리스트 신호 변화가 있을 때 : 델타 지연으로 모델링
- 신호배정문 : 델타지연 발생
- 변수배정문 : 델타지연 없음.(소프트웨어적으로만 배정)
3.5.1 프로세스문의 델타지연.
20 ns : b 신호의 변화 delta cycle : process (a b c)
40 ns : b 신호의 변화
60 ns : a 신호의 변화
80 ns : c 신호의 변화
.5.2.1 지연된 프로세스(postponed process)
; 현재 단계에서 최종 델타 값만 가짐.
-> 프로세스에 예약어 'postponed' 사용
-> 델타 지연을 일으키는 문장 사용 불가.
=> 예약어 'after' 필요.
-> 다음 사이클이 델타지연이 아닐 경우만 실행 재개(?)
-> 논리합성 의도 없음(?)
3.5.2.2 비지연 프로세스
; 일반적인 프로세스 -> 모든 단계에서 델타지연.
3.6. 블록문
; 구조의 모듈화에 사용.(반복되는 구조)
3.6.1 block header
; 블록의 외부 인터페이스 표현 (like entity선언)
- 포트, 제네릭 선언 가능
3.6.2 block declarative part
; 아키텍쳐 선언과 일치(프로세스 선언과 비슷)
-> 신호, 공유변수(shared variable) 선언 가능
-> 콤포넌트 선언 가능
3.6.3 block statement part ; 병렬문으로 구성.
ex)
3.6.4 경호조건
; guard 신호로 block내의 동작 제어
-> 경호 조건 값 = guard신호 값
-> default = boolean형의 guard신호
-> guarded(예약어)를 사용하는 신호에 적용
3.6.4.1 guarded(예약어) 사용 신호
; 프로세스문의 감지리스트에 guard신호가 선언된 것 처럼 동작.
-> guard 신호 암시적 선언
-> guard 신호에 경호조건 암시적 배당.
ex)
등가코드 :
3.7. 병렬 프로시저 호출문.
; 순차 프로시저 호출문(프로세스 내부)과 동일.
ex)
3.8. 병렬 주장문
; 순차 주장문(프로세스 내부)와 동일
3.9. 병렬 신호 배정문
; 순차 신호 배정문(프로세스 내부)와 동일
ex) 예시 그리고 등가코드.
-------------------------------------------------------------------------------------
3.10. 콤포넌트 실체화 문
; 콤포넌트 입출력 신호와 내부 신호의 연결 관계를 정의
ex)
3.10.1.1. 아키텍처 선언부 에서 사용할 Component 선언.
3.10.1.2 아키텍처 문장부에서 Component 실체화문 사용.
3.10.1.3 콤포넌트 in/out 신호 <=> entity의 in/out, 내부 신호와의 연결 정의
-> generic map aspect : generic 신호들의 연결 관계 정의
-> port map aspect : 포트 신호들의 연결관계 정의
3.10.2 콤포넌트 연결
ex)
- Component의 형식 매개변수 => 실 매개변수 연결
- 형식 매개변수(formal parameter)
-> Component 선언에 사용
-> 부프로그램 선언에 사용( => 함수/프로시저)
3.10.2.2 Component 연결방식
3.10.2.2.1 positional association(위치 연결)
-> 형식 매개변수 위치에 실 매개변수 대응.
3.10.2.2.2 named association(이름 연결)
-> 선언 위치에 무관하게 연결
=>두 방법 다 사용을 추천.
3.11. 생성문(= generate문)
generate문 bnf
ex)
-> 정교화(elaboration)매커니즘 => 반복구조/ 조건 분기구조
-> 효율적인 회로 서술.
'전공지식정리 > 디지털시스템설계' 카테고리의 다른 글
VHDL5. 고급문법(구조 내부의 detail) (0) | 2020.12.08 |
---|---|
VHDL4.부프로그램(Sub program) ,패키지 (0) | 2020.12.08 |
VHDL2.순차문 (0) | 2020.12.08 |
VHDL1.개발과정, 특징, 구조, 검증, 엔티티, 설계과정 (0) | 2020.12.08 |
Practical Combinational Logic design3 (0) | 2020.12.08 |