inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

[HDL 20장] Internal Memory Interface 에 대해 이해해보자 (FPGA 의 BRAM 을 이해하기 - 실습편)

HLS를 통한 BRAM 코드 자동 생성

해결된 질문

117

info

작성한 질문수 14

1

안녕하세요, 맛비님!

현재 BRAM을 직접 생성하고, 데이터를 쓰고 읽은 뒤, 일치 여부를 확인하는 실습을 진행 중입니다.


맛비님께서는 HLS를 통해 BRAM을 자동 생성하셨다고 하셨는데요,

 

HLS 사용법을 아직 잘 모르는 상태에서는 Verilog로 직접 코딩해서 모듈을 설계하는 것이 일반적인 접근일까요?


아니면 HLS를 빠르게 익혀서 활용하는 것이 더 효율적일지 조언 부탁드립니다!

 

 

++ AI 인턴이 알려준

https://inf.run/wERhr
해당 질문 통해서 도움 받았습니다! ㅎ

verilog-hdl fpga 임베디드

답변 2

0

설계독학맛비

안녕하세요 🙂

이전 답글을 찾으셨군요!!

HLS 를 통해 BRAM 모델을 만들어 낸건 맞지만, 다른 방법 (template) 을 통해서도 생성이 가능합니다.

BRAM 모델은 실제 BRAM 이 아닌, BRAM 동작을 모사한 .v 파일입니다.

따라서 어떤 방법을 사용하셔도 괜찮아요.

개인적으로 HLS 의 공부는, 충분한 HW 설계경험이 생기면 공부하시는 것을 추천드립니다.

일반적인 SW 코딩과는 다른 HW 를 충분히 이해한 사람이 잘 쓰는 방법이라고 생각해요.

따라서 현재는 Verilog 이용한 설계 검증 부분을 공부하시는 것을 추천드릴께요.

현업에서 HLS 를 쓴다, 그때 시작하셔도 늦지 않을 것 같아요.

즐공하세요 🙂

1

info

친절한 답변 정말 감사합니다!

해당 강의에서 사용한 BRAM이 실제 BRAM 이 아니라고 하셨는데, 해당 강의에서는 BRAM의 개념을 익히고 FPGA 강의 11강~13강에서 실제 BRAM을 사용한다고 이해하면 될까요?

0

설계독학맛비

Verilog 강의에서는 FPGA 를 사용하지 않아서, BRAM 의 실 동작을 확인해볼 수 없었는데요.

FPGA 강의에서는, Verilog 강의에서 썻던 코드를 이용하여 실제로 BRAM 을 사용한다, 로 이해하시면 될 것 같아요.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. info님!

BRAM을 HLS를 통해 자동 생성하는 것과 Verilog로 직접 코딩해서 모듈을 설계하는 것은 각각의 장단점이 있습니다.

  1. Verilog로 직접 코딩: Verilog를 사용하여 직접 BRAM을 코딩하는 것은 설계자에게 더욱 세밀한 제어를 제공합니다. Verilog를 통해 직접 설계하면 메모리의 구조와 동작을 완벽히 이해하고 수정할 수 있습니다. 이는 하드웨어의 특정 최적화나 특수 요구사항이 있을 경우 유리할 수 있습니다.

  2. HLS 사용: HLS는 높은 수준의 언어를 사용하여 하드웨어 설계를 보다 추상적으로 다룰 수 있게 해줍니다. HLS를 익히면 신속하게 프로토타이핑을 수행하고, 알고리즘 수준에서 하드웨어를 설계할 수 있는 장점이 있습니다. 복잡한 시스템 설계 시 디자인 시간을 단축할 수 있습니다.

강의 내에서도 HLS에 관한 구체적인 설명이 있을 것으로 생각되며, 실제로 HLS를 통해 어떤 장점이 있는지 직접 경험해 보실 것을 권장드립니다. 아래의 링크들은 유사한 질문과 답변을 보여주고 있어 도움이 될 것입니다:

이러한 자료를 참고하여 자신에게 맞는 방법을 선택하시면 좋겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

latency 개념 구현

1

81

3

비바도 all os버전

1

65

2

초기화를 reset_n 이 '1'일 때가 아닌 '0' 일 때 실행시키는 이유 질문

1

66

2

다운로드용량

1

67

2

비바도리눅스설치

1

78

2

전체path복사넣기

1

58

2

Vivado 2025.2 리눅스 설치 후 실행 에러와 솔루션 (libxv_commontasks.so)

1

141

2

explorer.exe오류

1

98

3

mobaxterm설치오류

1

83

2

./build시, waveform 'divide color' 사용

1

50

2

Latch와 관련하여 (Time borrowing, Latch-based design)

1

120

2

clean 명령어가 안되는데, 따로 저장해줘야 하는지 궁금합니다.

0

56

1

안녕하세요 설치 관련 질문 드립니다.

1

59

3

16장 mealy 설계.

1

70

2

14장 Cycle 관련, Testbench 코드.

1

62

2

21강(16장) 초기값 설정이 적용되는 시점 질문

1

58

1

20강(15장) - 밀리 머신 관련하여 질문 드립니다.

1

62

2

build에러 질문

0

53

2

1장 ./build에서 에러가 나요

1

69

2

FPGA 강의 보드 문의 드립니다.

1

103

2

5장 DFF특성에 대한 질문

1

72

3

vivado linux 사용 이유.

1

131

2

메모리의 형태가 전체설계에 미치는 영향이 궁금합니다.

1

100

2

디스코드 멤버쉽 등업 관련 문제

1

89

2