inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

lab12 bram관련 질문입니다.

975

qkrrlghd33

작성한 질문수 2

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요. 저는 fpga 강의를 수강중이고 lab12에서 bram과 axi4_lite를 이용한 memory 수강중에 궁금한 점이 있습니다.
 
해당 강의에서 trure_sync_dpbram.v를 import해서 사용하는데
 
fpga는 어떻게 true_sync_dpbram가 register가 아니라 bram을 사용하는 지 알 수 있나요?
 
혹시 reg 선언부에 있는 (* ram_style = "block" *) reg 이것이 bram을 사용한다는 keyword 인가요?
 
만약, 맞다면 저희가 ram_style='block' reg를 사용하면서 내부 memory interface logic (ce0,we0등등...)을
 
다르게 사용하면 Error가 발생하는건가요?
 

fpga 임베디드

답변 1

0

설계독학맛비

안녕하세요 :)

궁금해하실만한 질문이라 생각합니다. 바로 답변 드리겠습니다.

fpga는 어떻게 true_sync_dpbram가 register가 아니라 bram을 사용하는 지 알 수 있나요?
혹시 reg 선언부에 있는 (* ram_style = "block" *) reg 이것이 bram을 사용한다는 keyword 인가요?

-> 질문에서 예상하신 대로, (* ram_style = "block" *) 이라는 Vivado 에서 인식할 수 있는 attribute 를 통해서 BRAM 으로 할당합니다.

해당 Attribute 를 통해서, 원하는 RAM style 을 만들 수 있습니다. 제가 제공해 드린 코드는 Xilinx 의 HLS 에서 사동 생성해주는 dual port ram 입니다 :)
 
  • Specifying within the hdl code.
    verilog
    (* ram_style = "{auto | block | distributed | pipe_distributed | block_power1 | block_power2}" *)
    The default is auto.
    vhdl
    attribute ram_style of {signal_name | entity_name }: {signal | entity} is "{auto | block | distributed | pipe_distributed | block_power1 | block_power2}";

참고 : https://support.xilinx.com/s/article/38070?language=en_US

더 자세한 내용은 다음 문서에서 "ram_style" 로 검색하시면 도움이 될 것 같아요.

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2021_1/ug901-vivado-synthesis.pdf

 
만약, 맞다면 저희가 ram_style='block' reg를 사용하면서 내부 memory interface logic (ce0,we0등등...)을
다르게 사용하면 Error가 발생하는건가요?
 
자동 생성되는 코드이구요. Port 내용을 어떻게 변경하실지는 모르겠지만, 변경 방법에 따라서 "원치않는 리소스 사용" 혹은 Error 가 예상됩니다.
이 부분은 환경을 드렸기 때문에, 질문자 님께서 충분히? 시도해볼 수 있으리라 생각해요.
개인적으로... 수정은 권장드리지 않습니다만, 해보는건 자유시니까, 해보세요.
 
즐공하세요 :)

UART0, 1 중 선택

1

49

2

datamoverbram모듈질문

1

62

2

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

1

96

2

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

1

84

2

FPGA 공식문서 읽는법

1

95

2

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

1

70

2

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

1

81

2

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

1

106

1

Vitis 코드 작성

1

130

2

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

1

288

3

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

1

81

2

Platform Invalid 오류

1

145

3

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

1

96

2

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

1

150

2

9장 LED 점등 안됨

1

109

3

Edit in IP Packager 이후에

1

82

1

Fpga 로직

1

89

2

pmu-fw is not running

1

126

2

Create Project에 대해서 궁금해요

1

89

2

장치관리자 USB 포트

1

98

2

FPGA 7장 AXI_LITE I/F질문

1

89

1

bram mover에서 합성할때

1

77

2

타이밍 위반 질문

1

78

2

rvalid 초기화

1

66

2