1. 사용가능한 문자
1.1 도형문자(graphic code)
; 191개의 도형문자
191개의 도형문자
1.1.1 주 문자 세트
주 문자 세트
1.1.2보조 문자 세트
1.2 포멧 제어 문자(format effector)
HT[ =horizontal tab(수평 탭)] , VT[=vertical tab(수직 탭)]
, CR[=carriage return(복귀 부호)], LF[=line feed(줄먹임 문자)]
FF[=form feed(용지 먹임 문자)]
1.3 주석
-- 기호, /* */, 한글도 컴파일러가 무시한다.
2. 문장 구성 요소 분류
2.1 분리어(seperator) ; 문장 요소들을 서로 분리시키는 역할
-> 공백 문자(space), 포맷 제어 문자(format effector), 라인 종단 문자 (End of line)로 구성
-> 라인의 끝은 항상 분리어로 끝남
-> 분리어의 종류는 무관, 연속 사용 가능
2.2 구분어(delimiter)
; 특수 문자로 문자열을 서로 다른 문장 요소로 분리/ 구분
- 단일 구분어(single delimiter) ,복합 구분어(compound delimiter)
단일구분어
복합구분어
2.3 예약어(reserved word) ; keyword라고 생각해도 좋다.
- 총 115개(2008 버전)
- 대소문자 구분 없음
2.4 식별어(identifier) ; 우리가 이름 짓는 것들.
- entity, architecture, signal, variable 등등
- 예약어도 식별어 규칙으로 미리 생성한 것.
- 식별어 BNF(Backus Naur Form) 명명 규칙
BNF식별어 규칙
- 식별어 주의사항
9X : 숫자가 제일 앞에 올 수 없음 => X9
_carry_out : 밑줄이 제일 앞에 올 수 없음 => carry_out
ADD__A_B : 밑줄이 연이어 두개 올 수 없음 => ADD_A_B
DCT_ : 밑줄이 마지막에 올 수 없음 => DCT
2.5 리터럴(literal); 상수 선언 때 대입되는 상수 값
- ex)
=> 512 , B"1111_1111_1111" , X"FFF" , 15.0, -15.0
2.5.1) 리터럴 분류
- 추상 리터럴(abstract literal)
- 수형 분류 [ 실수형(real literal), 정수형(integer literal) ]
- 진법 분류[십진수 리터럴(decimal literal), 진수(based literal) ]
=> 자리수와 가독성을 위해 숫자 앞에 '0' 추가 가능
=> 밑줄 사용 가능
리터럴 분류
BNF표기법 of decimal literal
BNF표기법 of based literal
BNF표기법 of character literal, 191개의 도형문자만 가능.
BNF표기법 of String literal (한줄표기 or &로 연결)
BNF표기법 of bit string literal -> 자세한건 출처를 통해 공부할 것.
2.6 주석 (comment) ; 가독성 증가 용
- 한줄주석('--') : 포멧제어문자(VT,CR,LF,FF)만 안오면 됨.
- 범위주석 (/* */) : 포멧제어문자 사용 가능.
ex) 구분해보기
S : 식별어
<= : 구분어
A : 식별어
xor : 예약어
B : 식별어
; : 구분어
-- calcu… : 주석
3. 연산자(operator)
; 표현식(expression)에 사용되어 식의 값을 결정
3.1 분류
- 8개의 클래스, 우선 순위가 높은 연산자가 먼저 계산
- 같은 순위는 왼쪽부터 계산
==> 괄호 쓰자.
연산자 분류(8개의 클래스)
3.2 조건 연산자 (condition operator)
단항 연산자(unary operator)
IEEE Standard 1076-2008 버전부터 추가된 연산자
bit 형을 boolean 형으로 변환하는 용도
‘1’인 경우 TRUE를 리턴
‘0’인 경우 FALSE를 리턴
3.3 논리 연산자 (logical operator)
bit, boolean 형에 대해서 연산이 정의(standard 패키지)
nand, nor 연산자가 연이어 올 때는 괄호가 필요
3.4 관계 연산자(relational operator)
두 피연산자의 동일성 여부 검출
두 피연산자의 순서를 테스트
관계 연산자의 분류
관계 연산자
두 피연산자의 관계를 비교한 후 b l oo ean 값을 리턴
정합 관계 연산자(matching relational operator
) 두 피연산자의 관계를 비교한 후 피연산자와 같은 형을 리턴
IEEE Standard 1076-2008 버전부터 추가
3.5 자리 이동 연산자 (shift operator)
bit, boolean 형의 일차원 배열에 대해서 연산이 정의
피연산자의 정수 부분이 음수일 경우에는 방향이 바뀜
자리 이동 연산자의 기능 정의
3.6 덧셈 연산자(adding operator)
+, - : 수학적인 산술 연산 수행
& : 배열형을 서로 접합하여 큰 배열형을 생성
이항 연산자
덧셈 연산자의 기능 정의
3.7 부호 연산자(sign operator)
+, - : 수학적인 산술 연산과 같은 동작
수치형에 대해서 정의됨
단항 연산자
3.8 곱셈 연산자 (multiplying operator)
*, / : 수학적인 정의와 같은 동작
mod : 정수형, 물리형에 대해서 정의됨
rem : 정수형, 물리형에 대해서 정의됨
3.9 기타 연산자(miscellaneous operator)
** : 지수 연산자(exponentiating operator)
수학적인 정의와 같은 동작
정수형, 실수형에 대해서만 정의, 지수부(exponent)에는 정수형만 옴
지수부가 음수일 때는 지수부가 양수일 때의 값의 역수
abs : 절대값 연산자 , 단항 연산자, 수치형에 대해서 정의
not : 단항 연산자, bit, boolean형에 대해서 정의
4. 형(type)
4.1 객체(object) in vhdl
4.2 형(type)
'전공지식정리 > 디지털시스템설계' 카테고리의 다른 글
Practical Combinational Logic design2 (0) | 2020.12.08 |
---|---|
practical combinational logic design 1 (0) | 2020.12.08 |
VHDL 코드 개념, 구조 (0) | 2020.12.08 |
4. Timing과 Simulation (0) | 2020.12.08 |
디자인스타일 3. Behavioral design (0) | 2020.12.08 |