inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

[FPGA 7장] HW IP 를 제어하기 위한 AXI4-Lite Interface 이해하기 - 코드리뷰편

S_AXI_WSTRB

해결된 질문

419

베릴로그

작성한 질문수 6

1

S_AXI_WSTRB 신호가 read_and_modify_write를 대체할 수 있다고 말씀하셨는데, 기존 방법대로라면 Read가 Write 이전에 선행되어야 한다고 하신것에 대한 이유를 알 수 있을까요?

그냥 Write를 하면 되는 것 아닌가 해서요.!

fpga 임베디드

답변 1

1

설계독학맛비

안녕하세요 :)

구글링에 좋은 설명이 없네요;; 직접써봅니다.

 

예를들어 64bit data bit witdh 를 갖는 메모리가 있다 라고 가정해볼께요.

image위 index 에서 "짝수번지 Data 는 수정하지 않고, 홀수번지인 1,3,5,7 부분에만 data 를 write" 하고 싶어요.

0~7 번까지의 메모리 값을 읽어보기 전까지 0,2,4,8 의 값은 우리가 알 수 있는 방법은 없죠. (미리 알고있다면 모를까)

<만약 Write strobe 가 없다면>

  1. 먼저 Read 를 해야겠죠. 이때 한번의 Transaction 을 소비합니다.

  2. 그런 후에 짝수번째 값은 읽어온 값을 0,2,4,6 에 그대로 쓰고, 1,3,5,7 에 쓰고싶은 값을 쓰고 다시 Write 하면 되겠죠.

위 과정이 Read and Modify Write 입니다.

<만약에 Strobe 가 존재해요.>

그러면 짝수번째 Strobe 는 0, 홀수 번째 strobe 는 1을 취하면 됩니다.

짝수번째에 어떤값을 우리가 넣어놔도 (don't care) strobe 가 0 이기 때문에 메모리 값을 update 하지 않겠죠. 다음과 같은 한번의 Transaction 으로 수행가능합니다.

  1. 짝수번째 값은 아무값이나 0,2,4,6 에 쓰고, 1,3,5,7 에 값을 쓰고 다시 Write 하면 되겠죠.
    이때 Strobe 는 짝수번째는 0, 홀수번째는 1 을 취합니다.

이거는 순수 Write 한번이면 되겠죠.

 

평소에는 없겠지만, 꾸준히 설계업을 하시다보면 쓸일이 있는 날이 오실꺼에요.

즐공하세요 :)

0

베릴로그

이해 됐습니다.! 감사합니다 :)

UART0, 1 중 선택

1

58

2

datamoverbram모듈질문

1

66

2

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

1

101

2

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

1

87

2

FPGA 공식문서 읽는법

1

99

2

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

1

72

2

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

1

83

2

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

1

108

1

Vitis 코드 작성

1

130

2

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

1

295

3

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

1

83

2

Platform Invalid 오류

1

153

3

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

1

98

2

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

1

157

2

9장 LED 점등 안됨

1

113

3

Edit in IP Packager 이후에

1

88

1

Fpga 로직

1

92

2

pmu-fw is not running

1

128

2

Create Project에 대해서 궁금해요

1

91

2

장치관리자 USB 포트

1

102

2

FPGA 7장 AXI_LITE I/F질문

1

91

1

bram mover에서 합성할때

1

80

2

타이밍 위반 질문

1

81

2

rvalid 초기화

1

68

2