xilinx FPGA에서 memory를 setting할때 종류가 여러개가 나옵니다
오늘은 그 중에서 RAM의 종류에 대해 알아 보겠습니다.
RAM type의 종류는 아래와 같이 3가지 입니다
- Single Port RAM
- Simple Dual Port RAM
- True Dual Port RAM
이것들을 하나하나 봅시다
1. Single Port RAM
우선 그림을 보면 아래와 같이 나오게 됩니다
이름에서 의미하는 것처럼 write/read 시에 사용하는 address가 1개 입니다.
그래서 이걸 구분하는 enable 신호가 필요하죠
여기선 wea신호 입니다.
먼저 말하겠지만 xilinx에서는 port를 구분할때 뒤에 a, b이렇게 구분합니다
위에서는 전부 a로 끝나는걸 보면 해당 port는 전부 memory속성 탭에 A optrion이라는 곳에서 수정이 가능한 겁니다
이 memory는 data의 입출력이 같은 width/depth를 갖게 됩니다
2. Simple Dual Port RAM
이 memory는 그림을 보면 아래와 같습니다.
Single Port RAM과 다르게 이 memory는 write/read를 따로 컨트롤할수가 있습니다.
그래서 GUI에서도 Port A, Port B 이렇게 구분이 됩니다.
간단히 설명을 추가하자면 1번에서 설명한것 처럼 우선 포트명에 끝에 a, b로 나뉘어진 것을 확인 할 수가 있습니다.
그리고 a port의 ena는 chip의 enable을 해주는 신호이고 write enable은 wea로 표시되어 있습니다.
반대로 read enable은 enb로 되어 있네요
또 1번과는 다르게 입력/출력 width/depth를 다르게 설정할 수 있는데 이때 주의해야할 점은
양쪽 port의 width x depth의 크기가 같아야 한다는 점입니다.
생각해보면 크기가 같지않으면 없는걸 만들어낼수도 없으니 이 부분은 잘 생각하면 이해가 될 겁니다.
3. True Dual Port RAM
마지막으로 이 메모리는 그림먼저 살펴보면
이렇게 표현이 되는데 2번메모리와 상당히 유사합니다
다른부분은 port A, B모두 data in/out이 존재하는 겁니다.
마찬가지로 memory의 들어가는 bit의 총합은 어디서 접근을 하든지 같아야 합니다.
이 memory는 저는 거의 사용한적이 없는데 제가 알기론 나머지 2개의 메모리 대비 많은 resource를 사용하는 것으로 알고 있습니다......
'digital logic > FPGA' 카테고리의 다른 글
xilinx line memory 만들기 (1) | 2021.01.26 |
---|
댓글