inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

[FPGA 12장] AXI4-Lite I/F 를 사용하여 Register 가 아닌 메모리에 Write / Read 해보기 - 코드리뷰편

BRAM의 동작 방식에 대해 궁금한 점이 있습니다.

648

20200833

작성한 질문수 4

1

- 강의 내용외의 개인 질문은 받지 않아요 (개별 과제, 고민 상담 등..)
- 저 포함, 다른 수강생 분들이 함께보는 공간입니다. 보기좋게 남겨주시면 좋은 QnA 문화가 될 것 같아요. (글쓰기는 현업에서 중요한 능력입니다!)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

일단 메모리 동작 방식에 대해 제가 아는건 Sequential와 Random Access가 있고, 말 그대로 순차적으로 메모리를 접근하는 방식과 임의의 위치에 바로 접근하는 방식으로 알고 있습니다.

BRAM을 소개하실 때 Random Access가 가능하다고 하셨는데, 이번 실습은 Sequential Access 방식인거같습니다.

간단하게 구현하기 위해 Sequntial 방식으로 구현하신 건가요???

 

그리고 mem_ce 신호는 Clock En 신호 같은데 신호를 계속 바꿔주는 이유가 있을까요?

임베디드 fpga

답변 4

0

20200833

네 감사합니다!!

0

20200833

여기 slv_reg2에 cnt값을 저장하지 않고 따로 reg만들어서 cnt를 저장하는 이유가 있을까요>?

0

설계독학맛비

아하.

먼저 서두에 말씀드리고 싶은건.

제공해 드린 코드는 정답이 아닙니다. 설계자가 판단하는 거에요.

===================

저의 의도가 궁금하신것이니 적습니다.

cnt 를 하려고 slv_reg2 를 만든것이 아닌, slv_reg2 번은 initial value 값이 저장 되어있고, 나중에 확인해보기위한 용도 였다. 생각하시면 될 것 같습니다. (큰 의미는 없어요 ㅎㅎ)

 

즐공하세요 :)

0

20200833

네 감사합니다!!

또 공부하다가 궁금한게 생겨서 하나 더 여쭤보겠습니다 ㅎㅎ,,

메모리의 위치를 나타내는 cnt를 사용할 때 Write Addr의 값을 'h8로 접근하여 사용하는데, 이 때 AXI4_Lite 내의 Reg2를 사용하지 않고 따로 F/F을 만들어서 cnt를 사용하는것이 특별한 의미가 있나요??

0

설계독학맛비

음..?; 어디 부분인지 상세히 알려주시면 감사하겠습니다 :)

질문이 정확하게 이해가 안되서... ㅠ

0

설계독학맛비

안녕하세요 :)

간단하게 구현하기 위해 Sequntial 방식으로 구현하신 건가요???

맞습니다. Random Access 가능하세요. counter 기반의 addr 방식 대신 바꾸시면 됩니다 :)

그리고 mem_ce 신호는 Clock En 신호 같은데 신호를 계속 바꿔주는 이유가 있을까요?

Power saving 측면에서 ce 를 꺼두는 방식을 사용합니다.

동작만 보실꺼면, ce 를 '1' fix 하시면 됩니다. (현업에서 ASIC 하시면, ce 를 '1' 로 고정시키는 케이스는 거의 없으실 꺼에요)

즐공하세요 :)

HW가속기 설계에서 더 보완할 수 있는 방법이 있을까요?

1

6

2

UART0, 1 중 선택

1

61

2

datamoverbram모듈질문

1

66

2

vitis 설치엣 alveo kria versal 등 옵션을 끄고 설치를 했습니다.

1

103

2

vitis 설치 관련 질문 있습니다!

1

90

2

FPGA 공식문서 읽는법

1

103

2

보드 추가의 클릭창이 없습니다.

1

76

2

Edit in IP Packager에서 코드 수정 후 IP 수정하면 simulation에서 수정된 코드로 작동이 안됩니다

1

86

2

BRAM의 Read / Write를 다 수행했는지 확인할 때 사용되는 num_cnt / i_num_cnt 관련 질문

1

109

1

Vitis 코드 작성

1

131

2

vivado 및 vitis 리눅스 환경 설치 관련 질문드립니다.

1

298

3

[9장 led 점등 시간 제어 불가]

1

84

2

Platform Invalid 오류

1

155

3

WSL 설치 관련 문의드립니다!!

1

103

2

Vivado 툴, 파일 질문드립니다!

1

163

2

9장 LED 점등 안됨

1

114

3

Edit in IP Packager 이후에

1

91

1

Fpga 로직

1

94

2

pmu-fw is not running

1

133

2

Create Project에 대해서 궁금해요

1

93

2

장치관리자 USB 포트

1

105

2

FPGA 7장 AXI_LITE I/F질문

1

93

1

bram mover에서 합성할때

1

82

2

타이밍 위반 질문

1

83

2