1. ROM(Read Only Memory)
1.1 기본 ROM
- 내용이 변화되지 않는 규칙들을 저장해 놓고 읽어내는 용도로만 사용
- 입력 : 어드레스
- 출력 : 해당 어드레스에 저장되어 있는 데이터
1.1.1 VHDL 구현
1.1.2 testbench
1.1.3 simulation
2. Sine ROM
sin ROM, cos ROM
2.1 Sine ROM의 설계 조건
- 0.2도 이상의 각도 분해능(degree 기준)
- 0.002 이상의 사인 크기 분해능
2.2 어드레스, 데이터 버스의 크기
- 구현에 필요한 어드레스 크기
=> 360/0.2 = 1800
=> 주기 특성을 고려한 최적화 시, 90/0.2 = 450
- 구현에 필요한 데이터의 폭
=> 2/0.002 = 1000
=> 주기 특성을 고려한 최적화 시, 1/0.002 = 500
- 어드레스와 데이터가 모두 9비트로 결정
2.3 VHDL 로직 구현
2.4 testbench
2.5 simulation
2.6 아날로그 파형 관측을 위한 ModelSim 설정 예
- wave 윈도우 생성
- 관측하고자 하는 신호 위에서 오른쪽 버튼 클릭
- 생성된 sub-window에서 Properties... 버튼 클릭
2. RAM(Random Access Memory) 구현
- 입력 : 어드레스, write_enable 신호, 입력 데이터, 클럭
- 출력 : 출력 데이터
2.1 VHDL 로직 구현
2.2 testbench
2.3 simulation
2.4 xilinx core generator 활용
2.4.1 Two-Port RAM 생성
Two-Port RAM 생성
Two-Port RAM 시뮬레이션 파형
Two-Port RAM 시뮬레이션 파형
3. SDRAM 활용
3.1 RAM의 종류
- SRAM(Static Random Access Memory)
=> 전원이 공급되는 경우 한 번 기록한 데이터를 계속 유지
=> 메모리 접근이 용이하나 고집적화에 불리하고 전력 소모 또한 큰 편
- DRAM(Dynamic Random Access Memory)
=> 데이터의 유지를 위해서는 주기적인 리프레시(refresh) 동작 필요
=> 행번지와 열번지를 이용한 단계적인 접근이 필요해서 불편
=> 고집적화에 유리하고 전력 소모도 매우 적음
- SDRAM(Synchronous DRAM)
=> DRAM의 고집적도에 SRAM의 고속 처리의 장점을 모두 가짐
=> 내부 DRAM에 synchronous interface가 추가된 메모리
- DDR SDRAM(Double Data Rate SDRAM)
=> 클럭의 상승 및 하강 에지 모두를 이용한 데이터 처리 가능
3.2 SDRAM의 내부 구조
SDRAM의 내부 구조
3.3 SDRAM 인터페이스 신호들
- CKE : clock enable
- CLK : 메모리 인터페이스 클럭
- CS# : chip select(negative logic)
- WE# : write enable(negative logic)
- CAS# : column address strobe(negative logic)
- RAS# : row address strobe(negative logic)
- A[12:0] : row address와 column address 제공
- BA[1:0] : 4개의 bank 선택 어드레스 제공
- DQM : data mask signal
- DQ[7:0] : 양방향 데이터 버스
3.4 SDRAM의 동작 제어
3.4.1 SDRAM의 mode register
SDRAM의 mode register
3.4.2 SDRAM의 CAS 지연
SDRAM의 CAS 지연
3.4.3 SDRAM의 초기화 과정
SDRAM의 초기화 과정
1.전원을 공급한다.
2. SDRAM의 모든 입출력 신호가 정상화 될 때까지 CKE 신호를 ‘0’으
로 유지한다.
3. 안정적인 clock 신호를 제공한다.
4. 클럭이 안정된 이후 100us 동안 아무런 동작을 가하지 않거나
Command Inhibit 동작이나 No Operation 동작만 수행되어야 한다.
이 기간 동안 CKE를 ‘1’로 인가한다.
5. 100us 지연 조건이 만족된 이후 적어도 하나의 Command Inhibit
동작이나 No Operation 동작이 수행되어야 한다.
6. 이후 precharge all 명령이 수행되어야 한다.
7. tRP 시간동안 기다린 이후 auto refresh 명령이 수행되어야 한다.
8. tRP는 precharge에 소요되는 시간이며 매뉴얼에서 주어진 최소값
(18 ns) 이상을 기다려야 한다
9.tRFC 시간동안 기다리면서 Command Inhibit 동작이나 No
Operation 동작만 수행되어야 한다. tRFC는 auto refresh에 소요되
는 시간이며 매뉴얼에서 주어진 최소값(60 ns) 이상을 기다려야 한
다.
10. 이후 auto refresh 명령이 수행되어야 한다.
11. tRFC 시간동안 기다리면서 Command Inhibit 동작이나 No
Operation 동작만 수행되어야 한다.
12. 이후 모드 레지스터의 설정 작업을 진행한다.
13. tMRD 시간동안 기다리면서 No Operation 동작만 수행되어야 한다.
14. 이후 SDRAM을 사용할 수 있는 준비가 완료 되었으며 필요한 메모
리 제어 동작을 수행하면 된다.
3.4.4 SDRAM의 제어 명령어의 예
SDRAM의 제어 명령어
3.4.5 SDRAM 장단점
- SDRAM의 장점
=> 100MHz 이상의 고속 동작
=> 동시에 여러 개의 bank 사용 가능
=> 하나의 행에 대해서는 임의의 컬럼에 접근 가능
- SDRAM의 단점
=> 하나의 뱅크 내에서 동시에 여러 행에 대한 접근이 어려움
=> 한 번의 접근 이후 다음 접근을 위해 프리차지 명령을 수행해야 함
=> 주기적인 리프레시가 필요
- SDRAM의 효과적인 사용 방법
=> 메모리 맵 구성 시 장점을 살리고 단점을 극복할 수 있는 구조 필요
=> burst mode와 burst length를 활용한 효과적인 구성이 필요
3.5 SDRAM 사용 예
3.6 SDRAM 메모리맵의 예
3.7 SDRAM의 명령 타이밍 도
3.7.1 SDRAM ACTIVE 명령 타이밍도
- 먼저 접근 어드레스의 해당 뱅크, 행주소를 활성화
3.7.2 SDRAM PRECHARGE 명령 타이밍도
- 해당 뱅크, 행주소를 접근 한 후에는 반드시 프리차지
3.7.3 SDRAM WRITE 명령 타이밍도
3.7.4 SDRAM READ 명령 타이밍도
3.8
3.8.1 SDRAM WRITE 타이밍도
3.8.2 SDRAM READ 타이밍도
3.8.3 SDRAM PRECHARGE 타이밍도
'전공지식정리 > 디지털시스템설계' 카테고리의 다른 글
VHDL13. 영상회로 (0) | 2020.12.08 |
---|---|
VHDL12. 주파수 분주기, 시계용 카운터, 디지털 시계 회로, (0) | 2020.12.08 |
VHDL10. buffer, state machine, ALU (0) | 2020.12.08 |
VHDL9. 기법(논리합성, 설계) (0) | 2020.12.08 |
VHDL8. 순차회로 (0) | 2020.12.08 |