■ 집적회로의 종류
# ASIC
- 맞춤형 집적회로
- 한 번 제작하면 수정이 불가능
- 동작속도 빠름 / 제작 오래걸림 / 제작 비용 비쌈(대량생산용)
- 빈 땅 설계
# FPGA
- LUT가 있어서 Programmable 하다. -> gate역할
- 재설계 가능하다
- 동작속도 ASIC보다는 느리고 CPU보다는 빠름 / 제작 빠름 / 제작 비용 쌈(소량생산용)
■ 아날로그 vs 디지털
# 아날로그 회로
- 잡음에 약하지만 정교하게 표현가능
# 디지털 회로
- 잡음에 강하지만 정교하게 표현하지 못함
■ Hardware Description Language
# HDL 이란 ?
- 하드웨어 기술언어
- HDL 문법과 문장으로 디지털 회로를 기술할 수 있다
- 무어의 법칙으로 반도차 소자에 집적되는 트랜지스터/게이트 수가 크게 증가하면서 자동화에 대한 니즈가 필요해 개발됨
# HDL 장점 / purpose lang과 다른 점
1. 타이밍 (딜레이) 제어 용이
2. bit 레벨에서의 동작을 기술하기 용이
3. 구조 및 Instantiation이 용이
4. 동시 다발적 연산 표현 용이 (Concurrency)
# HDL 컴파일 과정
System specification -> Algorithm Design -> RTL 디자인(HDL) -> 합성과정을 통한 Schematic Design -> P&R과정을 통한 최적화된 Layout Design -> Fabrication
# HDL 해석 팁
명령어 위치에 상관없이 변수들 추적하며 실행되는 흐름대로 해석하기
■ Module / Instance
# Module
- 베릴로그의 기본 블럭
- 객체를 만들기 위해 구성된 블록
# Instance
- 모듈을 가지고 찍어낸 object (붕어빵)
- 찍어내는 행위를 Instantiation이라고 한다
■ Combinational vs Sequential
# 조합회로
- 현재의 입력만이 출력을 결정 (딜레이 포함해서.,)
- 메모리 소자가 없음
- 연산, 조건, 제어 등의 알고리즘을 담당
# 순차회로
- 현재의 입력과 메모리에 저장된 값들을 조합해서 출력을 결정함
- 조합회로 + 메모리 소자
- 클럭신호가 있다
- ex) Latch, F/F
■ 예약어
많이 쓰이는 예약어 : initial, begin, end, always, posedge, wire, reg 등등
int a, b, c;
keyword object
■ 수의 표현
진법 : Binary (2) , Decimal (10) , Hexa-decimal (16)
<size>'<진법><수>
12'habc = 12_1010_1011_1100 처럼 표현 가능
수는 msb lsb 순으로 작성
■ reg와 wire ** 중요! **
# wire
- always 구문 내부의 좌측 변수는 무조건 reg로 선언
- 다른 신호에 의해서 연속적으로 유지되는 Net
- 모든 input / output / inout 은 wire로 선언
# reg
- 다른 신호에 의해서 덮어지기 전까지 유지되는 데이터 저장 요소
■ 기억소자
- Latch
상태 변화가 기준
- Flip-Flop
클럭의 Edge를 사용하는 대표적인 소자, edge 변화가 기준
# D Flip-Flop (delay 파영의 F/F 라서 D)
- reset이 있을 때
# 덧셈의 결과 표현
* Nbit Adder는 N+1의 덧셈기가 필요하다 (overflow 방지)*
wire [7:0] a, b;
wire [8:0] s;
assign s = a+b;
// a와 b가 unsigned라면, unsigned로 간주하고 msb 0으로 패딩 후 덧셈 진행 ((
//Zero Extension
// a와 b가 signed라면, a와 b의 msb로 패딩 해야하므로
// assign s = {a[7], a} + {b[7], b}; 코드 수정
//Sign Extension
- 덧셈의 결과 표현은 다르지만 로직은 똑같은, 입력만 변형함
# 음수 표현법 복습
비트반전 -> MSB비트 1로 바꾸기(1의보수) -> 1더하기(2의보수)
ex)
0111 = 7
1011 = 11 (unsigned)
1011 = -8 (signed)
= -2^3 + 2^1 + 2^0
<수의 범위>
unsigned : 0000~1111
signed : 1000(-8) ~ 0111(7)
# 비교기 동작방식
- 크기를 비교할대는 내부의 뺄셈기가 작동한다
'FW 심화 과정 > [1] HDL, ARM프로세서설계' 카테고리의 다른 글
0623 실습 3-1~3-3 (0) | 2022.06.23 |
---|---|
0622 실습 2-1~2-4 (0) | 2022.06.22 |
강의 영상 보는 곳 & modelsim 설치 (0) | 2022.06.21 |
0621 FullAdder 바텀업 설계 (실습 1-1~1-4) (0) | 2022.06.21 |
0620 반도체 설계 방법 (0) | 2022.06.20 |
동기 순차회로 vs 비동기 순차회로 (0) | 2022.04.23 |