해결된 질문
작성
·
406
1
안녕하세요 맛비님!
20장 강의에서 HLS에서 자동생성했던 synchronized True DPBRAM을 가져왔다고 말하셨습니다. 제 vivado에서는 따로 HLS에서 메모리를 생성했던 적이 없는데 그래도 simulation이 잘 돌아갑니다. HLS에서 메모리를 생성하는 과정이 따로 없어도 상관없나요?
두번째로는, verilog 코드를 fpga에 올리려고 할때,
(* ram_style = "block" *)reg [DWIDTH-1:0] ram[0:MEM_SIZE-1];
이 문구가 있으면 자동으로 fpga의 BRAM과 verilog 코드가 연결되어서 BRAM이 사용되는건가요? 아니라면 fpga의 메모리와 연결 가능한 방법은 fpga 강의에 나오나요?(아직 듣지는 않았지만, 구매해놓은 상태라서요..ㅎㅎ)
두가지가 궁금해서 문의 남깁니다.
감사합니다 :)
답변 1
1
안녕하세요 :)
20장 강의에서 HLS에서 자동생성했던 synchronized True DPBRAM을 가져왔다고 말하셨습니다. 제 vivado에서는 따로 HLS에서 메모리를 생성했던 적이 없는데 그래도 simulation이 잘 돌아갑니다. HLS에서 메모리를 생성하는 과정이 따로 없어도 상관없나요?
HLS 를 통해서 만든 DPBRAM.v 코드를 드렸습니다. 즉, 질문자님께서는 별도로 메모리를 생성하는 과정이 필요없어요. 드린거를 사용하시면 돼요 :)
Parameter 화를 해놔서, 필요한 Depth , Width, AddrWidth 를 명시해서 자유롭게 사용하시면 됩니다.
두번째로는, verilog 코드를 fpga에 올리려고 할때,
(* ram_style = "block" *)reg [DWIDTH-1:0] ram[0:MEM_SIZE-1];
이 문구가 있으면 자동으로 fpga의 BRAM과 verilog 코드가 연결되어서 BRAM이 사용되는건가요? 아니라면 fpga의 메모리와 연결 가능한 방법은 fpga 강의에 나오나요?(아직 듣지는 않았지만, 구매해놓은 상태라서요..ㅎㅎ)
ram_style = "block" 이라는 attribute 를 Vivado 에서 BRAM 으로 인식합니다.
제가 제공해드린 bram 코드는 수정 없이 FPGA 에서 적극 사용합니다. (즉, simulation 도 되고, Synthesis 도 가능함)
즐공하세요 :)