inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

[HDL 20장] Internal Memory Interface 에 대해 이해해보자 (FPGA 의 BRAM 을 이해하기 - 실습편)

read data의 1cycle delay에 대해 질문드립니다.

1277

choisi

작성한 질문수 10

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
강의 때, 아래 코드가 1cycle delay를 위한 코드라고 말씀하셨는데요.
(B RAM의 Read data가 올라오는 타이밍이 1cycle 뒤이므로 해당 타이밍을 위해 1cycle delay가 필요하다는 점은 이해했습니다.)
왜 아래 코드가 1cycle delay가 되는지 이해를 못했습니다. ㅠㅠ
죄송하지만 설명부탁드립니다.
// 1 cycle latency to sync mem output
always @(posedge clk or negedge reset_n) begin
    if(!reset_n) begin
        r_valid <= 0;  
    end else begin
        r_valid <= o_read; // read data
    end
end

assign o_valid = r_valid;
assign o_mem_data = q0;  // direct assign, bus Matbi recommends you to add a register for timing.

verilog-hdl 임베디드 fpga

답변 3

1

choisi

아 플립플롭을 거치면 1cycle을 소모해야 되니까 플립플롭을 이용하면 1cycle 딜레이가 되는 거 군요.

설명해주셔서 감사합니다.

0

최규현

안녕하세요 맛비님 simple_bram_ctrl.v 모듈에 질문이 있습니다! memory I/F input/output port 정의하는 부분에서 q0를 input으로 두셨는데 마지막 줄에 보니까 output port o_mem_data 에 input port q0를 할당하셨더라고요. 이렇게 해도 코드상 문제가 없을까요?

0

설계독학맛비

안녕하세요 :)

r_valid 는 F/F 이구요. o_read 신호를 1 cycle delay 시키게 됩니다. (waveform 을 띄워서, o_read 와 r_valid 시그널을 보시면 좋을 것 같아요. 바로 이해 되실 겁니다.)

147, 148 line 을 보시면, memory 에서 나오는 출력 신호 q0 는 이미 1cycle delay 가 되어 있고, read data 가 유효한 Timing 의 Sync 를 맞춰주기 위해서, o_read 신호를 1 cycle delay  시켰어요.

즐공하세요 :)

latency 개념 구현

1

84

3

비바도 all os버전

1

67

2

초기화를 reset_n 이 '1'일 때가 아닌 '0' 일 때 실행시키는 이유 질문

1

68

2

다운로드용량

1

68

2

비바도리눅스설치

1

79

2

전체path복사넣기

1

60

2

Vivado 2025.2 리눅스 설치 후 실행 에러와 솔루션 (libxv_commontasks.so)

1

142

2

explorer.exe오류

1

99

3

mobaxterm설치오류

1

84

2

./build시, waveform 'divide color' 사용

1

51

2

Latch와 관련하여 (Time borrowing, Latch-based design)

1

122

2

clean 명령어가 안되는데, 따로 저장해줘야 하는지 궁금합니다.

0

57

1

안녕하세요 설치 관련 질문 드립니다.

1

60

3

16장 mealy 설계.

1

71

2

14장 Cycle 관련, Testbench 코드.

1

63

2

21강(16장) 초기값 설정이 적용되는 시점 질문

1

59

1

20강(15장) - 밀리 머신 관련하여 질문 드립니다.

1

63

2

build에러 질문

0

54

2

1장 ./build에서 에러가 나요

1

70

2

FPGA 강의 보드 문의 드립니다.

1

104

2

5장 DFF특성에 대한 질문

1

73

3

vivado linux 사용 이유.

1

135

2

메모리의 형태가 전체설계에 미치는 영향이 궁금합니다.

1

102

2

디스코드 멤버쉽 등업 관련 문제

1

92

2