inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)

[HDL 34장] AXI4-Stream I/F - 실습편 1 (AXI4-Stream I/F 를 검증하기 위한 검증환경 소개)

IDLE state의 시점관련

63

강현수

작성한 질문수 1

1

안녕하세요 🙂

 안녕하세요, 맛비님 ! 강의 항상 잘 듣고 있습니다!

HDL 34장 강의를 들으며 궁금증이 생겨서 질문드립니다.

 

  1. HDL 34장 22분30초 쯤에 read task를 통해 IDLE의 상태를 확인하는 부분입니다.

  2. read task를 통해 VIP master에서 ADDR_AP_CTRL, 즉 설정한 pattern generator의 주소의 값을 읽어오고, 이를 lite_rdata로 저장한 후, 이를 CTRL_IDLE_MASK parameter를 통해 IDLE state인지 확인하는 방법을 통해 IDLE 상태를 확인하고 작업을 실행하는 것으로 알고 있습니다.

    여기서 궁금한 부분이 IDLE 상태, 초기값을 설정하는 부분이 어디에 표시가 되어있는지, 만약 start_vip();를 통한 instantiation에서 초기값이 0x100으로 정해지는 것인지. 혹은 다른 방법을 통해 초기값을 0x100으로 지정할 수 있는지가 궁금합니다.

  3. 제가 맛비님 강의를 수강하며 SystemVerilog를 함께 배우고 있는 과정이라 코드를 따라가는 부분에서 어려움을 겪어 이렇게 질문 드립니다.

==================

verilog-hdl fpga 임베디드 amba

답변 2

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 강현수님.

질문해주신 부분에 대해 간단히 설명드리겠습니다. HDL 코드를 작성할 때, IDLE 상태를 설정하거나 확인하는 부분은 주로 FSM(Finite State Machine)에서 이루어집니다.

  1. IDLE 상태 설정: 보통 IDLE 상태는 FSM의 초기 상태로 설정됩니다. 이 초기 상태는 보통 reset이 수행되는 시점에서 설정되며, SystemVerilog에서는 초기화를 위해 initial 블록을 사용하거나, 특별한 경우에는 reset 신호를 처리하는 always_ff 블록 내에서 설정합니다.

  2. 초기값 설정: 말씀하신 대로, 특정 레지스터나 신호의 초기값이 필요하다면, 초기화 과정에서 이를 설정할 수 있습니다. 일반적인 방법으로는 레지스터에 대한 초기값을 reset 신호가 들어올 때 설정하거나, initial 블록을 사용하여 하드코딩하는 방법이 있습니다.

  3. CTRL_IDLE_MASK 사용: 코드를 분석할 때, CTRL_IDLE_MASK와 같은 매크로나 상수는 시스템 전반에서 사용되는 공통된 값을 의미하며, IDLE 상태 확인 등에 활용됩니다. 이는 신호나 레지스터의 특정 비트가 세팅되어 있는지를 확인하는 데 사용됩니다.

하기와 같은 유사 질문들을 참고하시면 도움이 될 것입니다:

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

-1

설계독학맛비

안녕하세요 🙂

제가 이해한 바로는 start_vips 는 vip 를 사용하기 위한 init 과정으로 이해했습니다.

즉 AXI4 lite 의 master 역할을 하기 위한 vip 이지, 모듈 내의 초기값을 설정하는 부분과는 관련이 없다고 생각됩니다.

 

궁금해 해시는 ADDR_AP_CTRL 의 read 초기 값은 다음 코드에 정의되어 있습니다.

강제로 0x100 을 read 할 수 있도록 다음 부분 관련 코드를 수정하시면 되겠습니다.

image.png

즐공하세요 🙂

 

[HDL 32장-2부] 참고 링크 관련

0

29

2

[HDL 22장] F/F CE 관련 질문

1

42

2

13강에 언급된 강의 내용 질문

1

60

2

22장 vaild/ready

1

96

1

output, reg 선언

1

78

3

gvim

1

61

1

fifo의 stall과 퍼포먼스 드랍

1

57

2

Design Valid I/F

1

73

2

valid/ready 스트림 구조 관련 질문이 있습니다!

1

86

2

skid buffer의 handshake 방향이 반대로 되어 있는 이유

1

108

3

[wdma] AWLEN_w의 값이 1일 경우 r_burst_cnt_w와 AWLEN_w의 async 인한 bready 발행X 이슈?

1

69

2

system verilog 사용이유.

1

130

2

AXI_VIP 사용 시 glitch 발생

1

96

1

왜 배속이 안되요?

1

113

2

다이어그램 이해

1

69

2

27.[프로젝트-1] Mem copy IP를 FPGA에 올려보기

1

73

2

27.[프로젝트-1] Mem copy IP를 FPGA에 올려보기

1

88

3

[HDL 38장: RDMA 코드 실습편] MOR fifo에서 "ARLEN_r" 존재의 이유가 궁금합니다

1

110

2

[HDL 35장 AXI-Stream I/F 실습편] sync_fifo 사용 이유

1

128

1

예외처리 관련 질문

1

75

2

AXI의 ID의 역할은?

1

186

2

28장 강의 AXI 이론편관련질문

0

109

1

37장 Data bit width 질문

1

57

2

SPI, I2C, UART, Ethernet 인터페이스 사용법

1

235

2