inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

AXI관련 질문이 있습니다

해결된 질문

735

박종호

작성한 질문수 21

2

	always @(*)
	begin
	      // Address decoding for reading registers
	      case ( axi_araddr[ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] )
	        4'h0   : reg_data_out <= slv_reg0;
	        4'h1   : reg_data_out <= slv_reg1;
	        4'h2   : reg_data_out <= slv_reg2;
	        4'h3   : reg_data_out <= mem0_q1[C_S_AXI_DATA_WIDTH-1:0]; // (lab12) from bram out
	        //4'h3   : reg_data_out <= slv_reg3;
	        4'h4   : reg_data_out <= slv_reg4;
	        4'h5   : reg_data_out <= slv_reg5;
	        4'h6   : reg_data_out <= slv_reg6;
	        4'h7   : reg_data_out <= slv_reg7;
	        4'h8   : reg_data_out <= slv_reg8;
	        4'h9   : reg_data_out <= slv_reg9;
	        4'ha   : reg_data_out <= slv_rega;
	        4'hb   : reg_data_out <= slv_regb;
	        4'hc   : reg_data_out <= slv_regc;
	        4'hd   : reg_data_out <= slv_regd;
	        4'he   : reg_data_out <= slv_rege;
	        4'hf   : reg_data_out <= slv_regf;
	        default : reg_data_out <= 0;
	      endcase
	end

안녕하세요. 맛비님 LAB13 진행하면서 궁금한 점이 생겼습니다.

case ( axi_araddr [ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] )

위 코드에서 ADDR_LSB = 2, 이고 OPT_MEM_ADDR_BITS = 1이기 때문에 다시 작성하게 되면, case ( axi_araddr [ 3 : 2 ] ) 이렇게 간략할 수 있습니다.

 

이렇게 되면 case 문으로 판단하는 변수는 2개의 Bit이지 않나요 ?? 근데 4bit의 값에 따라 (4'h0~4'hf) case 구문이 진행되면 어떻게 되는건지 잘 모르겠습니다 ,,

 

또, 0~15까지의 숫자를 2진수로 적었을 때, 아래와 같이 정리할 수 있습니다. 이렇게 됐을 때, axi_araddr [3] , [2] 의 bit를 가져왔을 때,

0,1,2,3 = 0 0

4,5,6,7 = 0 1

8,9,10,11 = 1 0

12,13,14,15 = 1 1

이렇게 값이 같은 구간이 생기지 않나요 ?? 아직 제가 잘 이해를 하지 못 한 것 같습니다. 조언 부탁드립니다,,, 휴일에도 항상 수고에 감사드립니다.

 

 

 

 

 

 

fpga 임베디드

답변 1

0

설계독학맛비

안녕하세요 :)

어.. 지금보니까 박종호님 말씀해 주신 것이 맞네요

4개만 사용 가능합니다.

image

16개 모두 사용하려면 [5:2] 가 되어야합니다.

13장에서는 다음처럼 4개의 register 만 사용하니까, 예제 진행에는 문제가 없을 것으로 예상되어요.

image

해당 문제는 강의 밑에 적어 놓겠습니다.

즐공하세요 :)

1

박종호

감사합니다 이해 됐습니다 !!

UART0, 1 중 선택

1

51

2

datamoverbram모듈질문

1

63

2

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

1

96

2

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

1

85

2

FPGA 공식문서 읽는법

1

95

2

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

1

71

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

291

3

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

1

81

2

Platform Invalid 오류

1

150

3

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

1

96

2

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

1

151

2

9장 LED 점등 안됨

1

110

3

Edit in IP Packager 이후에

1

82

1

Fpga 로직

1

89

2

pmu-fw is not running

1

127

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