inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

LED 깜박이기 LED 파형 그래프 오류 해결법

해결된 질문

396

움직이는YM

작성한 질문수 86

1

맛비님이 주신 코드를 리눅스에서 그대로 실행한다면 위와 같은 문제는 발생하지 않습니다

하지만 https://www.inflearn.com/questions/289093 이 링크와 저와 같이 

윈도우에서 직접 비바도를 실행해서 파형그래프를 보려고 시도하면 분명히 LED 파형 그래프가 정상적으로 나오지 않게 됩니다

맛비님께서도 설명했듯이

`ifdef XSIM_MATBI
wire [31:0] w_i_cnt_th_25M = 32'd25;
wire [31:0] w_i_cnt_th_50M = 32'd50;
wire [31:0] w_i_cnt_th_100M = 32'd100;
wire [31:0] w_i_cnt_th_200M = 32'd200;
`else
wire [31:0] w_i_cnt_th_25M = 32'd25000000;
wire [31:0] w_i_cnt_th_50M = 32'd50000000;
wire [31:0] w_i_cnt_th_100M = 32'd100000000;
wire [31:0] w_i_cnt_th_200M = 32'd200000000;
`endif

 베릴로그에서 `ifdef - `else - `endif 문을 사용해서 변수들의 값을 미리 정의했습니다. 마치 C에서 #define 처럼 말입니다
(개인적인 생각으로는 C에서 헤더가드로 쓰는 #ifndef - #define - #endif 구조와 비슷하다고 생각했습니다)

이 변수를 미리 정의한 것이 베릴로그는 알지만 Vivado의 시뮬레이션 툴은 위 정의 값을 알지 못합니다

따라서 LED 파형 값이 이상하게 나옵니다.

Vivado의 시뮬레이션 툴에게 위 정의값을 알려줘야 합니다

맛비님은 아래 링크를 걸어주셨습니다. 하지만 아래 링크의 그림은 너무 옛날 것이고 제가 해본 결과 잘 작동하지는 않습니다.

https://forums.xilinx.com/t5/Simulation-and-Verification/How-to-send-define-value-to-simulation/td-p/696151

 

따라서 직접 해본 것(=비바도의 시뮬레이션 툴에게 내가 정의한 변수값을 알려주는 방법)을 스샷으로 공유하고자 합니다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

위 사진과 같이 Setting을 마우스 왼쪽 버튼으로 눌러주시면 옆쪽과 같은 창이 뜹니다. 옆쪽 창에서 Simulation을 누르세요

Simulation창에서 Compliation을 누르면 아래 빨간색 박스가 보이십니다.

맛비님 링크에 따르면 빨간색 박스중 1번 박스에만 값을 넣으라고 되어 있습니다

하지만 제가 해본 결과 그냥 1,2,3번 박스에 전부 값을 넣어야 작동을 했습니다

값을 넣는 규칙은 간단합니다 -d <정의한 이름> 입니다

<정의한 이름>이란 `ifdef <이름>에서 <이름>입니다

맛비님의 경우 `ifdef XSIM_MATBI 임으로 -d XSIM_MATBI을 넣어주고 apply -> OK를 하면 됩니다

 

이때, 시뮬레이션으로 돌아가서 restart(ctrl + shift +f5) -> RUN all(F3)을 누르시면 LED 파형이 정상적으로 나오는 것을 확인 하실 수 있습니다.

 

fpga 임베디드

답변 1

1

설계독학맛비

gui에서 sim 을 확인하고 계셨군요 :)

정리 감사합니다. 굿!! 입니다.

즐공하세요 :)

UART0, 1 중 선택

1

51

2

datamoverbram모듈질문

1

63

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

290

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