HDL및실습 RAM과 ROM 메모리 설계하기 A+
- 최초 등록일
- 2020.07.05
- 최종 저작일
- 2020.06
- 12페이지/ 한컴오피스
- 가격 3,000원
* 본 문서(hwp)가 작성된 한글 프로그램 버전보다 낮은 한글 프로그램에서 열람할 경우 문서가 올바르게 표시되지 않을 수 있습니다.
이 경우에는 최신패치가 되어 있는 2010 이상 버전이나 한글뷰어에서 확인해 주시기 바랍니다.
소개글
"HDL및실습 RAM과 ROM 메모리 설계하기 A+"에 대한 내용입니다.
목차
I. Signal과 Variable의 특징 비교
II. Signal을 사용한 Shift_Register 만들기
III. Variable을 사용한 Shift_Register 만들기
IV. ROM 설계 개요
1. VHDL로 ROM 설계하기
V. RAM 설계 개요
1. VHDL로 RAM 설계하기
2. variable의 범위를 지정해 주었을 때 Logic Elements 수의 변화 비교
VI. Sinal과 Variable의 특징 정리
본문내용
클럭이 필요한 동기시스템을 쓴다. 그리고 제어신호로 이네이블 신호를 사용한다.
그리고 어드레스와 클럭이 공용으로 쓰기 때문에 en 신호가 액티브 로우로 작동되어 입력신호를 선택해서 값이 0이 될 때 전해준다.
1~4 : 라이브러리 포함시킬 것.
15 : 구조체: 기존의 변수를 갖고 새로운 변수를 만드는 것.
16~17 : Memory 영역 정의
16 : 클래스-기존의 형을 갖고 새로운 형태로 만드는 것.(여기선 type)
16 : 0부터 3인 4개의 방이 만들어짐. 0번지~3번지
16 : 4개의 8bit std_logic_vector를 갖는 mem_array라는 이름의 새로운 신호 타입 정의
17 : 스탠다드 로직벡터 8개짜리로 4개 방을 만듬
17: 16라인에서 정의한 신호를 mem이라는 이름으로 선언
19 : 프로세스의 라벨(clk, address) 가 중요하다는 것을 알려줌.
19 : process의 이름을 READ로 정의, 정의하지 않아도 무방함
20 : 8바이트로 구분된 32비트의 방이 만들어짐. (인티져 값이라 4종류)
20 : Address indexing을 위한 0~3의 4개 값을 갖는 integer 변수 선언
22~25 : 각 주소의 값을 초기화
22~25: 왜 인티져로 했는가?
0to3인 4개 짜리기 때문에 방에 접근하려면 인티져값이 필요하다. 프로세스의 Begin이 시작된다.
22 : x08은 8이라서 10진수8을 가진다.
26 : conv_integer 라는 함수는 라이브러리에 있다. (adrress (1 down to 0)) 라는 벡터값을 던져주면 그 값에 해당하는 인티져 값으로 변환
26 : conv_ingeger()는 ieee.std_logic_unsigned package가 제공하는 signal을 10진수로 변환하는 FUNCTION으로 입력포트 address의 값을 메모리 영역 indexing을 위한 10진수로 변환하여 변수 index에 저장, 즉 Address decoding 부분
참고 자료
없음